ИБиЗИ ЛР / ПЗ ИБ 11.12.08
.pdfЛабораторная работа 11
Элементы комплексной защиты сервера электронной почты на
основе свободно распространяемых программных продуктов.
Часть 1
Цель работы и содержание: научиться устанавливать и настраивать
компоненты комплексной защиты сервера электронной почты: ClamAV,
SpamAssassin, MIMEDefang.
1.Общая информация о связке Sendmail-MIMEDefang-ClamAV- SpamAssassin.
2.Установка и настройка ClamAV.
3.Установка и настройка SpamAssassin.
4.Установка и настройка MIMEDefang.
Теоретическая часть
11.1. Общая информация о связке
Sendmail-MIMEDefang-ClamAV-SpamAssassin
Большая часть того, что приходит на почтовый сервер, совсем не желательно: это вирусы, спам и исполняемый мусор. Защита от спама и вирусов может сэкономить много времени и сил. Рассмотрим процедуру настройки для FreeBSD, с небольшими поправками, она может быть применена к любой Unix/Linux-системе, в которой используется Sendmail.
Используются следующие программы:
Sendmail – почтовый сервер;
MIMEDefang – программа управления контентом;
ClamAV – антивирус;
SpamAssassin – программа по борьбе со спамом и нежелательной корреспонденцией.
151
Связка этих программ, настроенная соответствующим образом,
позволяет практически полностью избавиться от вирусов/спама, без всякого вреда для легальных писем.
В Sendmail есть специальный интерфейс – milter API (milter = mail filter), предназначенный для подключения сторонних программ. Это означает, что можно легко добавить дополнительную функциональность к
Sendmail'у, которой у него раньше не было (рисунок 11.1).
sendmail
milter UNIX socket
/var/spool/MIMEDefang/mimedefang.sock
mimedefang
UNIX socket stdin /var/run/clamav/clamd
spamassassin |
clamd |
Рисунок 11.1 – Дополнительная функциональность Sendmail
В данном случае через milter к Sendmail'у будет подключен
MIMEDefang, а программы SpamAssassin и ClamAV будут в свою очередь подключаться к MIMEDefang'у.
Для того чтобы связка заработала, нужно проинсталлировать все компоненты, настроить их соответствующим образом и запустить в правильном порядке.
11.2. Установка и настройка ClamAV
Установите ClamAV из каталога /usr/ports/security/clamav с помощью команды make install.
cd /usr/ports/securtity/clamav make install
152
Пока что не вызывайте make clean! В каталоге сборки work/ есть примеры вирусов, на которых позже можно будет проверить, что программа работает правильно.
Из порта будут установлены:
главный сканнер вирусов, clamd;
утилита командной строки clamscan;
предварительная база сигнатур вирусов;
документация;
вспомогательные программы.
В нормальном режиме работы clamd должен работать постоянно, а
другие программы, которые желают проверить файл на наличие вирусов,
будут связываться с ним и передавать ему соответствующие файлы.
Запустите clamd из командной строки. Вообще-то его нужно конфигурировать, но в этот раз запуск выполняется только с целью проверки.
Находясь в каталоге порта, запустите проверку текущего каталога на наличие вирусов.
#clamscan -r -l testoutput.txt
Ключ -r заставляет clamscan выполнять рекурсивную проверку каталога. А ключ -l указывает на то, что результат сканирования нужно записать в файл testoutput.txt.
В результате выполнения команды clamscan проверит все файлы в текущем каталоге на вирусы и выведет сведения о каждом из них. В лог-
файле testoutput.txt будет сжатый отчѐт, в котором будут присутствовать только список инфицированных файлов и статистическая информация о проверке. Для версии ClamAV 0.65, должно быть найдено 5
инфицированных файлов.
Теперь нужно сконфигурировать ClamAV для совместной работы с
MIMEDefang. Его главный конфигурационный файл
/usr/local/etc/clamd.conf. Многие возможности и функции программы
153
являются конфигурируемыми, многие можно по желанию отключить.
Дополнительную информацию об опциях можно получить в man-странице файла clamav.conf.
Как минимум, нужно изменить пользователя, от имени которого будет работать ClamAV. Его нужно установить равным mailnull, это пользователь от имени которого работают Sendmail и MIMEDefang.
vi /usr/local/etc/clamd.conf
#User clamav
User mailnull
После того как вы изменили эти настройки, нужно также изменить права доступа на каталоги, в которые ClamAV выполняет запись.
#chown -R mailnull:mailnull /var/run/clamav/
#chown -R mailnull:mailnull /var/log/clamav/
После того как заработал сканнер, можно заняться обновлением баз.
Вирусные базы поддерживаются добровольцами со всего мира. Когда появляется новый популярный вирус, его сигнатуры и описание добавляются в базы в течение нескольких часов.
Для начала нужно запустить freshclam от имени root'а, чтобы проверить, что программа может связаться с одним из зеркал серверов описания вирусов и скачать с него базу. Убедитесь, что программа, прежде чем завершиться, проверяет свежесть файлов main.cvd и daily.cvd.
Когда уже известно, что обновление успешно выполняется, включите демон freshclam для выполнения периодических обновлений. Единственный нюанс связан с правами, с которыми работает freshclam. Демон freshclam
работает с правами clamav, а ClamAV – с правами mailnull, поэтому freshclam не сможет писать файлы в каталог журналов ClamAV. Проще всего изменить права, с которыми будет работать freshclam или пеложить его журналы в другое место.
154
В /etc/rc.conf нужно добавить строки clamav_clamd_enable=«NO» clamav_freshclam_enable=«YES» clamav_freshclam_flags=«-u mailnull --checks=1 \ --daemon-notify=/usr/local/etc/clamd.conf»
или
clamav_clamd_enable=«YES» clamav_freshclam_enable=«YES» clamav_freshclam_flags=«--checks=1 \ --datadir=/usr/local/share/clamav \ --daemon-notify=/usr/local/etc/clamd.conf \ --log=/var/log/freshclam.log»
в зависимости от того, какой вариант вы выберите. В первом случае freshlam
работает с правами mailnull, а во втором он кидает логи в другое место.
После следующей перезагрузки система запустит сканер вирусов и программу обновления базы сигнатур ClamAV. Если будут проблемы с запуском freshclam, попробуйте создать журнал и сделать его принадлежащим clamav.
#touch /var/log/freshclam.log
#chown clamav:clamav /var/log/freshclam.log
11.3. Установка и настройка SpamAssassin
SpamAssassin – это одна из самых известных программ по борьбе со спамом. Это Perl-скрипт, который анализирует письмо, сравнивает его с рядом шаблонов, и, в зависимости от результатов анализа, присваивает каждому письму определѐнное число, спам-рейтинг. Например, ключевые слова, такие как «Viagra», или фразы, такие как «Make money fast»
увеличивают рейтинг письма. Рейтинг также увеличивается из-за отсутствия адреса получателя в заголовке или неизвестного имени для IP-адреса
155
отправителя. Почтовый клиент потом может удалять письма в зависимости от набранного спам-рейтинга.
В действительности, методы, которые SpamAssassin использует для обнаружения спама значительно шире.
Проверка заголовков письма на правильность и соответствие стандартам Интернета.
Проверка заголовков и тела письма на наличие определѐнных фраз и строк, часто встречающихся в спам-письмах. Проверка может выполняться на нескольких языках.
Заголовок и тело письма могут проверяться по онлайн-базам,
содержащим контрольные суммы спам-сообщений
IP-адрес отправителя письма может проверяться по онлайн-спискам
садресами известных спаммеров или подозрительных почтовых серверов
Определѐнные адреса, хосты или домены могут быть занесены в чѐрный или белый список. Белый список может быть создан автоматически,
основываясь на истории отправленных сообщений
Установите SpamAssassin из порта /usr/ports/mail/p5-Mail- SpamAssassin. Поскольку SpamAssassin будет работать как часть
MIMEDefang, конфигурировать его сам по себе не стоит. Его конфигурация входит в состав MIMEDefang. Сейчас можно переходить к конфигурированию MIMEDefang.
11.4. Установка и настройка MIMEDefang
MIMEDefang может менять письма множеством различных способов;
с его помощью можно очень гибко организовать регулировку прав по использованию почтовой системы. В данном случае, главная причина использования MIMEDefang это обрубать лишние атачменты и скоординировать действия ClamAV и SpamAssassin.
Порт MIMEDefang находится в /usr/ports/mail/mimedefang. Также как и SpamAssassin он написан на Perl. Также как и ClamAV он работает в
156
режиме демона. Это позволяет избежать большой нагрузки на систему при старте Perl-скрипта при получении каждого почтового сообщения. При инсталляции инсталляционный скрипт MIMEDefang определяет, что в системе присутствуют ClamAV и SpamAssassin и выполняет сборку
соответствующим образом. |
|
|
Конфигурационный |
файл |
MIMEDefang, |
usr/local/etc/mimedefang/mimedefang-filter, содержит фрагменты Perl-кода,
который интегрируется в код главного демона MIMEDefang. Если вы не очень хорошо разбираетесь в Perl, не переживайте; просто проверяѐте что вы добавили новые строчки именно в том виде, в каком они показаны ниже
(вообще, автор статьи рекомендует и переводчик присоединяется, потратить немного времени на изучение Perl, даже если вы не программист;
неизвестно, кому он ещѐ полезней – программистам или администраторам
Unix).
Нужно установить несколько переменных в mimedefang, такие как $AdminAddress и $AdminName. Если отдельный человек будет заниматься администрированием MIMEDefang, укажите его имя и адрес, в противном случае, можете указать обычный адрес почтового администратора. (Кавычки указывать обязательно. Двойные или одинарные имеет значение, поэтому не нужно их менять.)
$AdminAddress=’postmaster@blackhelicopters.org’
$AdminName=«Mail Administrator»
MIMEDefang время от времени отправляет сообщения с информацией о выполненных действиях. Укажите адрес, на который должны приходить письма, в переменной $DaemonAddress.
$DaemonAddress=’mimedefang@blackhelicopters.org’
Остальные настройки в этом файле опциональны. Просмотрите, какие настройки вообще можно делать, возможно, какие-то из них покажутся вам полезными. Там же есть примеры, как настроить блокировку сообщений с
157
слишком большим количеством частей MIME (MIME parts). По умолчанию включены функции антиспама и антивируса и постановки письма на карантин.
Можно довериться MIMEDefang и просто отбрасывать письма,
зараженные с точки зрения MIMEDefang вирусами. Если вы не хоите ставить письма с вирусами на карантин, просто закомментируйте в файле mimedefang-filter эти строки:
#but quarantine the part for examination later. Comment
#the next line out if you don’t want to bother.
action_quarantine($entry, «A known virus was discovered and
\
deleted. Virus-scanner messages follow:\n \ $VirusScannerMessages\n\n»);
Если закомментировать эти строки, MIMEDefang заставит Sendmail
отбрасывать входящие письма с вирусами сразу же.
Переменная $bad_exts содержит список расширений файлов, которые
MIMEDefang будет блокировать. Можете расширить или, наоборот,
сократить этот список, если нужно. Для того чтобы запретить, например,
пересылку файлов с расширением .mp3, нужно просто добавить в список это расширение и перезапустить MIMEDefang.
Для того чтобы MIMEDefang стартовал во время загрузки системы, в
каталоге /usr/local/etc/rc.d найдите файл mimedefang.sh-dist и переименуйте его в mimedefang.sh. Если там уже есть такой файл, значит это действие выполнять не нужно – MIMEDefang уже будет стартовать.
Нужно чтобы после завершения загрузки системы работали
MIMEDefang и clamd; SpamAssassin вызывает MIMEDefang, так что выполнять его запуск при загрузке не нужно.
Аппаратура и материалы
1.Компьютерный класс общего назначения.
2.Операционная система FreeBSD.
2. Sendmail,ClamAV, SpamAssassin, MIMEDefang.
158
Указание по технике безопасности. Техника безопасности при выполнении лабораторной работы совпадает с общепринятой для пользователей персональных компьютеров: самостоятельно не производить ремонт персонального компьютера, установку и удаление программного обеспечения; в случае неисправности персонального компьютера сообщить об этом обслуживающему персоналу лаборатории; соблюдать правила техники безопасности при работе с электрооборудованием; не касаться электрических розеток металлическими предметами; рабочее место пользователя персонального компьютера должно содержаться в чистоте; не разрешается возле персонального компьютера принимать пищу, напитки.
Методика и порядок выполнения работы. Перед выполнением лабораторной работы студент получает индивидуальное задание. Защита лабораторной работы происходит только после его выполнения. При защите студент отвечает на контрольные вопросы и поясняет выполненное индивидуальное задание. Ход защиты лабораторной работы контролируется преподавателем.
Задания
1.Ознакомиться с теоретическими сведениями, изложенными в данных методических указаниях.
2.Выполнить установку и настройку программного обеспечения.
3.Оформить отчет.
Отчет о выполнении в письменном виде сдается преподавателю. При защите работы студент отвечает на контрольные вопросы и предоставляет отчет преподавателю.
Содержание отчета и его форма
Отчет должен иметь форму согласно оформлению реферата.
Титульный лист должен включать название дисциплины, название лабораторной работы, фамилию и инициалы сдающего студента, номер
159
группы, фамилию и инициалы принимающего преподавателя. Основная часть лабораторной работы должна содержать следующие элементы.
1.Название лабораторной работы.
2.Цель и содержание лабораторной работы.
3. Описание процедур установки и конфигурирования компонентов.
4. Выводы по проделанной работе.
Вопросы для защиты работы
1.Что такое ClamAV и для чего он предназначен?
2.Как происходит установка с каталога портов?
3.Что такое SpamAssassin и для чего он предназначен?
4.Что такое MIMEDefang и для чего он предназначен?
5.Как установить запрет в MIMEDefang на пересылку файлов с определенным расширением?
6.Для чего предназначен демон freshclam?
7.Каким образом производится начальная настройка ClamAV и
MIMEDefang?
8.Какие методы SpamAssassin использует для обнаружения спама?
9.Что такое milter API?
10.Как с помощью MIMEDefang заставить Sendmail отбрасывать входящие письма с вирусами?
Лабораторная работа 12
Элементы комплексной защиты сервера электронной почты на
основе свободно распространяемых программных продуктов.
Часть 2
Цель работы и содержание: Научиться верифицировать (проверять)
корректность установки, настройки и работы компонентов комплексной защиты сервера электронной почты: ClamAV, SpamAssassin, MIMEDefang.
160