FreeBSD 8.1 Postfix relay Exchange

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Sindikat88
мл. сержант
Сообщения: 138
Зарегистрирован: 2010-09-02 15:07:54
Контактная информация:

FreeBSD 8.1 Postfix relay Exchange

Непрочитанное сообщение Sindikat88 » 2011-07-07 10:27:03

Коллеги, добрый день.
Имеется сервер на FreeBSD 8.1. На нем установлен Postfix, который выполняет функции релея на Exchange. С этой функцией он справлялся на ура. Но решил я прикрутить к этому делу авторизацию SMTP через sasl, и тут появились проблемы. Немного о себе:

Код: Выделить всё

out# uname -a
FreeBSD out 8.1-RELEASE FreeBSD 8.1-RELEASE #3: Mon Apr 25 17:55:35 MSD 2011     Admin@out.ac-construction.local:/usr/obj/usr/src/sys/main_kernell.2011-25-04  amd64

Код: Выделить всё

out# pkg_info | grep postfix
postfix-2.8.3,1     A secure alternative to widely-used Sendmail
postfixadmin-2.3.3  PHP web-based management tool for Postfix virtual domains a

Код: Выделить всё

out# pkg_info | grep sasl
cyrus-sasl-2.1.23_3 RFC 2222 SASL (Simple Authentication and Security Layer)

Код: Выделить всё

out# pkg_info | grep openldap
openldap-client-2.4.23 Open source LDAP client implementation
Мой main.cf

Код: Выделить всё

queue_directory = /var/spool/postfix
command_directory = /usr/local/sbin
daemon_directory = /usr/local/libexec/postfix
data_directory = /var/db/postfix
mail_owner = postfix
content_filter = scan:[127.0.0.1]:10025
myhostname = out.strashnaya.su
mydomain = strashnaya.su
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
transport_maps = hash:/usr/local/etc/postfix/transport
unknown_local_recipient_reject_code = 550
mynetworks_style = host
mynetworks = 127.0.0.0/8, 192.168.0.0/23
alias_maps = hash:/etc/aliases
smtpd_sasl_auth_enable = yes
smtpd_sasl_application_name = smtpd
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
debug_peer_level = 2
debugger_command =
         PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
         ddd $daemon_directory/$process_name $process_id & sleep 5
		 
sendmail_path = /usr/local/sbin/sendmail
newaliases_path = /usr/local/bin/newaliases
mailq_path = /usr/local/bin/mailq
setgid_group = maildrop
html_directory = /usr/local/share/doc/postfix
manpage_directory = /usr/local/man
sample_directory = /usr/local/etc/postfix
readme_directory = /usr/local/share/doc/postfix

Код: Выделить всё

out# cat /usr/local/lib/sasl2/smtpd.conf
pwcheck_method: saslauthd

Код: Выделить всё

out# cat /etc/pam.conf
# Mail services
smtp    auth    sufficient      /usr/local/lib/pam_ldap.so

Код: Выделить всё

out# cat /usr/local/etc/openldap/ldap.conf
#
# LDAP Defaults
#

# See ldap.conf(5) for details
# This file should be world readable but not world writable.

#BASE   dc=example,dc=com
#URI    ldap://ldap.example.com ldap://ldap-master.example.com:666

base dc=ac-construction,dc=local
        scope sub
        uri ldap://primarydc.ac-construction.local
        port 389
        ldap_version 3
        binddn cn=ldap,cn=Users,dc=domain,dc=org
        bindpw qwerty
        pam_filter objectclass=User
        pam_login_attribute sAMAccountName
        pam_password ad
#SIZELIMIT      12
#TIMELIMIT      15
#DEREF          never
А вот, что пишется в логах Postfix

Код: Выделить всё

Jul  7 11:18:57 out postfix/smtpd[37125]: warning: when SASL type is "dovecot", SASL path "smtpd" should be a socket pathname
Jul  7 11:18:57 out postfix/smtpd[37125]: connect from unknown[192.168.0.8]
Jul  7 11:18:57 out postfix/smtpd[37125]: warning: SASL: Connect to smtpd failed: No such file or directory
Jul  7 11:18:57 out postfix/smtpd[37125]: fatal: no SASL authentication mechanisms
Jul  7 11:18:58 out postfix/master[1298]: warning: process /usr/local/libexec/postfix/smtpd pid 37125 exit status 1
Jul  7 11:18:58 out postfix/master[1298]: warning: /usr/local/libexec/postfix/smtpd: bad command startup -- throttling
Коллеги, куда копать дальше?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

