Множество почтовых ящиков забито мусорными письмами, другими словами, спамом. И сейчас не говорим о бесплатных почтовых сервисах, а о рабочей электронной почте на собственном сервере.
Многие из вас, возможно, сталкивались с ситуацией, когда сотрудники ИТ-отдела не могли справиться с этой задачей, или справлялись так, что почта вообще переставала доходить.
Мы поделимся важными настройками почтового сервера, которые значительно уменьшат количество спама, поступающего на ваш почтовый ящик. Почему мы говорим об «уменьшении»? Ответ очевиден: нельзя защитить почтовый сервер на 100% от спама из-за постоянной активности спамеров, которые каждый день придумывают новые методы обхода нашей защиты.
Рассмотрим эти рекомендации на примере почтового сервера на базе Linux с установленным Postfix. Какой дистрибутив Linux вы используете — не имеет значения.
Каждый опытный специалист по ИТ, настраивая почтовый сервер, знаком с понятиями прямой и обратной зоны. И все же до сих пор можно встретить почтовые сервера, которые не находятся в этих зонах. Практически всегда такие сервера считаются спамерскими по умолчанию. Почему?
Потому что одним из наиболее распространенных способов рассылки спама является использование писем, отправляемых с несуществующих серверов, не занесенных в DNS записи. Для того чтобы ваш сервер не считался спамерским, вам необходимо выполнить два действия:
При соблюдении этих двух условий в 99% случаев ваш почтовый сервер не будет считаться спамерским. Иногда это правило может не сработать — если IP-адрес вашего сервера окажется случайно или умышленно внесенным в черные списки спама, вам придется разбираться в этом самостоятельно…
Приступим к настройке защиты. У Posfix имеется конфигурационный файл настроек, через него будем настраивать наши дополнительные проверки на спам. Файл называется main.cf. Данные настройки будем добавлять в существующие блоки.
Начинаем:
Большинство спамеров этого не делают.
smtpd_helo_required = yes
smtpd_recipient_restrictions =
Параметр разрешающий аутентификацию по логину-паролю (если SSL у вас не настроен — уберите этот параметр, иначе логины и пароли ваших пользователей пойдут в «открытом виде»)
permit_sasl_authenticated,
Параметр, указывающий postfix получать почту от определенных ip адресов (как я и говорил раньше — есть сервера, которые не прописаны в прямой/обратной зонах и их не хотят прописывать или некому). Не забудьте после добавления ip-адресов выполнить команду #postmap /etc/postfix/access
, иначе postfix не будет обрабатывать файл
check_client_access hash:/etc/postfix/access,
Иногда встречаются пользователи, которые хотят получать все письма, в том числе спам.
Данное правило указывает на файл, в котором содержаться адреса почтовых ящиков, на которые мы будем получать всю почту. Не забудьте про postmap.
check_recipient_access hash:/etc/postfix/recipient_access,
Не принимаем письма в следующих ситуациях:
Разрешаем получать письма от адресов, которые перечислены в параметре mynetworks (в данном параметре указываете адреса своих пользователей, почтовых серверов)
permit_mynetworks.
Защита от посылки smtp-команд до момента выяснения, поддерживает ли такие команды postfix
reject_unauth_pipelining.
Данный правило запрещает открытую пересылку писем через ваш Postfix, оставив только возможность принимать письма на известные адреса.
reject_unauth_destination,
Ниже перечислены правила на нахождение почтового сервера в блек-листах спамеров:
reject_rbl_client zombie.dnsbl.sorbs.net,
reject_rbl_client cbl.abuseat.org,
reject_rbl_client zen.spamhaus.org,
reject_rbl_client bl.spamcop.net,
reject_rbl_client multihop.dsbl.org,
reject_rbl_client work.rsbs.express.ru,
reject_rbl_client dnsbl.sorbs.net.
Финальную защиту организуем с помощью PostGrey.
Данная утилита проверяет почтовые серверы на наличие их в своих списках. Если сервера нет в списках, то при получение первого письма новый сервер заносится в «серый» список. Практически всегда «хороший» сервер высылает второе письмо через определённое время, в этом случае PostGrey его уже пропускает. После 5 пропущенных писем сервер переходит в «белый» список.
Если повторные письма приходят слишком быстро (менее чем через 5 минут), то значит это спамер, и он переходит в черный список.
Если повторного письма нет, то остается в сером списке.
Установка достаточно простая — #yum install postgrey
Настройка также легкая:
Очищаем файл postgrey_whitelist_clients. Изначально там записи от разработчика. Добавляем те сервера, которым доверяем.
Рекомендуем этот список к добавлению:
mail.ru
yandex.ru
rambler.ru
gmail.com
beeline.ru
post.ru
pochta.ru
hotmail.com
hotmail.ru
yahoo.com
hotbox.ru
masterhost.ru
nic.ru
list.ru
bk.ru
inbox.ru
job.ru
Остается только запустить postgrey как сервис:
# chkconfig postgrey on
# service postgrey start
Дальше, если у пользователей возникнут проблемы, можно добавлять в этот файл и другие сервера.
check_policy_service unix:postgrey/socket,
Если почтовый сервер прошел все проверки — тогда добавляем
permit
smtpd_data_restrictions =
reject_unauth_pipelining,
reject_multi_recipient_bounce,
permit
smtpd_sender_restrictions =
permit_sasl_authenticated,
permit_mynetworks,
check_client_access hash:/etc/postfix/access,
check_recipient_access hash:/etc/postfix/recipient_access,
reject_invalid_hostname,
reject_non_fqdn_hostname,
reject_non_fqdn_sender,
Правило проверки соответствия ip и имени клиента
reject_unknown_client_hostname,
reject_unknown_sender_domain,
reject_unknown_hostname,
reject_rbl_client zombie.dnsbl.sorbs.net,
reject_rbl_client cbl.abuseat.org,
reject_rbl_client zen.spamhaus.org,
reject_rbl_client bl.spamcop.net,
reject_rbl_client multihop.dsbl.org,
reject_rbl_client work.rsbs.express.ru,
reject_rbl_client dnsbl.sorbs.net,
reject_rhsbl_sender dsn.rfc-ignorant.org
permit
Здесь, как видите, нет проверки с помощью Postgrey — она не нужна, так как в этом случае мы отсылаем письма, а не принимаем.