Пример можно посмотреть здесь.
Сразу предупреждаю, что настройкой почтовых серверов занимаюсь вынужденно, и большим специалистом не являюсь.
Используемые пакеты
На почтовых серверах я использую следующую связку:
– postix как MTA
– mysql для хранения базы пользователей и доменов
– cyrus-imap для хранения почты
– cyrus-sasl2 для осуществления авторизации POP3/IMAP/SMTP-клиентов (работает через PAM)
– web-cyradm для управления почтовыми ящиками и доменами
– squirrelmail как веб-интерфейс к почте
– sieve для управления фильтрацией почты
– collectd для статистики по серверу
– queuegraph по почтовой очереди
– mailgraph по обработанным письмам
Также для защиты от спама и вирусов:
– amavis как посредник для clamav и spamassassin
– clamav для проверки на вирусы
– spamassassin для проверки на спам
– spam_check для отслеживания заведомо неправильных доменов
– postgrey (не обязательно) для ведения серого списка (даёт задержку в 20–200 минут на доставку писем от неизвестных)
Пример настройки postfix
Пока я остановлюсь на настройках, посвящённых отбросу спамеров на этапе подсоединения к серверу. Остальное уже хорошо написано на других страницах.
Как настраивать авторизацию по SMTP, см. здесь.
Откуда разрешать соединения
Следующие настройки разрешают подсоединяться
хостам, указанным в файле access
тем, кто прошёл авторизацию по smtp
компьютерам из нашей сети
Запрещают подсоединяться с адресов, имеющих неверно записанный домен (reject_non_fqdn_sender) – нужно ли здесь?
И проверяют по block_list.txt (создаваемому spam_check) стоит ли пускать отправителя с таким адресом вообще.
Ещё можно указать reject_unknown_client, но изредка встречаются почтовые сервера, не имеющие собственного домена.
Ну и отвергнутых просить зайти позже: unknown_client_reject_code = 450
Проверка адреса отправителя
Настройки разрешают принимают письма от
хостов, указанных в файле access
отправителей, авторизовавшихся через SMTP
отправителей из нашей сети
Настройки запрещают принимают письма с обратными адресами
в которых указан неверный домен
в которых указан несуществующий домен (идёт проверка через DNS)
Настройки запрещают принимать письма от почтовых адресов, которые не прошли проверку – к ним не удалась попытка тестовой авторизации при доставке.
Это отсекает весь спам, отправляемый с несуществующих адресов.
Для ускорения используется буфер для уже проверенных адресов:
Для кого мы принимаем письма
Письма принимаем для всех, если
отправитель авторизовался
отправитель находится в локальной сети
наш почтовый сервер знает о таком получателе.
Иначе отвергаем.
Что удалённая система о себе говорит
Эта настройка отвергает разговор с системами которые сообщают о себе заведомо неверную информацию.
В частности, если в HELO указан неверный или неизвестный домен.