moury
сержант
Сообщения: 249
Зарегистрирован: 2009-02-06 23:02:40
Откуда: Москва
Контактная информация:

Re: FreeBSD 8.1 Postfix relay Exchange

Непрочитанное сообщение moury » 2011-07-07 11:12:55

Какую из строчек лога Вы не смогли перевести?

1. postconf -a
2. cd /usr/ports/mail/postfix && make clean && make config && make deinstall reinstall clean

Кроме того - это к Вашей проблеме отношения не имеет:
man 5 postconf
/renamed to smtpd
Сисадмин - вождь апачей

Аватара пользователя
Sindikat88
мл. сержант
Сообщения: 138
Зарегистрирован: 2010-09-02 15:07:54
Контактная информация:

Re: FreeBSD 8.1 Postfix relay Exchange

Непрочитанное сообщение Sindikat88 » 2011-07-07 11:45:48

Код: Выделить всё

out# postconf -a
cyrus
dovecot
Postfix сначало был собран с поддержкой Dovecot, но потом я пересобирал Postfix уже без него.

Аватара пользователя
Sindikat88
мл. сержант
Сообщения: 138
Зарегистрирован: 2010-09-02 15:07:54
Контактная информация:

Re: FreeBSD 8.1 Postfix relay Exchange

Непрочитанное сообщение Sindikat88 » 2011-07-07 12:41:00

После ещё одной пересборки, почта стала ходить, но в логах я не вижу чтобы была авторизация. Привожу кусочек лога:

Код: Выделить всё

Jul  7 12:49:08 out postfix/qmgr[34097]: 56189508F6: from=<>, size=3511, nrcpt=1 (queue active)
Jul  7 12:49:09 out postfix/smtp[46197]: EABA1508ED: to=<xxx@gmail.com>, relay=gmail-smtp-in.l.google.com[74.125.43.27]:25, delay=2.9, delays=0.11/0.01/0.75/2, dsn=2.0.0, status=sent (250 2.0.0 OK 1310028556 w13si26867553bkf.93)
Jul  7 12:49:09 out postfix/cleanup[46192]: CFE43508E4: message-id=<20110707084909.CFE43508E4@out.mydomain.ru>
Jul  7 12:49:09 out postfix/bounce[46195]: EABA1508ED: sender delivery status notification: CFE43508E4 

moury
сержант
Сообщения: 249
Зарегистрирован: 2009-02-06 23:02:40
Откуда: Москва
Контактная информация:

Re: FreeBSD 8.1 Postfix relay Exchange

Непрочитанное сообщение moury » 2011-07-08 0:58:15

Если Вы не будете приводить здесь необходимую для решения проблемы информацию, внятных советов не дождетесь:

1. Выдержка из лога должна включать процесс обработки письма и уведомления о недоставке полностью.

2. Вместо main.cf приводите информацию о действующей конфигурации почтовика (вывод команды postconf -n).

3. Поскольку Вы в предыдущий заход напортачили с подключением авторизатора, приведите выдержку из лога, описывающую поведение почтовика в момент (ре)старта и сразу после него.
Сисадмин - вождь апачей

Аватара пользователя
Sindikat88
мл. сержант
Сообщения: 138
Зарегистрирован: 2010-09-02 15:07:54
Контактная информация:

Re: FreeBSD 8.1 Postfix relay Exchange

Непрочитанное сообщение Sindikat88 » 2011-07-11 14:59:16

1.

Код: Выделить всё

