Настройка Postfix для защиты от спама на OpenBSD


Автор: Виктор Гижевский www.unixman.ru

В интернете содержится много статей на тему настройки postfix+антиспам. Но мне захотелось сделать свое решение достаточно простым без установки дополнительных демонов. Создатель postfix Вице Венема является одним из самых уважаемых специалистов в области ИТ-безопасности и, конечно же, не мог не включить в postfix функции, которые можно применить для защиты от спама. Я устанавливал postfix 2.2 из пакетов под OpenBSD 3.6-3.8 . При установке postfix из пакетов в директории /usr/local/sbin у Вас появятся скрипты postfix-enable и postfix-disable, которые заменят утилиты стандартного монстрообразного сендмыла на постфиксовые (postfix-enable) и обратно (postfix-disable) в случае необходимости.

Устанавливаем postfix:

#pkg_add postfix*

Запускаем:

#/usr/local/sbin/postfix-enable

Внимательно читаем вывод на экран и не забываем изменить табличку crontabа

#crontab -e

комментируем, что указано и копируем в случае необходимости файлы:

# cd /etc
# cp hosts resolv.conf localtime /var/spool/postfix/etc

редактируем файл с псевдонимами:

#vi /etc/postfix/aliases

хэшируем:

#/usr/local/sbin/postalias /etc/postfix/aliases

Редактируем основной файл конфигурации:

#vi /etc/postfix/main.cf

Основную настройку main.cf я рассматривать не буду - материалов на эту тему более чем достаточно. Для защиты от спама Изменяем строку:

unknown_local_recipient_reject_code = 550

# чтобы сразу разворачивать спамеров и добавляем в main.cf следующее:

strict_rfc821_envelopes = yes

# применение более строгих правил rfc821 вместо rfc822

strict_mime_encoding_domain = yes

# проверка кодирования mime на корректность

disable_vrfy_command = yes

# не даем спамерам возможности проверять наличие пользователей Указанные ниже строки включают RBL-блок-листы

smtpd_client_restrictions = reject_rbl_client dsn.rfc-ignorant.org,
reject_rbl_client cbl.abuseat.org,
reject_rbl_client dialups.mail-abuse.org,
reject_rbl_client relays.ordb.org,
reject_rbl_client blackholes.mail-abuse.org,
reject_rbl_client opm.blitzed.org,
reject_rbl_client list.dsbl.org,
reject_rbl_client sbl.spamhaus.org,
reject_rbl_client dul.dnsbl.sorbs.net,
reject_rbl_client dnsbl.njabl.org,
reject_rbl_client dynablock.njabl.org,
reject_rbl_client combined.njabl.org,
permit_mynetworks,
permit

Ну и для пущей секьюрности

smtpd_helo_required = yes
smtpd_helo_restriction = permit_mynetworks,
reject_invalid_hostname,
reject_non_fqdn_hostname

Если Вы будете использовать не 2.2 версию постфикса, а более новую, то рекомендую прочитать документацию постфикса - там произошли изменения и появились новые возможности, да и вообще - документация у постфикса просто замечательная. Очень рекомендую. Можно запускать постфикс:

#/usr/local/sbin/postfix start

Данное решения я бы рекомендовал для корпоративного почтового сервера (не для провайдера). Будет резаться подавляющее количество спама и почти не останется работы для антивируса. У меня на несколько сот почтовых ящиков clamav (с просмотром архивов rar, zip, arj) ловит не более 3 писем с вирусами в день после таких проверок при достаточно интенсивной переписке уже более года.

Обновлено: 13.03.2015