Настраиваем Postfix как антиспам Frontend.

Дата: 10.07.2015 Автор Admin

Представим ситуацию, что вам нужно защититься от спама, а тратить деньги на платные решения не хочется.
Тут нам поможет связка Postfix + Spamasassin + Amavis.
В данном случае Postfix будет выступать как Frontend.
Работать это будет по следующей схеме:

Теперь перейдем к настройке.

Я буду производить настройку на Ubuntu 14.04 LTS

Обновим все пакеты:

Устанавливаем Postfix

Редактируем конфиг Postfix — /etc/postfix/main.cf

Приводим его к виду:

Где:

mydomain — Ваш почтовый домен

myhostname — имя сервера postfix

mydestination — куда принимаем почту

mynetworks — разрешенные сети

Если вы используете Postfix во внешней сети, то закоментируйте строки:

Теперь создайте файл /etc/postfix/transport если его не существует:

В данный файл добавьте:

Где, mydomain.com ваш домен, а 10.10.10.5 ip вашего почтового сервера.

Если ваш почтовый сервер принимает на не стандартном порту, то запись должна выглядеть так:

Где 26, порт на котором сервер принимает почту.

Добавляем параметры транспорта в базу Postfix:

Перезапускаем Postfix:

Теперь установим Amavis, Spamasassin, ClamAV и необходимые для них компоненты:

Создадим пользователей и добавим их в группы:

Переводим службу Spamasassin в автозапуск, для этого редактируем файл /etc/default/spamassassin

И приводим его к такому виду:

Запускаем Spamasassin

Перейдем к настройке Amavis. Он выступает в качестве сканера контента входящих сообщений и работает в паре со Spamasassin.

Открываем файл — /etc/amavis/conf.d/15-content_filter_mode

И раскоментируем строки:

Если ваш сервер не разрешается по имени, то добавляем в файл /etc/amavis/conf.d/05-node строку:

Где postfix.mydomain.com имя вашего сервера.

Если вам нужно чтобы в спам письмах в тему добавлялось ****SPAM****, откройте файл /etc/amavis/conf.d/50-user

И добавьте в него строки:

Где в строке @local_domains_acl указываются ваши почтовые домены.

Теперь настроем тэгирование сообщений, открываем файл /etc/amavis/conf.d/50-user и добавляем строки:

Перезапускаем Amavis:

Теперь, настроим Postfix на работу с Amavis:

После выполнения данной команды, в конце файла /etc/postfix/main.cf должна появиться строка:

Теперь откройте файл /etc/postfix/master.cf

После строки :

Добавьте следующие строки (стоки добавьте с табуляцией):

Должно получиться так:

 

Теперь в самый конец файла добавьте следующие строки(стоки добавьте с табуляцией):

Перезапустите Postfix:

Теперь через telnet проверим что amavis доступен:

Вывод команды должен быть таким:

Для выхода из telnet введите quit

Теперь проверим работу антиспама, тут нам опять понадобится программа telnet, через нее мы будем отправлять письмо со спамом.

Подключаемся:

указываем наш почтовый сервер

Указываем от кого email

Указываем кому отправить письмо

Указываем начало сообщения

Указываем тему письма:

Теперь вводим строку на которую отреагирует антиспам:

Теперь вводим знак точка «.» и нажимаем enter

Для выхода пишем quit.

Проверяем почтовый ящик пользователя, ему должно упасть письмо с пометкой ****SPAM****

Перейдем к настройке белых и черных списков отправителей.

Открываем файл /etc/amavis/conf.d/40-policy_banks

Добавляем следующие строки в конец файла:

 

Теперь создадим файлы для ведения белых и черных списков:

Соответственно в файл whitelist добавляются email адреса и домены. Добавление идет построчно, например так:

В файле blacklist ведется черный список.

Перезапускаем amavis

На этом все!

Удачной установки =)


Комментарии

Dobrumir

Прокомментируйте пожалуйста как на backend (M$ exchange 2013) почта пойдет?
Или backend сам должен подключаться и запрашивать почту?
Подойдет ли _http://firstvds.ru/products/vds_vps_cheap в качестве frontend?
Смысл затеи уменьшить входящий почтовый трафик, профильтровав его еще в интернет, и потом уже отправлять на белый ip который выдал sat провайдер.
Ткните пожалуйста пальцем.

    Admin

    Добрый день!

    На Backend почта пойдет по правилу транспорта postfix, за это отвечает файл /etc/postfix/transport

    Со стороны Exchange должен быть настроен relay для получения почты от внешних отправителей.

    В данной связке Postfix после проверки почты на спам, отправляет ее на backend (который указывается в транспортном правиле)

    Смысл затеи в том, что Postfix выступает как frontend, и получает всю входящую почту с вашего белого ip.

    Такая связка будет работать так:

    Клиент -> Интернет -> Firewall -> Postfix -> Exchange

    Как я понимаю вы хотите держать Postfix не во внутренней сети а во внешней, в таком случае вам нужно 2 белых ip, один для postfix другой для exchange.

    Но мне кажется лучше держать postfix во внутренней сети (в DMZ например) и иметь 1 белый ip.

George

Thanks
Good post!

Добавить комментарий

Ваш адрес email не будет опубликован.