Jul 11 15:23:20 out postfix/postfix-script[22547]: refreshing the Postfix mail system
Jul 11 15:23:20 out postfix/master[1314]: reload -- version 2.8.3, configuration /usr/local/etc/postfix
Jul 11 15:23:29 out postfix/smtpd[22557]: connect from cdma-xxx-xxx-xxx-xxx.msk.skylink.ru[xxx.xxx.xxx.xxx]
Jul 11 15:23:29 out postfix/smtpd[22557]: C6838508CB: client=cdma-xxx-xxx-xxx-xxx.msk.skylink.ru[xxx.xxx.xxx.xxx]
Jul 11 15:23:30 out postfix/cleanup[22561]: C6838508CB: message-id=<>
Jul 11 15:23:30 out postfix/qmgr[22553]: C6838508CB: from=<admin@mydomain.ru>, size=726, nrcpt=1 (queue active)
Jul 11 15:23:30 out clamsmtpd: 100004: accepted connection from: 127.0.0.1
Jul 11 15:23:30 out postfix/smtpd[22563]: connect from localhost[127.0.0.1]
Jul 11 15:23:30 out postfix/smtpd[22557]: disconnect from cdma-xxx-xxx-xxx-xxx.msk.skylink.ru[xxx.xxx.xxx.xxx]
Jul 11 15:23:30 out postfix/smtpd[22563]: 4AD20508CC: client=localhost[127.0.0.1], orig_queue_id=C6838508CB, orig_client=cdma-xxx-xxx-xxx-xxx.msk.skylink.ru[xxx.xxx.xxx.xxx]
Jul 11 15:23:30 out postfix/cleanup[22561]: 4AD20508CC: message-id=<>
Jul 11 15:23:30 out clamsmtpd: 100004: from=admin@mydomain.ru, to=admin@mydomain.ru, status=CLEAN
Jul 11 15:23:30 out postfix/qmgr[22553]: 4AD20508CC: from=<admin@mydomain.ru>, size=956, nrcpt=1 (queue active)
Jul 11 15:23:30 out postfix/smtp[22562]: C6838508CB: to=<admin@mydomain.ru>, relay=127.0.0.1[127.0.0.1]:10025, delay=0.68, delays=0.47/0.01/0.11/0.1, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 4AD20508CC)
Jul 11 15:23:30 out postfix/smtpd[22563]: disconnect from localhost[127.0.0.1]
Jul 11 15:23:30 out postfix/qmgr[22553]: C6838508CB: removed
Jul 11 15:23:30 out postfix/smtp[22564]: 4AD20508CC: to=<admin@mydomain.ru>, relay=192.168.0.8[192.168.0.8]:25, delay=0.31, delays=0.1/0.01/0/0.2, dsn=2.6.0, status=sent (250 2.6.0 <ea85e03a-37c2-4761-9054-250597b38ac5> Queued mail for delivery)
Jul 11 15:23:30 out postfix/qmgr[22553]: 4AD20508CC: removed
2.

Код: Выделить всё

out# postconf -n
alias_maps = hash:/etc/aliases
command_directory = /usr/local/sbin
config_directory = /usr/local/etc/postfix
content_filter = scan:[127.0.0.1]:10025
daemon_directory = /usr/local/libexec/postfix
data_directory = /var/db/postfix
debug_peer_level = 2
html_directory = /usr/local/share/doc/postfix
inet_interfaces = all
mail_owner = postfix
mailq_path = /usr/local/bin/mailq
manpage_directory = /usr/local/man
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mydomain = strashnaya.su
myhostname = out.strashnaya.su
mynetworks = 127.0.0.0/8
mynetworks_style = host
myorigin = $mydomain
newaliases_path = /usr/local/bin/newaliases
queue_directory = /var/spool/postfix
readme_directory = /usr/local/share/doc/postfix
sample_directory = /usr/local/etc/postfix
sendmail_path = /usr/local/sbin/sendmail
setgid_group = maildrop
smtpd_helo_required = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, rej                                                                             ect_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous
transport_maps = hash:/usr/local/etc/postfix/transport
unknown_local_recipient_reject_code = 550
3. Не совсем понял, что вы имели ввиду.
Так же в auth.log записываются сообщения такого типа:

Код: Выделить всё

