Как установить Clam Antivirus, SpamAssassin и MailScanner на почтовом сервере под Ubuntu

Антивирус, антиспам защита — это одни из самых важных функций безопасности для почтового сервера. В предыдущей статье мы рассказывали, как установить почтовый сервер на 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 очень настраиваемые, и они могут быть изменены для точного соответствия различным требованиям

Надеюсь что помог.

Оставить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *