Содержание
* Кратко о документе
* О чём этот документ
* Замечания и договоренности
* Схема работы системы
* Настройка Firewall
* Какое нужно "железо"
* Установка OpenBSD
* Конфигурация OpenBSD
* Удаление Sendmail из системы
* Добавление учётных записей
* Инсталляция и конфигурация Postfix
* Инсталляция необходимых модулей для Perl
* Установка и конфигурация SpamAssassin
* Установка Razor
* Установка DCC
* Установка BerkleyDB [добавление]
* Установка и конфигурирование Amavisd-new
* Установка и настройка отчётов Postfix
* Отчёты о спаме
* Что делать, если мне надо отключить, на время, amavisd-new
и/или SpamAssassin ?
* Производительность
* Настройки системы для нескольких доменов
* Антивирусная подсистема
* Скрипты, используемые в системе
* Legal staff
Кратко о документе
* построена на базе документации Fairly-Secure Anti-SPAM Gateway
Using OpenBSD, Postfix, Amavisd-new, SpamAssassin, Razor and DCC
(оригинал:
http://www.flakshack.com/anti-spam/)
* Adding ClamAV Anti-Virus to an Anti-SPAM Gateway
(оригинал:
http://www.xmission.com/%7Ekn/AddClamAV/)
* переведена на русский мной, мной же проинсталлена, добавлены
описания встретившихся проблем при установке.
* как со мной связаться:
sidix@b2r.ru
О чём этот документ
Этот документ - руководство, оно описывает как настроить
анти-спамовый шлюз используя набор бесплатного и доступного
программного обеспечения.
Данное руководство разработано для небольших компаний, которые
имеют один или несколько доменов.
Я буду описывать как установить и настроить на новый компьютер эту
систему, используя схему работы в корпоративном DMZ.
Система, представляет собой почтовый шлюз между сетью Internet и
корпоративными почтовыми серверами, такими, например, как: Lotus
Domino, Microsoft Exchange server, или вообще любой почтовый
сервер, без разницы.
При разработке данной системы упор сделан на безопасность,
использовать мы будем следующие компоненты:
* Операционная система OpenBSD (
http://www.openbsd.org,
http://www.openbsd.ru), текущий релиз 3.5;
* Почтовый агент MTA (Mail Transfer Agent) Postfix
(
http://www.postfix.org);
* Amavisd-new (
http://www.ijs.si/software/amavisd) - основной фильтр,
который обрабатывает поступающую от Postfix почту и гарантирует,
что мы не потеряем ни одного письма;
Amavisd-new - качественно новый, доработанный и наполненный новыми
функциями продукт, в отличие от своего предшественника: amavis,
который являлся простым вирус сканером;
* SpamAssassin (
http://www.spamassassin.org) - основной анти-спам
компонент, который производит сравнение приходящих писем с набором
правил, а также использует статический анализ который сам строится
на основе приходящих сообщений, а также в процессе обучения
системы;
* В дополнение к SpamAssassin модулю мы будем использовать 2
онлайновые базы данных:
+ DCC (Distributed Checksum Clearinghouse)
(
http://www.rhyolite.com/anti-spam/dcc);
+ Vipul's Razor (
http://razor.sourceforge.net);
эти две базы работают путем сравнения хэша пришедшего
сообщения с хэшем сообщения уже известного и
идентифицированного, как спам.
Все сетевые процессы мы будем запускать в chroot окружении,
соответственно, если наша система будет атакована, то
скомпрометированный модуль не причинит вреда всей системе в целом.
В данном руководстве мы будем использовать режим Postfix,
называемый: Before-Queue Content Filtering proxy (фильтрация
контента до постановки в очередь), который позволить отклонять
спамовые сообщения еще на этапе соединения с почтовым сервером (на
деле, так ли оно получается, будет видно со временем из логов).
Отправитель отклоненного сообщения, идентифицированного как спам,
получит от постмастера сообщение "undeliverable" (другими словами
"не доставлено"), которое будет включать строку с описанием ошибки,
и в которое вы сможете сами вписать инструкцию по преодолению
ложного срабатывания системы фильтрации (другими словами: что надо
будет сделать отправителю, чтобы миновать ваш почтовый фильтр, в
случае, если его письмо идентифицируется как спам), тогда он
сможет, следуя вашим инструкциям, быть добавленым в "белый список"
разрешенных адресов, которые не проверяются спам фильтром. В
конечном итоге вы получите антиспамовую систему которая будет иметь
очень малый процент ложных срабатываний.
Замечания и договоренности
Данное руководство подразумевает, что вы уже знакомы с
операционными системами на базе Unix, если же вы никогда прежде не
работали с такими системами, как Linux или Unix, то возможно, что
вы встретитесь с трудностями в процессе инсталляции и настройки
системы. Также, я надеюсь, что вы знаете что такое текстовый
редактор vi и как с ним работать.
(здесь
http://www.colorado.edu/ITS/docs/unix/vi.html вы можете
ознакомиться с основными командами).
Вы можете скачать и установить себе копию PuTTY
(
http://www.chiark.greenend.org.uk/%7.../download.html) и
WinSCP (
http://winscp.sourceforge.net/eng/download.php).
Эти две замечательные утилиты помогут вам в конфигурации вашего
сервера удаленно и не требуют никакой GUI оболочки на стороне
сервера, только консоль. Не буду описыватьпреимущества этих двух
программ, просто поверьте - они, то что надо.
* Текст, который выделен cиним - это то, что вы должны набрать в
консоли (в принципе можете работать методом Cut'n'Paste, только
делайте это аккуратнее);
* Текст, который выделен красным -это то, что вы должны исправить в
текстовых файлах;
* Текст, который выделен серым - это содержимое конфигурационных
файлов;
* Значок # перед командой, напечатанной cиним цветом - это
приглашение командной строки, его печатать не нужно;
* Значок # в конфигурационных файлах используется для комментариев;
Схема работы системы
ЗАМЕЧАНИЕ: предположим, наша локальна сеть использует адресацию:
10.0.0.0/8. Сеть 10.1.0.0/16 - наша основная. Сеть 10.2.0.0/16 -
это DMZ. Пусть внешняя сеть будет класса C с адресацией:
65.0.0.0/24. Сервер, который мы будем настраивать называется: mta1.
Имя домена в наших примерах: domain.com.
Настройка Firewall
Надеюсь в вашей компании используется firewall. Вот список
траффика, котрый нам необходимо пропустить через firewall, чтобы
всё заработало. Если вы не используете firewall - можете этот шаг
пропустить.
| откуда куда протокол порт описание
10.2.1.50 10.1.1.50 TCP 25 исходящий SMTP
External
10.1.1.50 10.2.1.50 TCP 25 SMTP с Exchange сервера на
наш шлюз
External 10.2.1.50 TCP 25 входящий SMTP
10.2.1.50 External UDP 6277 Исходящий трафик от MTA на DCC серверы
External 10.2.1.50 UDP 6277 Входящий трафик от серверов DCC на MTA
10.2.1.50 External TCP 2703 Исходящий трафик от MTA на Razor серверы
10.2.1.50 External TCP 7 Исходящий ping от MTA на Razor серверы
10.2.1.50 External TCP 22 Исходящий трафик SSH
10.2.1.50 External TCP 21 Исходящий FTP (для скачивания
необходимых при инсталляции файлов)
10.2.1.50 External TCP 80 Исходящий HTTP (для скачивания
необходимых при инсталляции файлов)
Сервер mta1 должен иметь доступ к DNS серверу. В моей конфигурации
DNS сервер стоит в DMZ, поэтому никаких дополнительных настроек на
firewall не требуется.
Какое нужно "железо"
В принципе будет достаточно среднего компа с 256Мб оперативной
памяти. В данном руководстве отражены настройки, оптимизированные
для работы именно с таким объемом памяти. Если у вас больше или
меньше чем 256Мб оперативки, вы можете ознакомится с разделом
Производительность, в конце руководства, перед тем как
запустите вашу систему в эксплуатацию. Данная конфигурация
позволяет поддерживать до 8 одновременных соединений с вашим
сервером. Если вам потребуется большее количество соединений
одновременно, скорее всего придется добавить еще пару плашек памяти
в ваш сервер (amavisd отжирает прилично памяти в процессе работы
(проверено - действительно жрет, однако ~50-60Мб всегда свободно и
сервак у меня еще ни разу не свопился))
Установка OpenBSD
OpenBSD FAQ chapter 4 (
http://www.openbsd.org/faq/faq4.html) -
здесь вы можете найти прекрасное пошаговое руководство по установке
операционной системы, поэтому я не буду вдаваться в подробности
инсталляции в данном руководстве, а приведу лишь пару советов.