Антивирус, антиспам защита — это одни из самых важных функций безопасности для почтового сервера. В предыдущей статье мы рассказывали, как установить почтовый сервер на Ubuntu. Если у вас есть почтовый сервер, то данная статья крайне рекомендуется для последующей настройки и защиты сервера.
Работающие под Unix/Linux почтовые сервера, обычно, не уязвимы для зловредного кода и вирусов, очень не велик шанс, что сами серверы могут «заразиться». С другой стороны, операционная система конечного пользователя может быть не всегда столь безопасна. Нам конечно не хочется, чтобы наш почтовый сервер принимал или распространял зловредный код, встроенный в письма. Следовательно, установка антивирусной программы на почтовом сервере является обязательной.
Антиспам фильтры будут проверять каждое входящее и исходящее письмо на соответствии шаблонам спама. Например, спам письма обычно содержат большое количество получателей. Также обратный DNS запрос для домена в спам письме обычно выдаёт неверный ответ. Если программа фильтров спама находит какое-либо письмо, которое может быть спамом, она блокирует это письмо. Это позволяет поддерживать репутацию почтового сервера, при этом предотвращая попадание IP адреса почтового сервера в чёрный список.
В этом уроке мы посмотрим, как обезопасить свой почтовый сервер на Ubuntu, установив:
- Clam Antivirus: антивирусный движок с открытым исходным кодом.
- SpamAssassin: движок фильтрации спама электронных писем.
- MailScanner [version_4.74.16-1]: использует движки антивируса и антиспама для сканирования входящих и исходящих электронных писем.
Эта инструкция применима к определённым версиям. На момент написания статьи, MailScanner не доступен в репозитории Ubuntu. Поэтому мы будем вместо репозитория использовать .deb пакет MailScanner. К сожалению, зависимых пакетов, которые требуются для последней версии MailScanner [4.84.6-1] также нет в репозитории Ubuntu. Тем не менее, зависимые пакеты для версии 4.74.16-1 доступны. Мы будем использовать .deb пакет MailScanner [4.74.16-1] в этом уроке. Для тестирования используется Ubuntu 12.04.
Для тех, кто интересуется настройкой этого же самого под CentOS, то для вас будет написана отдельная статья.
Установка зависимостей на Ubuntu
Перед началом всех работ, первое, что нужно сделать, это установить все необходимые зависимости. Список зависимостей большой, но, к счастью, это можно сделать используя одну команду.
# apt-get install gcc g++ cpp zlib1g-dev libgmp3-dev perl bzip2 zip make patch automake libhtml-template-perl linux-headers-`uname -r` build-essential libnewt-dev libusb-dev libconvert-tnef-perl libdbd-sqlite3-perl libfilesys-df-perl libmailtools-perl libmime-tools-perl libmime-perl libnet-cidr-perl libsys-syslog-perl libio-stringy-perl libfile-temp-perl libole-storage-lite-perl libarchive-zip-perl libole-storage-lite-perl libdigest-sha-perl
Установка Clam Antivirus и SpamAssassin
Теперь, когда зависимости установлены, могут быть установлены Clam Antivirus и SpamAssassin, используем для этого apt-get.
# apt-get install clamav clamav-daemon spamassassin
SpamAssassin должен быть включён, а затем запущен:
# vim /etc/default/spamassassin
ENABLED=1
# service spamassassin restart
После установки пакетов, они могут быть обновлены с использованием следующих команд.
# freshclam ; sa-update
Установка MailScanner
После того, как всё программное обеспечение, от которого зависит MailScanner, установлено, мы загрузим .deb пакет для MailScanner версии 4.74 и установим его.
# wget # dpkg -i mailscanner_4.74.16-1_all.deb
Настройка MailScanner
Сейчас пришло время для подстройки параметров MailScanner.
Во-первых, создаём директорию SpamAssassin и задаём для неё права.
# mkdir /var/spool/MailScanner/spamassassin # chown postfix /var/spool/MailScanner/spamassassin
Делаем резервную копию конфигурационного файла /etc/MailScanner/MailScanner.conf, а затем модифицируем его.
# vim /etc/MailScanner/MailScanner.conf
%org-name% = test Ubuntu mail server %org-long-name% = Your Organization Name Here %web-site% = www.your-organisation.com Run As User = postfix Run As Group = postfix Incoming Queue Dir = /var/spool/postfix/hold Outgoing Queue Dir = /var/spool/postfix/incoming MTA = postfix Virus Scanners = clamav Spam List = SBL+XBL ## please check /etc/MailScanner/spam.lists.conf for more details ## SpamAssassin User State Dir = /var/spool/MailScanner/spamassassin ## the directory created earlier ##
Дополнительная информация о параметрах конфигурации может быть найдена в официальной документации.
Также модифицируется конфигурационный файл Postfix. Мы настроем Postfix попридерживать все электронные письма. MailScanner будет приниматься за них и проверять. Затем электронные письма будут передаваться снова для обработки Postfix, которые уже обеспечит их доставку. Здесь как нужно изменить файл настроек.
# vi /etc/postfix/header_checks
/^Received:/ HOLD
# vim /etc/postfix/main.cf
header_checks = regexp:/etc/postfix/header_checks
Включаем MailScanner, для этого раскомментируем следующую строку.
# vim /etc/default/mailscanner
run_mailscanner=1
Наконец запускаем службы Postfix и MailScanner.
# service postfix restart # service mailscanner restart
Проверка MailScanner
Теперь, когда развёрнут MailScanner, мы можем проверить его функциональность мониторингом журнала электронных писем.
Давайте отправим тестовое электронное письмо и посмотрим, что произойдёт.
# tail /var/log/mail.log
Mar 3 02:46:39 ubuntu postfix/smtpd[31616]: connect from localhost[127.0.0.1] Mar 3 02:46:39 ubuntu postfix/smtpd[31616]: E5F3C44FB1: client=localhost[127.0.0.1], sasl_method=LOGIN, sasl_username=sarmed Mar 3 02:46:39 ubuntu postfix/cleanup[31620]: E5F3C44FB1: hold: header Received: from [server_ip] (localhost [127.0.0.1])??by ubuntu.example.tst (Postfix) with ESMTPA id E5F3C44FB1??for ; Mon, 3 Mar 2014 02:46:39 +0600 (BDT) from localhost[127.0.0.1]; from= to= proto=ESMTP helo=<[server_ip]> Mar 3 02:46:39 ubuntu postfix/cleanup[31620]: E5F3C44FB1: message-id= Mar 3 02:46:40 ubuntu postfix/smtpd[31616]: disconnect from localhost[127.0.0.1] Mar 3 02:46:40 ubuntu MailScanner[31695]: MailScanner E-Mail Virus Scanner version 4.74.16 starting... Mar 3 02:46:40 ubuntu MailScanner[31695]: Read 848 hostnames from the phishing whitelist Mar 3 02:46:40 ubuntu MailScanner[31570]: New Batch: Scanning 1 messages, 2572 bytes Mar 3 02:46:40 ubuntu MailScanner[31695]: Read 4278 hostnames from the phishing blacklist Mar 3 02:46:40 ubuntu MailScanner[31695]: Using SpamAssassin results cache Mar 3 02:46:40 ubuntu MailScanner[31695]: Connected to SpamAssassin cache database Mar 3 02:46:40 ubuntu MailScanner[31695]: Enabling SpamAssassin auto-whitelist functionality... Mar 3 02:46:41 ubuntu MailScanner[31695]: Using locktype = flock Mar 3 02:46:41 ubuntu MailScanner[31570]: Virus and Content Scanning: Starting Mar 3 02:46:48 ubuntu MailScanner[31570]: Requeue: E5F3C44FB1.283A6 to 13B8344FB3 Mar 3 02:46:48 ubuntu MailScanner[31570]: Uninfected: Delivered 1 messages Mar 3 02:46:48 ubuntu postfix/qmgr[31519]: 13B8344FB3: from=, size=1879, nrcpt=1 (queue active) Mar 3 02:46:48 ubuntu postfix/local[31637]: 13B8344FB3: to=, relay=local, delay=8.6, delays=8.6/0/0/0.02, dsn=2.0.0, status=sent (delivered to mailbox) Mar 3 02:46:48 ubuntu postfix/qmgr[31519]: 13B8344FB3: removed
Выводы, которые можно сделать из отображаемого журнала.
- Postfix удерживает электронное письмо после соединения SMTP. Электронное письмо было размещено в /var/spool/postfix/hold.
- MailScanner просканировал электронное письмо: (1) проверка на спам по чёрному списку, (2) проверка на спам от spamassassin по онлайн базе и (3) сканирование на вирусы и содержание.
- MailScanner изменил ID очереди для этого электронного письма.
- После того, как было признано, что электронное письмо чистое, оно было отправлено на обработку Postfix с новым ID очереди.
- Postfix доставил электронное письмо в аккаунт назначения.
Итог, MailScanner, когда он интегрирован с Clam Antivirus и SpamAssassin — это очень мощный инструмент, которые обязательно должен быть на почтовом сервере, выполняющим реальные задачи. Он может парировать большинство существующих уязвимостей почтового сервера. Этот урок охватывает минимальную настройку безопасности почтового сервера, с использованием MailScanner. Параметры MailScanner, Clam Antivirus и SpamAssassin очень настраиваемые, и они могут быть изменены для точного соответствия различным требованиям
Надеюсь что помог.