Доброго времени суток!
Настроил Postfix тестирую с внешнего сервера:
i - печатаю я,
s - отвечает сервер.i:>HELO ns3.gudzondns.net
s:>220 mail.MYHOST.ru ESMTP
i:>MAIL FROM:ANY_USER@yandex.ru
s:>250 mail.MYHOST.ru
i:>RCPT TO:MY_USER@MYHOST.ru
s:>250 2.1.0 Ok
i:>DATA
s:>250 2.1.5 Ok
i:>From: ANY_USER@yandex.ru
i:>To: MY_USER@MYHOST.ru
i:>Subject: Subg
i:>
i:>QUIT
s:>354 End data withПисьмо отправляется, хотя авторизации клиент не проходил (поле TO Мой_домен). Причем если указать TO:ANY_USER@OTHER_HOST.ru(не мой домен, любой), то сервер требует авторизации и письмо не отправляет, что вроде бы безопастно.
Пробую проделать тоже самое с сервером почты яндекс smtp.yandex.rui:>HELO ns3.gudzondns.net
s:>220 smtp2.mail.yandex.net (Want to use Yandex.Mail for your domain? Visit http://pdd.yandex.ru)
i:>MAIL FROM:MY_USER@MYHOST.ru
s:>250 smtp2.mail.yandex.net
i:>RCPT TO:ANY_USER@yandex.ru
s:>554 5.7.1 : Sender address rejected: Access denied
i:>DATA
s:>503 5.5.1 Error: need MAIL command
i:>From: MY_USER@MYHOST.ru
i:>To: ANY_USER@yandex.ru
i:>Subject: Subg
i:>
i:>QUIT
s:>503 5.5.1 Error: need RCPT commandКак видно smtp.Яндекс, запрещает прием почты даже если указано что получатель реальный_пользователь@yandex.ru. Вопрос как этого добиться?
конфиг Postfix:
postconfsmtpd_helo_restrictions = permit_mynetworks,permit_sasl_authenticated,check_recipient_access hash:/usr/local/etc/postfix/postmaster_access,check_helo_access hash:/usr/local/etc/postfix/helo_access, reject_invalid_hostname, reject_unknown_hostname, reject_non_fqdn_hostname
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_pipelining, reject_unknown_recipient_domain,reject_non_fqdn_recipient, reject_unauth_destination,check_helo_access pcre:/usr/local/etc/postfix/helo_checks, reject_authenticated_sender_login_mismatch, check_sender_access pcre:/usr/local/etc/postfix/helo_checks, reject_unlisted_recipient,reject_unknown_sender_domain,reject_unlisted_recipient
smtpd_sender_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_authenticated_sender_login_mismatch, reject_unknown_sender_domain, reject_unverified_sender, reject_unknown_client_hostname
Авторизация sasl работает.
>[оверквотинг удален]
>postconf
>
>smtpd_helo_restrictions = permit_mynetworks,permit_sasl_authenticated,check_recipient_access hash:/usr/local/etc/postfix/postmaster_access,check_helo_access hash:/usr/local/etc/postfix/helo_access, reject_invalid_hostname, reject_unknown_hostname, reject_non_fqdn_hostname
>
>smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_pipelining, reject_unknown_recipient_domain,reject_non_fqdn_recipient, reject_unauth_destination,check_helo_access pcre:/usr/local/etc/postfix/helo_checks, reject_authenticated_sender_login_mismatch, check_sender_access pcre:/usr/local/etc/postfix/helo_checks, reject_unlisted_recipient,reject_unknown_sender_domain,reject_unlisted_recipient
>
>
>smtpd_sender_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_authenticated_sender_login_mismatch, reject_unknown_sender_domain, reject_unverified_sender, reject_unknown_client_hostname
>
>Авторизация sasl работает.==================================
покажи параметр
mynetworks_style
в main.cf
>[оверквотинг удален]
>postconf
>
>smtpd_helo_restrictions = permit_mynetworks,permit_sasl_authenticated,check_recipient_access hash:/usr/local/etc/postfix/postmaster_access,check_helo_access hash:/usr/local/etc/postfix/helo_access, reject_invalid_hostname, reject_unknown_hostname, reject_non_fqdn_hostname
>
>smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_pipelining, reject_unknown_recipient_domain,reject_non_fqdn_recipient, reject_unauth_destination,check_helo_access pcre:/usr/local/etc/postfix/helo_checks, reject_authenticated_sender_login_mismatch, check_sender_access pcre:/usr/local/etc/postfix/helo_checks, reject_unlisted_recipient,reject_unknown_sender_domain,reject_unlisted_recipient
>
>
>smtpd_sender_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_authenticated_sender_login_mismatch, reject_unknown_sender_domain, reject_unverified_sender, reject_unknown_client_hostname
>
>Авторизация sasl работает.==================================
покажи параметр
mynetworks_style
в main.cf
>покажи параметр
>mynetworks_style
>в main.cfmynetworks = 127.0.0.0/8, 192.168.3.100
mynetworks_style = host
myorigin = $myhostname192.168.3.100 ip самого почтовика наличие этого ip на прием с внешки роли не играет
>>покажи параметр
>>mynetworks_style
>>в main.cf
>
>mynetworks = 127.0.0.0/8, 192.168.3.100
>mynetworks_style = host
>myorigin = $myhostname
>
>192.168.3.100 ip самого почтовика наличие этого ip на прием с внешки роли
>не играет=================================
так при параметрах которые у тя указаны постфикс вообще недолжен принимать почту от внешних клиентов, каждый хост от которого юзвери отправляют почту используя твой постфикс в качестве смтп сервера указывается в mynetworks при условии что mynetworks_style = host...
=============================
прошу весь main.cf в студию
>прошу весь main.cf в студию
>так при параметрах которые у тя указаны постфикс вообще недолжен принимать почту от внешних клиентов,C внешки по smtp если пользователь прошел авторизацию он может отправить на НЕ_СВОЙ_ДОМЕН, а вот на СВОЙ_ДОМЕН он хотя авторизация не проходит, почту принимает. ИМЕЕННО которая АДРЕСОВАНА на СВОЙ_ДОМЕН.
===============================================
# каталог в котором будет находиться очередь писем, обрабатываемых postfix
queue_directory = /var/spool/postfix
# каталог выполняемых файлов административных команд postfix
command_directory = /usr/local/sbin
# каталог выполняемого файла демона postfix
daemon_directory = /usr/local/libexec/postfix
# Путь к команде, используемой взамен стандартного sendmail
sendmail_path = /usr/local/sbin/sendmail
# Путь к исполняемому файлу, используемому для перестройки псевдонимов
newaliases_path = /usr/local/bin/newaliases
# Путь к команде, отображающей состояние почтовой очереди
mailq_path = /usr/local/bin/mailq
# Документация в html-формате
html_directory = no
# База документации на все устанавливаемые программы
manpage_directory = /usr/local/man
# Примеры конфигурационных файлов postfix.
sample_directory = /usr/local/etc/postfix
# Файлы readme
readme_directory = no
# Имя пользователя, с правами которого работает почта
mail_owner = postfix
# Группа, от имени которой будут работать команды обработки почтовой очереди
setgid_group = maildrop
# Права по умолчанию, используемые агентом локальной доставки.
# Не указывайте здесь привилегированного пользователя или владельца Postfix!
default_privs = nobody
# Имя нашего хоста.
myhostname = mail.MYHOST.ru
#Имя нашего домена
mydomain = MYHOST.ru
# Адреса интерфейсов, на которых нужно ждать smtp-соединений
inet_interfaces = all
# Домены, для которых будет приниматься почта
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
# списки наших локальных пользователей:
local_recipient_maps =
# С каким кодом отклонять письма для несуществующих пользователей
unknown_local_recipient_reject_code = 550
mynetworks_style = host
# Подсети из которых почта принимается, не проходя многих проверок.
# Перекрывает параметр mynetworks_style. Можете добавить сюда ваши подсети,
# я же в дальнейшем буду использовать принцип .не доверяй никому., поэтому
# указал только локальную подсеть
mynetworks = 127.0.0.0/8, 192.168.3.100
# Списки алиасов, используемых для локальной доставки
alias_maps = hash:/etc/mail/aliases
alias_database = hash:/etc/mail/aliases
# Используем Maildir-style для пользовательских ящиков
home_mailbox = Maildir/
# Строка представления вашего SMTP сервера (может быть любой)
smtpd_banner = $myhostname ESMTP
# запрещаем использование команды VRFY
disable_vrfy_command = yes
# Обязательно требуем использования команд HELO или EHLO
smtpd_helo_required = yes# списки транспортов
transport_maps = pgsql:/usr/local/etc/postfix/transport.cf
# куда складывать почту транспорту virtual
virtual_mailbox_base = /
# списки почтовых ящиков
virtual_mailbox_maps = pgsql:/usr/local/etc/postfix/mailbox.cf
# списки алиасов
virtual_alias_maps = pgsql:/usr/local/etc/postfix/alias.cf
# uid и gid пользователей
virtual_uid_maps = static:125
virtual_gid_maps = static:126# включаем плагин sasl2 для smtpd авторизации
smtpd_sasl_auth_enable = yes
# запрещаем анонимную аутентификацию
smtpd_sasl_security_options = noanonymous
# разрешаем авторизацию клиентов, использующих устаревшую версию команды AUTH
broken_sasl_auth_clients = yes
# имя области аутентификации SASL . лучше оставить пустым
smtpd_sasl_local_domain =
# ограничения, выполняющиеся при обработке команды RCPT TO
smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated,
#Отвергает запрос, когда клиент отправляет команды SMTP раньше времени, еще не зная о том, действительно ли Postfix поддерживаетконвейерную обработку команд ESMTP.
reject_unauth_pipelining,
#не должен принимать никакие сообщения для несуществующего домена, т. к. их невозможно доставить.
reject_unknown_recipient_domain,
#отвергать сообщения для получателей с неполным именем, если вы добавите параметр reject_non_fqdn_recipient
reject_non_fqdn_recipient,
reject_unauth_destination,
##new rules
check_helo_access pcre:/usr/local/etc/postfix/helo_checks,
reject_authenticated_sender_login_mismatch,
##!!!!!! ЗАПРЕТ НЕ АВТОРИЗОВАННЫМ УКАЗЫВАТЬ НАШ ДОМЕН, ИНАЧЕ БУДУТ СЛАТЬ ВСЕ
check_sender_access pcre:/usr/local/etc/postfix/helo_checks,
reject_unlisted_recipient,
reject_unknown_sender_domain,
reject_unlisted_recipient
##reject_rbl_client zen.spamhaus.org
##reject_rbl_client psbl.surriel.com
##reject_rbl_client bl.spamcop.net
##new
smtp_always_send_ehlo= yes
smtpd_error_sleep_time = 0
##Для увеличения параллелизма следует увеличить значение параметра
##default_process_limit=30smtpd_data_restrictions =
reject_unauth_pipelining,
##отказа в приеме сообщениям с пустым именем отправителя конверта, предназначенным нескольким получателям,
reject_multi_recipient_bounce,
permit##Postfix не осуществляет оценку и выполнение ограничений на основе триггера ограничений сразу же после наступления соответствующего этапа SMTPзаимодействия.
smtpd_delay_reject = yes
##количество соединений за определенный промежуток времени
client_connection_rate_time_unit = 60s
##число разрешенных соединений от одного клиента
smtpd_client_connection_rate_limit = 30
##Количество разрешенных параллельных соединений для одного клиента
smtpd_client_connection_count_limit = 3
smtpd_timeout = 20s
smtp_helo_timeout = 10s
smtp_mail_timeout = 10s
smtp_rcpt_timeout = 10s
##максимальное количество адресов, на которые надо отправить сообщение
smtpd_recipient_limit = 2# Заставляем отклонять почту с неизвестным адресом отправителя.
# Позволяет бороться с червями и некоторыми вирусами.
smtpd_reject_unlisted_sender = yes
# Скрываем отображение имени таблицы получателей в ответе "User unknown"
# yes: User unknown in virtual mailbox table
# no: User unknown
show_user_unknown_table_name = no
# Максимальное количество ошибок, которое может сделать удаленный SMTP клиент.
# При превышение данного числа Postfix разорвет соединение.
smtpd_hard_error_limit = 8
# Дополнительные ограничения, применяемые сервером Postfix
# в контексте команды MAIL FROM
smtpd_sender_restrictions = permit_mynetworks,
#ok если отправитель аутентифицировался, проверка прекращается
#dunno если отправитель не аутентифицровался, проверка идет дальше
permit_sasl_authenticated,
reject_authenticated_sender_login_mismatch,
reject_unknown_sender_domain,
reject_unverified_sender,
reject_unknown_client_hostname
# Проверяем, что нам предъявляют в HELO/EHLO и:
# принимаем всю почту для postmaster и abuse, ибо postmaster обязан
# быть доступным при любом раскладе
smtpd_helo_restrictions =
# принимаем, если клиент из доверенной подсети
permit_mynetworks,
# принимаем, если клиент прошел SASL-аутентификацию
permit_sasl_authenticated,
check_recipient_access hash:/usr/local/etc/postfix/postmaster_access,
# существуют .особы, приближенные к особе. - клиенты, чей почтовый сервер
# настроен криво, но почту с которого надо все же принимать во избежание
# скандалов с руководством - заносим их в .белый. список
check_helo_access hash:/usr/local/etc/postfix/helo_access,
# отвергаем хосты с неверными именами
reject_invalid_hostname,
# отвергаем хосты, которые не имеют А или МХ записей в DNS
reject_unknown_hostname,
# отвергаем хосты с именами не в FQDN-форме
reject_non_fqdn_hostname####???
broken_sasl_auth_clients = yesdata_directory = /var/lib/postfix