В обычных условиях при передаче почты Postfix обращается к серверу DNS. Если же сервер имен в вашей сети отсутствует (например, если преобразование имен осуществляется с помощью файлов /etc/hosts
), вам необходимо включить в конфигурационный файл следующую запись:
disable_dns_lookups = yes
Эта опция указывает серверу Postfix на то, что он не должен обращаться к серверу DNS для преобразования имен. В этом случае Postfix определяет адрес ретранслятора с помощью записи в файле /etc/hosts
.
Настройка Postfix для противодействия распространению спама
Подобно sendmail
и Exim, Postfix содержит средства, позволяющие бороться с распространением спама. Вы можете блокировать рекламные сообщения, сравнивая информацию в заголовках писем с шаблонами, либо использовать списки IP-адресов.
Инструменты для сравнения с шаблонами, предоставляемые сервером Postfix, достаточно сложны, в частности, они позволяют использовать для анализа содержимого заголовков регулярные выражения. Регулярные выражения часто указываются в отдельном файле, но при желании вы можете задавать их непосредственно в конфигурационном файле main.cf
. Пример опции, предназначенной для проверки заголовков, приведен ниже.
header_checks = regexp:/etc/postfix/bad_headers
В файле bad_headers
указываются регулярные выражения, подобные приведенным в листинге 19.2. Если заголовки почтового сообщения соответствуют регулярным выражениям, содержащимся в файле, и если в файле указано, что письмо должно быть отвергнуто, оно возвращается отправителю. Регулярные выражения могут задаваться либо в стиле POSIX (regeхр: описание )
, либо в стиле PCRE (pcre: описание )
.
Листинг 19.2. Файл с регулярными выражениями Postfix, используемыми для фильтрации спама
#### Поля Subject: заголовков сообщений, полученных от спамеров
/^Subject: ADV:/ REJECT
/^Subject: Accept Visa/ REJECT
#### Поля From: и Received: заголовков сообщений,
#### полученных от спамеров
/^(From|Received):.*badspammer\.net/REJECT
/^From: spammer@abigisp\ .net/ REJECT
На заметку
Регулярные выражения будут подобно рассматриваться далее в этой главе. Дополнительную информацию о них вы можете получить, обратившись к страницам справочной системы, посвященным программе egrep.
Опция header_checks
предоставляет большие возможности, но она сложна в использовании. Более простое решение проблемы спама состоит в применении списков IP-адресов. Для работы с такими списками предназначены две приведенные ниже опции.
maps_rbl_domains = relays.mail-abuse.org, dialups.mail-abuse.org
smtpd_client_restrictions = reject_maps_rbl
Опция maps_rbl_domains позволяет задавать адреса серверов, управляющих списками IP-адресов (эти серверы описаны в табл. 19.1). В качестве значения данной опции можно указать несколько доменных имен, разделенных запятыми или пробелами. Опция, содержащаяся во второй из приведенных выше строк, указывает на то, что информация, предоставляемая серверами, должна использоваться как основание для блокирования писем. Кроме reject_maps_rbl
, опция smtpd_client_restrictions
может также принимать другие значения. Например, значение reject_unknown_clien
t сообщает Postfix, что если для адреса отправителя не может быть выполнено обратное DNS-преобразование, письма не должны обрабатываться. Подробнее эти опции описаны в документации на Postfix.
Помимо описанных выше опций, Postfix предоставляет также опции, имеющие лишь косвенное отношение к борьбе со спамом. Некоторые из таких опций описаны ниже.
• smtpd_helo_required
. По умолчанию для данной опции задается значение по. Если вы измените его на yes
, Postfix будет обрабатывать письмо только в том случае, если при обмене по протоколу SMTP отправитель передаст команду HELO
или EHLO
. Этот подход позволяет блокировать действия некорректно написанных программ, часто используемых для распространения спама, но также отвергает обычные письма, отправляемые посредством неправильно сконфигурированного сервера SMTP.
• smtpd_helo_restrictions
. Данная опция позволяет Postfix более строго контролировать использование команды HELO
или EHLO
при SMTP-взаимодействии. Для опции smtpd_helo_restrictions
предусмотрено несколько значений. Например, reject_unknown_hostname
означает, что Postfix должен прекратить взаимодействие, если для указанного доменного имени не может быть обнаружена запись А
или MX
. Значение reject_non_fqdn_hostname
требует, чтобы отправитель указал полное доменное имя узла. Более подробное описание опции smtpd_helo_restrictions
приведено в документации на сервер Postfix.
Читать дальше