Настройка Postfix для противодействия распространению спама

Настройка 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_client сообщает 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.

• smtpd_sender_restrictions. Если в конфигурационном файле Postfix указана данная опция, это означает, что информация в поле From: заголовка должна соответствовать определенным критериям. Например, значение reject_unknown_sender_domain указывает на то, что если в поле From: не задано имя узла, письмо должно быть отвергнуто, а значение reject_non_fqdn_sender требует, чтобы отправитель включал в адрес полностью определенное доменное имя.

В конфигурационном файле сервера Postfix предусмотрены различные опции, позволяющие настроить сервер для решения разнообразных задач. В большинстве случаев работоспособность Postfix обеспечивает конфигурация, установленная по умолчанию. Задавая слишком строгие ограничения, вы рискуете потерять нужные вам письма.

Меры, предотвращающие использование Postfix для распространения спама, немногим отличаются от соответствующих мер для других серверов. Следует лишь заметить, что конфигурация Postfix по умолчанию предоставляет более свободный доступ к серверу по сравнению с последними версиями sendmail, так как Postfix обрабатывает письма из своего домена, а также из сетей, к которым подключен компьютер. Средства, позволяющие ограничить доступ к серверу, рассматривались выше.