Jul 11 14:44:04 out postfix/smtpd[12993]: sql_select option missing
Jul 11 14:44:04 out postfix/smtpd[12993]: auxpropfunc error no mechanism available
Jul 11 14:44:04 out postfix/smtpd[12993]: OTP unavailable because can't read/write key database /etc/opiekeys: Permission denied
Jul 11 14:44:04 out postfix/smtpd[12999]: sql_select option missing
Jul 11 14:44:04 out postfix/smtpd[12999]: auxpropfunc error no mechanism available
Jul 11 14:44:04 out postfix/smtpd[12999]: OTP unavailable because can't read/write key database /etc/opiekeys: Permission denied
Jul 11 14:49:20 out sasldblistusers2: sql_select option missing
Jul 11 14:49:20 out sasldblistusers2: auxpropfunc error no mechanism available
Jul 11 15:37:03 out sshd[22711]: Did not receive identification string from xxx.xxx.xxx.xxx
хотя sasl собран без поддержки sql

Аватара пользователя
Sindikat88
мл. сержант
Сообщения: 138
Зарегистрирован: 2010-09-02 15:07:54
Контактная информация:

Re: FreeBSD 8.1 Postfix relay Exchange

Непрочитанное сообщение Sindikat88 » 2011-07-21 13:36:16

Освежу конфиги:

Код: Выделить всё

out# postconf -n
alias_maps = hash:/etc/aliases
command_directory = /usr/local/sbin
config_directory = /usr/local/etc/postfix
content_filter = scan:[127.0.0.1]:10025
daemon_directory = /usr/local/libexec/postfix
data_directory = /var/db/postfix
debug_peer_level = 2
html_directory = /usr/local/share/doc/postfix
inet_interfaces = all
mail_owner = postfix
mailq_path = /usr/local/bin/mailq
manpage_directory = /usr/local/man
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mydomain = strashnaya.su
myhostname = out.strashnaya.su
mynetworks = 127.0.0.0/8
mynetworks_style = host
myorigin = $mydomain
newaliases_path = /usr/local/bin/newaliases
queue_directory = /var/spool/postfix
readme_directory = /usr/local/share/doc/postfix
sample_directory = /usr/local/etc/postfix
sendmail_path = /usr/local/sbin/sendmail
setgid_group = maildrop
smtp_sasl_mechanism_filter = plain, login, digest-md5
smtp_sasl_path = smtpd
smtp_sasl_type = saslauthd
smtpd_helo_required = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous
smtpd_sender_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_sender, reject_unknown_sender_domain, reject_unverified_sender, reject_rbl_client bl.spamcop.net, reject_rbl_client dnsbl.njabl.org, reject_rbl_client dul.dnsbl.sorbs.net, reject_rbl_client sbl-xbl.spamhaus.org, reject_rbl_client zen.spamhaus.org, permit
transport_maps = hash:/usr/local/etc/postfix/transport
unknown_local_recipient_reject_code = 550
ldap.conf

Код: Выделить всё

out# cat /usr/local/etc/ldap.conf
host 192.168.0.2
base dc=ac-construction,dc=local
binddn cn=exchange,cn=Users,dc=ac-construction,dc=local
bindpw xxxxxxxxxxxxxxx
smtpd.conf

Код: Выделить всё

out# cat /usr/local/etc/smtpd.conf
log_level: 7
saslauthd_path: /var/run/saslauthd/mux
mech_list: PLAIN LOGIN
а вот, что творится в логах
maillog

Код: Выделить всё

Jul 21 14:32:00 out postfix/smtpd[49152]: connect from unknown[192.168.0.8]
Jul 21 14:32:00 out postfix/smtpd[49152]: warning: SASL authentication failure: cannot connect to saslauthd server: Socket operation on non-socket
Jul 21 14:32:00 out postfix/smtpd[49152]: warning: unknown[192.168.0.8]: SASL LOGIN authentication failed: generic failure
Jul 21 14:32:00 out postfix/smtpd[49152]: disconnect from unknown[192.168.0.8]
Jul 21 14:35:20 out postfix/anvil[49154]: statistics: max connection rate 1/60s for (smtp:192.168.0.8) at Jul 21 14:32:00
Jul 21 14:35:20 out postfix/anvil[49154]: statistics: max connection count 1 for (smtp:192.168.0.8) at Jul 21 14:32:00
Jul 21 14:35:20 out postfix/anvil[49154]: statistics: max cache size 1 at Jul 21 14:32:00
Что делать дальше, я ума не приложу.