====== Примерная конфигурация mail.cf ====== # Отклонять команду ETRN smtpd_etrn_restrictions = reject # Запретить исходящую почту с наших доменов, но с несуществующих у нас адресов smtpd_reject_unlisted_sender = yes # Запретить письма для неизвестных адресов получателей smtpd_reject_unlisted_recipient = yes # Отключает SMTP команду VRFY. В результате чего, невозможно определить существование определенного ящика. #Данная техника (применение команды VRFY) используется спамерами для сбора имен почтовых ящиков. disable_vrfy_command = yes # Требует команды helo от подсоединившихся клиентов smtpd_helo_required = yes # требует окружать полученные в MAIL FROM и RCPT TO адреса угловыми скобками <>, а также, чтобы они не содержали лишних фраз strict_rfc821_envelopes = yes # Всегда отправлять EHLO вначале SMTP сессии smtp_always_send_ehlo = yes # Ожидание до RCPT TO перед выяснением smtpd_client_restrictions, smtpd_helo_restrictions и smtpd_sender_restrictions # или до ETRN перед выяснением smtpd_client_restrictions, smtpd_helo_restrictions. # Такое поведение еще обеспечивает лучшую читаемость логов. smtpd_delay_reject = yes # Максимальное количество ошибок, которое может сделать удаленный SMTP клиент. При превышение данного числа Postfix отсоединится. smtpd_hard_error_limit = 1 # Интервал времени в течение которого SMTP сервер Postfix должен послать ответ, а удаленный SMTP клиент получить запрос smtpd_timeout = 30s # Интервал времени, в течение которого SMTP клиент должен послать SMTP команду HELO или EHLO и получить ответ сервера. smtp_helo_timeout = 15s # Интервал времени, в течение которого SMTP клиент должен послать SMTP команду RCPT TO и получить ответ сервера. smtp_rcpt_timeout = 15s # ограничение на количество одновременных получателей письма, по умолчанию 1000 :) smtpd_recipient_limit = 40 # Время хранения в очереди боунсов bounce_queue_lifetime = 1d # Время хранения в очереди обычных писем, может принимать значения: s (seconds), m (minutes), h (hours), d (days), w (weeks). maximal_queue_lifetime = 3d # Минимальный интервал повторной отправки писем (если получатели использую грейлистинг небольшое значение этого интервала # позволяет немного уменьшить очередь, по умолчанию здесь слишком большое значение в 4000s) minimal_backoff_time = 180s # Максимальный интервал повторной отправки писем. Письма которые уже давно лежат в очереди будут повторно # отправляться раз в 6 часов. По умолчанию здесь наоборот маленькое значение. maximal_backoff_time = 6h # Включаем поддержку sasl аутентификации smtpd_sasl_auth_enable = yes # логи smtpd_sasl_authenticated_header = yes # Необходимо для корректной работы клиентов, использующих устаревший метод AUTH, например outlook express broken_sasl_auth_clients = yes # Запрещаем анонимную авторизацию smtpd_sasl_security_options = noanonymous #Определяем свои собственные классы запрета. smtpd_restriction_classes = greylist, bolt #Класс для применения грейлистинга. Подразумевается, что на порту 2501 интерфейса 127.0.0.1 уже запущен демон грейлистинга. greylist = check_policy_service inet:127.0.0.1:2501, permit #Класс для запрета отправки писем из нашего домена без авторизации. bolt = reject_plaintext_session, permit smtpd_client_restrictions = # разрешаем "своим" все # permit_mynetworks, # проверяем валидность хостов check_client_access regexp:/etc/postfix/client_check.pcre, # разрешаем все для тех, кто пройдет SASL-авторизацию по SMTP permit_sasl_authenticated, # отклоняем письма с хостов, которые не имеют обратной записи и обратная запись которых не совпадает с прямой reject_unknown_client_hostname, # Проверяем IP клиента на наличие его в базе rbl #reject_rbl_client http.dnsbl.sorbs.net, #reject_rbl_client soks.dnsbl.sorbs.net, #reject_rbl_client smtp.dnsbl.sorbs.net, #reject_rbl_client dul.dnsbl.sorbs.net, #reject_rbl_client, #xbl.spamhaus.org, # если все вышеперечисленное подошло, идем дальше permit smtpd_helo_restrictions = # разрешаем все для внутренних клиентов #permit_mynetworks, # разрешаем все для тех, кто пройдет SASL-авторизацию по SMTP # permit_sasl_authenticated, # проверяем отправителей # check_sender_access pcre:/etc/postfix/stupid_programs.regex, # Отклоняем запрос, когда синтаксис HELO или EHLO невернен reject_invalid_helo_hostname, # Отклоняем запрос, когда доменное имя хоста в HELO или EHLO не является полностью удовлетворяющим требованиям RFC. reject_non_fqdn_helo_hostname, # Отклоняем запрос, когда имя хоста в HELO или EHLO не имеет A или MX днс-записи reject_unknown_helo_hostname, # Если надо, проверяем по спискам rbl, есть ли домен из HELO/EHLO в них # reject_rhsbl_helo dnsbl.sorbs.net # если все вышеперечисленное подошло, идем дальше permit smtpd_sender_restrictions = # "своим" можно и "просто" # permit_mynetworks, # см комментарий к разделу smtpd_helo_restrictions # permit_sasl_authenticated, reject_non_fqdn_sender, # Отклоняется запрос, если Постфикс не обнаруживает окончательного места назначения для адреса отправителя и адрес в MAIL FROM не содержит A/MX днс-записиили когда имеется MX запись в виде хоста нулевой длины reject_unknown_sender_domain, # если надо заблокировать # check_sender_access pcre:/etc/postfix/block_bad.regex, # Отклоняем запрос, когда письмо на адрес из MAIL FROM отбивается или когда адрес отправителя недоступен. Проверка адресов управляется сервером проверки verify (см. verify(8), также http://www.postfix.org/ADDRESS_VERIFICATION_README.html) #reject_unverified_sender, # Если адрес из MAIL FROM есть в rbl, то отклоняем # reject_rhsbl_sender dnsbl.sorbs.net, # если все вышеперечисленное подошло, идем дальше permit smtpd_recipient_restrictions = # разрешаем "своим" все #permit_mynetworks, permit_sasl_authenticated, # см комментарий к разделу smtpd_sender_restrictions reject_non_fqdn_recipient, reject_unknown_recipient_domain, # запрещаем принимать письма для несуществующих в системе адресов reject_unlisted_recipient, #reject_plaintext_session, # Отклоняем письмо, если домены из RCPT TO содержатся в rbl #reject_rhsbl_recipient dnsbl.sorbs.net, # Отклоняет запросы, кроме тех, что относятся к релею на наш домен, указанный в $relay_domains или для локальной доставки на домены, указанные в $mydestination, $inet_interfaces, $proxy_interfaces, $virtual_alias_domains, or $virtual_mailbox_domains, # без этой строки сервер становится открытым релеем. reject_unauth_destination, # отдельные правила для получателей: check_recipient_access pcre:/etc/postfix/recipient_checks.pcre, # проверяем отправителей check_sender_access pcre:/etc/postfix/sender_access.regex, #reject_plaintext_session, # если все вышеперечисленное подошло, идем дальше permit smtpd_data_restrictions = # запрещаем выдачу писем и команд в поток, как это делают нетерпеливые спамеры reject_unauth_pipelining