8.6.2. Блокировка пересылки спама
8.6.2. Блокировка пересылки спама
При конфигурации почтового сервиса вы должны сделать так, чтобы злоумышленники не смогли посылать свой спам через ваш сервер. Вам необходимо произвести несколько настроек, чтобы массовая рассылка перестала быть эффективной:
? по умолчанию протокол SMTP не требует авторизации, поэтому любой пользователь может подключиться к серверу и отправить письмо. Чтобы избежать этого, можно выполнить одно из следующих действий:
• запретить с помощью сетевого экрана подключение к SMTP-порту пользователей, которые находятся вне вашей сети. Эту защиту чаще всего используют провайдеры и администраторы частных или корпоративных сетей. С реализацией этого метода у вас не должно возникнуть проблем, потому что мы уже не раз ее рассматривали;
• разрешать отправку почты только в течение определенного времени (например, 10 минут) после приема почты по протоколу POP3. В момент проверки почты сервер производит авторизацию клиента, и по этим данным может временно создаваться разрешающая запись в сетевом экране (или другим способом) для доступа к SMTP. Теперь в течение 10 минут с этого IP-адреса можно проверять почту;
• использовать авторизацию SMTP. Изначально в стандарте на протокол отправки сообщений нет ничего об идентификации пользователя, поэтому не все серверы поддерживают ее. Но в sendmail и других мощных пакетах есть расширение, которое позволяет сделать авторизацию;
? запретить отправку слишком большого количества писем с одного и того же IP-адреса. Вполне нормальным числом является 20. Пользователь не должен иметь права посылать более 20 писем за 10 минут;
? запретить отправку писем большому количеству получателей, список которых может содержаться в поле "CC".
Существуют и другие методы, но даже этих будет достаточно.
В последних версиях sendmail уже по умолчанию разрешается пересылка почты только с тех компьютеров, которые прописаны в файле /etc/mail/access. В листинге 8.2 приведено содержимое этого файла.
Листинг 8.2. Файл /etc/mail/access
# Check the /usr/share/doc/sendmail/README.cf file for a description
# of the format of this file, (search for access_db in that file)
# The /usr/share/doc/sendmail/README.cf is part of the sendmail-doc
# package.
#
# Смотрите файл /usr/share/doc/sendmail/README.cf для получения
# информации по формату файла (ищите слово access_db в этом файле)
#
# by default we allow relaying from localhost...
# По умолчанию мы разрешаем рассылку только с локального хоста
localhost.localdomain RELAY
localhost RELAY
127.0.0.1 RELAY
В этом файле можно оставить разрешение для рассылки почты только с компьютеров внутренней сети или самого сервера. Для этого файл должен содержать следующие записи:
localhost RELAY
your_domain.com RELAY
Все остальные не смогут выполнять рассылку писем. Такой метод хорош только в том случае, когда серверы и компьютеры защищены. Если хакер проник в сеть, то он уже сможет разослать любой спам от имени пользователя сети. От этого никуда не деться. Если есть хоть какое-то разрешение, то им можно воспользоваться, и ваша задача сделать так, чтобы это было по крайней мере очень сложно.
Запрет рассылки не всегда может быть реализован, поэтому приходится использовать другие методы, например, заставить пользователей проверять почту по протоколу POP до отправки писем. Для осуществления этого метода можно воспользоваться сервисом pop-before-smtp (http://popsmtp.sourceforge.net), который проверяет журнал сообщений /var/log/maillog, и если в нем найдена удачная авторизация за определенный период, то отправка почты разрешена.
Единственный, но существенный недостаток этого способа заключается в том, что если на пути следования письма стоит анонимный прокси-сервер или маскирующий сетевой экран, то пакеты будут приходить с другим IP-адресом. Это значит, что все пользователи, которые подключены через тот же proxy/Firewall, также автоматически считаются авторизованными. Таким образом, поиск по IP-адресу записей в журнале не может дать 100 % защиты.
Наиболее предпочтительным является метод, при котором используется SMTP-авторизация (SMTP AUTH), которая описана в RFC 2554. В сервисе sendmail поддержка этого расширения существует еще с версии 8.10.
Если вы решили использовать SMTP AUTH, то убедитесь, что почтовые клиенты пользователей имеют возможность авторизации на сервере и при этом настроены на ее использование.
Данный текст является ознакомительным фрагментом.