Моя служба SMTP так и не заработала, теперь я готов попробовать еще раз.
Сервер - FreeBSD 8.1-RELEASE-p1, postfix был установлен как часть Webmin / Virtualmin install.sh
я прочитал Хостинг виртуальных доменов Postfix, но мне так и не удалось собрать части вместе.
# postconf -n
command_directory = /usr/local/sbin
config_directory = /usr/local/etc/postfix
daemon_directory = /usr/local/libexec/postfix
data_directory = /var/db/postfix
debug_peer_level = 2
html_directory = /usr/local/share/doc/postfix
mail_owner = postfix
mailbox_command = /usr/bin/procmail
mailq_path = /usr/local/bin/mailq
manpage_directory = /usr/local/man
mydestination = caesar.wulffit.dk, localhost.wulffit.dk, localhost, wulffit.dk, mail.wulffit.dk
mydomain = wulffit.dk
myhostname = caesar.wulffit.dk
mynetworks_style = host
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_recipient_restrictions = permit_sasl_authenticated permit_mynetworks reject_unauth_destination
unknown_local_recipient_reject_code = 550
virtual_alias_maps = hash:/etc/postfix/virtual
Это результат моей последней попытки отправить электронное письмо.
# tail -n 1000 /var/log/maillog | grep 194.255.38.237
Jan 19 18:33:30 caesar dovecot: imap-login: Login: user=<philip-espersen>, method=PLAIN, rip=194.255.38.237, lip=194.255.38.233, TLS
Jan 19 18:33:47 caesar postfix/smtpd[63803]: warning: 194.255.38.237: address not listed for hostname dominos.dk
Jan 19 18:33:47 caesar postfix/smtpd[63803]: connect from unknown[194.255.38.237]
Jan 19 18:33:47 caesar postfix/smtpd[63803]: 86DA2DA80C: client=unknown[194.255.38.237]
Jan 19 18:33:47 caesar postfix/smtpd[63803]: disconnect from unknown[194.255.38.237]
Jan 19 18:33:48 caesar postfix/smtp[63815]: 97199DA85F: to=<Philip@dominos.dk>, relay=mail.dominos.dk[194.255.38.237]:25, delay=0.96, delays=0/0.01/0.01/0.94, dsn=2.6.0, status=sent (250 2.6.0 <20110119173347.97199DA85F@caesar.wulffit.dk> Queued mail for delivery)
Jan 19 18:34:02 caesar postfix/smtpd[63803]: warning: 194.255.38.237: address not listed for hostname dominos.dk
Jan 19 18:34:02 caesar postfix/smtpd[63803]: connect from unknown[194.255.38.237]
Jan 19 18:34:02 caesar postfix/smtpd[63803]: NOQUEUE: reject: RCPT from unknown[194.255.38.237]: 554 5.7.1 <philip@dominos.dk>: Relay access denied; from=<philip@espersen.me> to=<philip@dominos.dk> proto=SMTP helo=<[127.0.0.1]>
Jan 19 18:34:07 caesar postfix/smtpd[63803]: disconnect from unknown[194.255.38.237]
Jan 19 18:34:21 caesar postfix/smtpd[63803]: warning: 194.255.38.237: address not listed for hostname dominos.dk
Jan 19 18:34:21 caesar postfix/smtpd[63803]: connect from unknown[194.255.38.237]
Jan 19 18:34:21 caesar postfix/smtpd[63803]: 25FABDA80C: client=unknown[194.255.38.237]
Jan 19 18:34:21 caesar postfix/smtpd[63803]: disconnect from unknown[194.255.38.237]
Jan 19 18:38:20 caesar postfix/anvil[63805]: statistics: max connection rate 3/60s for (smtp:194.255.38.237) at Jan 19 18:34:21
Jan 19 18:38:20 caesar postfix/anvil[63805]: statistics: max connection count 1 for (smtp:194.255.38.237) at Jan 19 18:33:47
Jan 19 18:47:46 caesar postfix/smtpd[64139]: warning: 194.255.38.237: address not listed for hostname dominos.dk
Jan 19 18:47:46 caesar postfix/smtpd[64139]: connect from unknown[194.255.38.237]
Jan 19 18:47:46 caesar postfix/smtpd[64139]: NOQUEUE: reject: RCPT from unknown[194.255.38.237]: 554 5.7.1 <philip@dominos.dk>: Relay access denied; from=<philip@espersen.me> to=<philip@dominos.dk> proto=SMTP helo=<[127.0.0.1]>
Jan 19 18:47:47 caesar postfix/smtpd[64139]: disconnect from unknown[194.255.38.237]
/usr/local/lib/sasl2/smtpd.conf
# cat /usr/local/lib/sasl2/smtpd.conf
pwcheck_method: saslauthd
mech_list: plain login
smtpd_recipient_restrictions = permit_sasl_authenticated permit_mynetworks reject_unauth_destination
Итак, вы разрешили либо авторизованных пользователей SASL, либо пользователей, которые являются частью «mynetworks». Ваши списки конфигурации
mynetworks_style = host
Это означает, что без аутентификации разрешен только локальный хост. Если вы знаете источник ретрансляционного трафика, вы можете вместо этого определить
mynetworks = 127.0.0.0/8 x.x.x.x/x
куда x.x.x.x/x
равно подсети ретранслятора (например, 192.168.1.0/24
).
Для аутентификации вам необходимо установить Dovecot SASL или Cyrus SASL и встроить их в Postfix. Вы можете проверить, доступны ли они, с помощью postconf -a
. Что вы используете, зависит от вас, но убедитесь, что серверная часть, которую вы хотите использовать для базы данных пользователей / паролей (например, LDAP, * SQL и т. Д.), Доступна для реализации SASL).
Подробнее о настройке см. Здесь: http://www.postfix.org/SASL_README.html
Итак, что вы пытаетесь сделать здесь: иметь почту для dominos.dk на сервере или использовать этот сервер для ретрансляции почты от пользователей этого домена?
Если это целевой сервер для dominos.dk, вам нужно добавить его в mydestinations, иначе, если вы хотите разрешить ретрансляцию для аутентифицированных пользователей, просто правильно настроив cyrus-sasl, должно сработать
Задача решена.
Все сводилось к тому, что saslauth был неправильно настроен в postfix / main.cf
# postconf -n
broken_sasl_auth_clients = yes
command_directory = /usr/local/sbin
config_directory = /usr/local/etc/postfix
daemon_directory = /usr/local/libexec/postfix
data_directory = /var/db/postfix
debug_peer_level = 2
html_directory = /usr/local/share/doc/postfix
mail_owner = postfix
mailbox_command = /usr/bin/procmail
mailq_path = /usr/local/bin/mailq
manpage_directory = /usr/local/man
mydestination = caesar.wulffit.dk, localhost.wulffit.dk, localhost, wulffit.dk, mail.wulffit.dk
mydomain = wulffit.dk
myhostname = caesar.wulffit.dk
mynetworks_style = host
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_recipient_restrictions = permit_sasl_authenticated permit_mynetworks reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = /var/run/dovecot/auth-client
smtpd_sasl_type = dovecot
unknown_local_recipient_reject_code = 550
virtual_alias_maps = hash:/etc/postfix/virtual
Где эти строчки самые важные
virtual_alias_maps = hash:/etc/postfix/virtual
smtpd_sasl_type = dovecot
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_sasl_authenticated permit_mynetworks reject_unauth_destination
smtpd_sasl_path = /var/run/dovecot/auth-client
broken_sasl_auth_clients = yes
Я также внес изменения в /usr/local/etc/dovecot.conf
добавление пользователя и группы в авторизация по умолчанию раздел
auth default {
socket listen {
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix
}
}
mechanisms = plain login
}
Не знаю, важно ли это, но я сделал # touch /usr/local/etc/saslauthd.conf
Перезапустите dovecot и postfix
# /usr/local/etc/rc.d/dovecot restart
# /usr/local/etc/rc.d/postfix restart
До сегодняшнего дня я, вероятно, делал много других вещей. Что-то могло направить меня в правильном направлении, что-то в неправильном. Во всяком случае, теперь работает :)