Главная | Контакты | Настройки СМЕНИТЬ ПАЛИТРУ:

Главная > Программы > Postfix

Настройки и опции в файле main.cf

После установки postfix и начальной настройки, открываем файл /etc/postfix/main.cf.

Файл: /etc/postfix/main.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
В файле /etc/postfix/client_check.pcre укажите критерии, по которым будут фильтроваться клиентские хосты, причем, желательно развёрнуто указать, что надо сделать валидным хостам, если они таки попали под ограничение.
Файл: /etc/postfix/client_check.pcre

/(modem|dia(l|lup)|dialin|dsl|p[cp]p|cable|catv|poo(l|les)|dhcp|client|customer|user|[0-9]{6,})(-|\.|[0-9])/   REJECT Are you spamer? Please contact with postmaster@yourdoamin.tld over correct ISP.
/([0-9]{,4}\-[0-9]{,4}\-[0-9]{,4}\-[0-9]{,4})/  REJECT Are you spamer? Please contact with postmaster@yourdomain.tld over correct ISP.
/([0-9]{,4}\.[0-9]{,4}\.[0-9]{,4}\.[0-9]{,4}.{4,})/   REJECT Are you spamer? Please contact with postmaster@yourdomain.tld over correct ISP.
Файл /etc/postfix/recipient_checks.pcre служит для отдельной обработки некоторых получателей, например тех, кому не нужен грейлистинг.
Файл: /etc/postfix/recipient_checks.pcre
/^anyone\@yourdomain\.tld$/ bolt
Соответственно, /etc/postfix/sender_access.regex регулирует обработку для отправителей. Поскольку нам не надо свой собственный домен в серый список помещать, мы разрешим отсылать ему письма после авторизации, а остальных прогоняем через серый список:
Файл: /etc/postfix/sender_access.regex
/yourdomain.tld$/ bolt

/./ greylist


Главная > Программы > Postfix