LinuxForum.Fans
Тема

Debian+Postfix+Kerberos+Samba+Winbind

Автор: l_cho 24 сообщений 6192 просмотров
#275333

Добрый день , поставил себе задачу , сделать связку Debian+Postfix+Kerberos+Samba+Winbind. Ввел Debiand домен , установил и настроил Postfix для одного домена , через telnet шлю пробное письмо , доменный пользователь определился и как бы все хорошо. Запарился на моменте , а как почту раскладывать? Нужно же создать всем пользователям домена ящики и что прописать в Postfix , что все раскладывалось по ящикам?

#275365

ну нужен как минимум LDA (procmail, dovecot etc.)
когда определитесь - virtual_transport/local_transport в конфигах постфикса.
т.к про авторизацию dovecot в AD мы уже беседовали то я подозреваю что у вас именно он. Суть такова: postfix получает вдящее smtp соединение обрабатывает его и если пользователь (почтовый ящик) существует в virtual_mailbox_maps то письмо передается LDA который кидает его в хранилище указанное в конфигах postfix (virtual_mailbox_base помоему). если папки/файла-хранилища кореспонденции нет то она будет создана автоматом.

#275416

Благодарю вас osorkon. Я сделал ставку на Dovecot , а вот как в virtual_mailbox_maps указать , что пользователи в системе ? Машина у меня в домене , и соответственно каким-то образом можно заставить Postfix брать пользователей из системы , Читал руководство по Postfix Ральфа Гильдебранта , но там рассказывается как указать в virtual_mailbox_maps путь к файлу с пользователями.

#275417

Ввел машину в Домен , Postfix прекрасно распознает доменных пользователей и при первичной настройке. Видимо мой путь лежит к Dovecot

l_cho написал:
Благодарю вас osorkon. Я сделал ставку на Dovecot , а вот как в virtual_mailbox_maps указать , что пользователи в системе ? Машина у меня в домене , и соответственно каким-то образом можно заставить Postfix брать пользователей из системы , Читал руководство по Postfix Ральфа Гильдебранта , но там рассказывается как указать в virtual_mailbox_maps путь к файлу с пользователями.
#275430

Закончил связку , а толку мало , telnet -ом слушаются и Dovecot и Postfix , а если отсылаю сообщение пользователю с другой почты , то оно не приходит , прошу помочь найти ошибку.

Настроил POSTFIX
postconf -n

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
inet_interfaces = all
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
mydestination = domen.ru, postman.domen.ru, localhost.domen.ru, localhost
myhostname = postman.domen.ru
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
readme_directory = no
recipient_delimiter = +
relayhost =
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes
virtual_mailbox_base = /var/mail
virtual_mailbox_domains = domain.ru
virtual_transport = dovecot


Подогнал Dovecot

cat /etc/dovecot/dovecot.conf | grep -v '^#' | sed '/^$/d' | more
base_dir = /var/run/dovecot
protocols = imap imaps
listen = *
log_path = /var/log/dovecot/dovecot.log
log_timestamp = "%Y-%m-%d %H:%M:%S "
login_dir = /var/run/dovecot/login
login_chroot = yes
login_user = mailuser
login_processes_count = 128
login_greeting = GoogDay.
login_log_format = %$: %s
mail_location = maildir:/var/mail/%d/%n


mail_uid = mailuser
mail_gid = mail
mail_privileged_group = mail
protocol imap {

login_executable = /usr/lib/dovecot/imap-login

mail_executable = /usr/lib/dovecot/rawlog /usr/lib/dovecot/imap

#275456

добавте в конфиг debug_peer_list = <адрес отправителя/получателя> и давайте логи смотреть

#275461

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
debug_peer_list = domain.ru
inet_interfaces = all
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
mydestination = domain.ru, postman.domain.ru, localhost.domain.ru, localhost
myhostname = postman.domain.ru
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
readme_directory = no
recipient_delimiter = +
relayhost =
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes
virtual_mailbox_base = /var/mail
virtual_mailbox_domains = domain.ru
virtual_transport = dovecot


Dovecot
2012-09-18 14:47:06 dovecot: Warning: Killed with signal 15 (by pid=3406 uid=0 code=kill)
2012-09-18 14:47:06 dovecot: Info: Dovecot v1.2.15 starting up (core dumps disabled)

Postfix
2012-09-18 14:47:06 dovecot: Warning: Killed with signal 15 (by pid=3406 uid=0 code=kill)
2012-09-18 14:47:06 dovecot: Info: Dovecot v1.2.15 starting up (core dumps disabled)

#275501

ну очевидно что падает dovecot поэтому письма не доходят. возможно они все в очереди (postqueue -p).
попробуйте запустить dovecot c опцией -F, добавте в конфиг info_log_path = <путь_к_логу>, auth_debug = <путь_к_логу>, mail_debug=yes и давайте выхлоп
офтоп: что такое включить аллерты вверху страницы?

#275594

Привел Dovecot к такому виду :
protocols = imap imaps
listen = *
log_path = /var/log/dovecot/dovecot.log
log_timestamp = "%Y-%m-%d %H:%M:%S "
mail_location = maildir:/var/mail/%u



mail_privileged_group = mail
mail_debug = yes
protocol imap {

В логах пусто
А при перезагрузке пишет:
Restarting IMAP/POP3 mail server: dovecotIf you have trouble with authentication failures,
enable auth_debug setting. See http://wiki.dovecot.org/WhyDoesItNotWork
This message goes away after the first successful login.
.
Запускаю как Dovecot -F
If you have trouble with authentication failures,
enable auth_debug setting. See http://wiki.dovecot.org/WhyDoesItNotWork
This message goes away after the first successful login.

Postfix на всякий случай , он работает нормально письма при телент раскладывает по Maildir
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
inet_interfaces = all
mail_spool_directory = /var/mail/
mailbox_command =
mailbox_size_limit = 0
mydestination = domen.ru,domen.domen.ru, localhost.domen.ru, localhost
myhostname = postman.domen.ru
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
readme_directory = no
recipient_delimiter = +
relayhost =
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes
virtual_mailbox_base = /var/mail/

#275596
"osorkon" написал:
auth_debug = <путь_к_логу>, mail_debug=yes

и

"l_cho" написал:
enable auth_debug setting. See http://wiki.dovecot.org/WhyDoesItNotWork

вы игнорируете или просто упускаете эту часть конфига в посте?

#275597

protocols = imap imaps
listen = *
log_path = /var/log/dovecot/dovecot.log
log_timestamp = "%Y-%m-%d %H:%M:%S "
mail_location = maildir:/var/mail/%u


mail_privileged_group = mail
auth_debug = yes
mail_debug = yes
protocol imap {
}

log:
2012-09-19 11:30:16 dovecot: Warning: Killed with signal 15 (by pid=8241 uid=0 code=kill)
2012-09-19 11:30:16 dovecot: Info: Dovecot v1.2.15 starting up (core dumps disabled)
2012-09-19 11:30:17 auth(default): Info: new auth connection: pid=8256
2012-09-19 11:30:17 auth(default): Info: new auth connection: pid=8255
2012-09-19 11:30:17 auth(default): Info: new auth connection: pid=8254
У меня в конфиге достаточно указать auth_debug = yes и он все в логи кидает , это булевый параметр (вовсяком случае у меня)

#275598
"l_cho" написал:
auth_debug = yes и он все в логи кидает , это булевый параметр (вовсяком случае у меня)

ваша правла, затупил
давайте тогда вывод doveconf -nm auth, doveconf -nm imap, doveconf -nm imap-login
ps: кстати на вики рекомендуют еще auth_debug_passwords=yes

First of all enable auth_debug_passwords=yes and see if the logs show what the problem is. For non-PAM setups it should contain all the information needed to solve the problem. If it's trying to use a wrong password scheme, you can change that. See Authentication/PasswordSchemes.
#275604

давайте тогда вывод doveconf -nm auth, doveconf -nm imap, doveconf -nm imap-login

Oscor нет у меня такого пакета ....(

#275609

версия dovecot <2 ?
тогда давайте dovecot.conf полностью
возможно есть смысл поставить dovecot2 ?

#275615

Не хотелось бы dovecot2 ставить пока этот толком не освоил
Вот мой конфиг:

protocols = imap imaps
listen = *
log_path = /var/log/dovecot/dovecot.log
log_timestamp = "%Y-%m-%d %H:%M:%S "
mail_location = maildir:/var/mail/%u
# Hierarchy separator to use. You should use the same separator for all
# namespaces or some clients get confused. '/' is usually a good one.
# The default however depends on the underlying mail storage format.
#separator =
# Prefix required to access this namespace. This needs to be different for
# all namespaces. For example "Public/".
#prefix =
# Physical location of the mailbox. This is in same format as
# mail_location, which is also the default for it.
#location =
# There can be only one INBOX, and this setting defines which namespace
# has it.
#inbox = no
# If namespace is hidden, it's not advertised to clients via NAMESPACE
# extension. You'll most likely also want to set list=no. This is mostly
# useful when converting from another server with different namespaces which
# you want to deprecate but still keep working. For example you can create
# hidden namespaces with prefixes "~/mail/", "~%u/mail/" and "mail/".
#hidden = yes
# Show the mailboxes under this namespace with LIST command. This makes the
# namespace visible for clients that don't support NAMESPACE extension.
# "children" value lists child mailboxes, but hides the namespace prefix.
#list = yes
# Namespace handles its own subscriptions. If set to "no", the parent
# namespace handles them (empty prefix should always have this as "yes")
#subscriptions = yes
#separator = /
# Mailboxes are visible under "shared/user@domain/"
# %%n, %%d and %%u are expanded to the destination user.
#prefix = shared/%%u/
# Mail location for other users' mailboxes. Note that %variables and ~/
# expands to the logged in user's data. %%n, %%d, %%u and %%h expand to the
# destination user's data.
#location = maildir:%%h/Maildir:INDEX=~/Maildir/shared/%%u
# Use the default namespace for saving subscriptions.
#subscriptions = no
# List the shared/ namespace only if there are visible shared mailboxes.
#list = children
mail_privileged_group = mail
mail_debug = yes
protocol imap {
# Login executable location.
#login_executable = /usr/lib/dovecot/imap-login
# IMAP executable location. Changing this allows you to execute other
# binaries before the imap process is executed.
#
# This would write rawlogs into user's ~/dovecot.rawlog/, if it exists:
# mail_executable = /usr/lib/dovecot/rawlog /usr/lib/dovecot/imap
# </usr/doc/dovecot-common/wiki/Debugging.Rawlog.txt>
#
# This would attach gdb into the imap process and write backtraces into
# /tmp/gdbhelper.* files:

#275624

и все? у вас не полный конфиг. уж не знаю по какому howto вы делали, но должны быть еще секции описывающие протоколы (imap.pop3), механизмы аутентификации (palain? md5 etc) и аутентификации как таковой. откуда dovecot знает где брать пользователей? pam? mysql? или ldap?

#275627

Я так понимаю если пользователи у меня локальные так как Машина в Домене ,то и авторизация должна быть PAM ?
Уважаемый osorkon целиком dovecot.conf сюда не влезет

#275634
"l_cho" написал:
Я так понимаю если пользователи у меня локальные так как Машина в Домене ,то и авторизация должна быть PAM ?

или LDAP

"l_cho" написал:
Уважаемый osorkon целиком dovecot.conf сюда не влезет

тогда как вам помочь? я надеюсь вы понимаете что для диагностики проблемы просто строчки из лога

"l_cho" написал:
2012-09-19 11:30:16 dovecot: Warning: Killed with signal 15 (by pid=8241 uid=0 code=kill)
не достачтоно.
Косяк почти наверняка в конфиге. Банальное misconfigured либо опечатка.
#275635

попробуйте в сполер запихнуть, может влезет. если нет тогда хз

#275636
"l_cho" написал:
dovecot.conf сюда не влезет

на pastebin.org выкладывай

Войдите или зарегистрируйтесь, чтобы ответить.