СЕРГЕЙ ЯРЕМЧУК, фрилансер. Автор более 800 статей и шести книг. С «СА» с первого номера. Интересы: сетевые технологии, защита информации, свободные ОС
Roaring Penguin CanIt: ведём борьбу со спамом
Борьба с непрошеной коммерческой почтой – спамом, как и прочие задачи, отбирает некоторое время и силы системных администраторов, особенно на первом этапе установки и настройки спам-фильтров. В Сети можно найти многостраничные руководства по настройке любой системы борьбы со спамом, а мы попробуем найти более удобный вариант.
Большие организации с соответствующим бюджетом и имеющие в своем штате целый IT-отдел могут позволить себе закупать готовые решения, сэкономив тем самым время на развертывание и получив соответствующую техподдержку. В небольших же фирмах покупка дорогостоящего решения не только не целесообразна, но иногда и просто не по карману. Почитав некоторые описания по настройке почтовых систем на базе свободного ПО, приходишь к выводу, что для их реализации требуются серьезная подготовка и наличие некоторого времени, так как заставить работать как единое целое несколько программ с ходу не получится. Это и послужило одной из причин возникновения готовых наборов антиспам-систем, которые на порядок проще в установке, настройке и последующей эксплуатации. Об одном из них и пойдет речь сегодня.
Возможности CanIt
В основе канадской системы CanIt лежат известные утилиты: MIMEDefang – гибкий инструмент, предназначенный для защиты компьютерных систем от вирусов, и SpamAssassin – известное средство борьбы со спамом. Кроме того, в состав входят скрипты, упрощающие установку и первичную настройку, дополнительные приложения и удобный веб-интерфейс, необходимый для дальнейшей настройки системы и спам-фильтров, а также выдачи отчетов. Для прослушивания SMTP соединений MIMEDefang использует milter интерфейс Sendmail. Поэтому почтовая система должна быть построена только на Sendmail. Это не самый мой любимый почтовый сервер, с настройкой и безопасностью у него постоянные проблемы. Но, очевидно, здесь сыграла роль его популярность. Если у вас уже установлен другой MTA (Postfix, Exim, Qmail), то разработчики предлагают использовать Sendmail для фильтрации спама, а затем передавать почту основному MTA, работающему на нестандартном порту. Вам не потребуется делать дополнительные денежные вложения, если в системе предусмотрено достаточно ресурсов на развитие, правда, это несколько усложнит систему. Но в том случае когда используется MTA, разработанное для отличных от UNIX-операционных систем, без отдельного компьютера уже не обойтись. Либо как вариант решения разработчики предлагают приобрести фильтрующий почтовый прокси CanIt Appliance.
В качестве антивируса по умолчанию применяется ClamAV, но при желании CanIt можно легко сконфигурировать с F-Risk’s F-PROT и F-PROTD, F-Secure’s FSAV, H+BEDV AntiVir, Network Associates’ uvscan, Norman Virus Control, Sophos Sweep, Symantec CarrierScan Server, Trend Micro’s vscan и Vexira Anti-Virus. Учитывая, что вирусы часто рассылаются при помощи спам-технологий, они частично будут отброшены антиспам-фильтром. Для определения спама использованы практически все популярные сегодня методы: ключевого слова, анализ заголовка, анализ формата сообщения, Байесовский статистический анализ, черные, белые и серые списки, списки известных open-proxy, DNS-верификация, SPF (sender policy framework, http://spf.pobox.com). А также hit-and-run, когда неизвестному пользователю отсылается сообщение о невозможности доставки и в случае его повторного отправления сообщение будет принято. Хотя здесь тоже имеются дополнительные настройки, позволяющие ограничить прием повторного сообщения только той подсетью, из которой письмо было отправлено первый раз. Система может быть сконфигурирована для фильтрации входящего, исходящего и внутреннего почтового трафика. Можно задать правила фильтрации по MIME-типу, потенциально опасным расширениям прикрепленных файлов (в документации приведено 56 таких расширений – asf, bat, chm, cmd, com, crt, dll, exe, hlp, hta, inf, scr и прочие), почтовым адресам получателя и отправителя, домену и прочие. Вы можете задать и свои правила фильтрации.
Также несколько установленных CanIt могут образовывать единую сеть, позволяющую синхронно тренировать Байесовские фильтры, Roaring Penguin Traning Network.
Кроме GNU/Linux CanIt будет работать на Solaris, FreeBSD, Compaq Tru64 UNIX, HPUX и AIX. Отдельно хотелось бы отметить хорошую документацию проекта, часть которой поставляется вместе с дистрибутивом.
Архитектура и принцип работы CanIt
Для того чтобы немного понять принцип работы системы CanIt и проще было бы разобраться с настройкой, необходимо рассмотреть её архитектуру. Сообщение при помощи milter передается mimedefang, который запускает отдельный процесс, работающий в дальнейшем с сообщением. Между ними может быть как UNIX, так и TCP-сокет. Процесс, получивший заголовок и тело сообщения от Sendmail, помещает его во временный каталог (/var/spool/MIMEDefang) и через UNIX-сокет отсылает команду mimedefang-multiplexor, который управляет пулом постоянно запущенных Perl-процессов, осуществляющих фильтрацию, и передает сообщение одному из них. При нехватке Perl-процессов по команде multiplexor запускаются дополнительные, а при уменьшении нагрузки лишние «убиваются». Чтобы избежать утечки памяти все процессы периодически обновляются (забегая вперед, скажу, что это все настраивается в файле mimedefang.conf).
Если SMTP-соединение либо отправитель сообщения принадлежат к любому из черных списков, сообщение отвергается. На следующем этапе удаляются или изолируются потенциально опасные вложения и происходит проверка на вирусы. Письмо из белого списка проходит дальше без проверок. Если же оно не занесено в такой список, письмо проверяется и, в случае если оно не оценивается как спам, проходит дальше. Если же сообщение помечается как спам, то оно проходит еще несколько этапов. Сначала на основании хэш-функции высчитывается уникальный ID, который сравнивается с имеющимся в базе данных. Если ID совпадает со статусом spam или not-spam, то в первом случае отправителю отсылается код отказа, а во втором – письмо отправляется получателю. Если же соответствующий ID не найден, то письму присваивается статус one-shot и отправителю отсылается сообщение о временной невозможности доставки (такое сообщение по умолчанию не показывается в веб-браузере). Спамеры могут проигнорировать такое сообщение и не отправить письмо повторно, а почтовые серверы в такой ситуации через некоторое время повторят его обязательно. Если ID уже занесен в базу данных как one-shot, то его статус меняется на pending и отправителю опять отсылается сообщение о временной невозможности доставки. Время нахождения в статусах one-shot и pending зависит от настроек. По умолчанию если через неделю one-shot не изменило статус на pending, то оно обозначается как спам.
Рисунок 1. Принцип работы CanIt
Лицензия
На сегодня доступны две версии продукта – CanIt Pro и CanIt Free. Вторая версия предназначена для малого бизнеса и по сравнению с первой имеет некоторые ограничения. Так, пользователю не разрешается модифицировать исходный код для своих задач (кроме, надо полагать, GPL-продуктов, входящих в состав), система будет поддерживать не более 50 пользователей, правила всех антиспам-фильтров может редактировать только администратор, пользователи будут лишены некоторых возможностей, не будет доступна техническая поддержка и Roaring Penguin Training Network, нельзя использовать продукт для обслуживания третьей стороны. Для небольшой организации такие ограничения не существенны. Кроме того, free-лицензия будет действительна ровно год, затем ее придется обновлять. При этом если послать запрос заранее, до истечения срока действия ключа, на уже использованный один раз электронный адрес, то все равно получите старый ключ, даже если остальные параметры (организация, операционная система) будут изменены. Поэтому, если вам нужно несколько ключей, пользуйтесь разными адресами.
Готовим систему к установке Free CanIt
Во время написания статьи была актуальной версия Free CanIt 3.2.0, выпущенная в феврале 2006 года, о ней и пойдет речь. Перед получением доступа к архиву необходимо подтвердить лицензионное соглашение и заполнить данные для генерирования ключа, обязательно указав правильный электронный адрес. После чего внизу страницы набираем «I agree» и нажимаем «Generate Licence Key».
Архивы с прекомпилированными пакетами доступны для Red Hat 8.0, Red Hat 9, Fedora Core 1, Fedora Core 2, Fedora Core 3, Red Hat Enterprise Linux 3 и Solaris 2.9 (размер архивов колеблется в пределах 8,5-9,6 Мб). Для остальных систем CanIt придется собирать из исходных текстов (архив 12,9 Мб). В этом случае ряд операций придется проделать вручную, поэтому в статье будет рассмотрен более сложный вариант. Хотя, к слову, в архиве с исходными тестами в подкаталоге Packaging лежат скрипты, позволяющие собрать пакеты для Solaris 9, SuSE, Debian и RedHat.
Кроме самого CanIt, нам понадобятся установленный Sendmail с milter. В документации версия не указана, но начиная с 8.11/8.12 использован новый milter API, с которым сейчас работает MIMEDefang. Я использовал Sendmail версии 8.13. Далее веб-сервер Apache, первый или второй, собранный с поддержкой PHP 4 или 5 версий, установленная СУБД PostgreSQL от 7.3 (лучше от 8.0) и Perl не ниже 5.6, так как CanIt написан на нем. Все это уже должно быть установлено и настроено.
Небольшие подготовительные операции
Следующим шагом после распаковки архива следует проверка и предварительная подготовка системы при помощи скрипта, находящегося в os-specific. Вся проблема состоит в том, что скрипты ориентированы на различные версии RedHat/Fedora, других дистрибутивов вы там не найдете. Если попробовать выполнить любой из них, получается такой вот результат:
#./os-specific/fedora-core-1/prepare-system
R O A R I N G P E N G U I N S O F T W A R E I N C .
---------------------------------------------------------
Welcome to the CanIt preparation script for Fedora Core 1
This script will check your system to ensure that all prerequisites
required to run CanIt are installed.
Verifying that you are running Fedora Core 1... FAILED
Fedora Core not found; you are running ALT Linux Sisyphus (20050723)
|
Чтобы не пропустить какое-то из обязательных действий, я рекомендую вам изменить любой из этих скриптов. Обязательно закомментируйте функцию проверки версии системы check_release и, возможно, функцию проверки наличия установленных пакетов, требуемых для удовлетворения зависимостей check_rpms. Если посмотреть на работу функции, отвечающей за проверку наличия установленных пакетов, то можно получить этот список:
db4 db4-devel perl httpd postgresql-devel postgresql postgresql-libs
postgresql-server php php-pgsql php-imap sendmail sendmail-devel sendmail-cf
gcc make glibc-devel m4 binutils libgcc
|
В некоторых системах, в том числе и основанных на rpm-пакетах, названия могут немного отличаться. Просто проверьте, что у вас уже установлено. Далее скрипт проверяет наличие в системе необходимых пользователей и каталогов для работы и, если требуется, создает их. Сначала пользователь для Sendmail.
# id smmsp
uid=112(smmsp) gid=# id smmsp
uid=112(smmsp) gid=58(smmsp) группы=58(smmsp)58(smmsp) группы=58(smmsp)
|
Если в системе нет пользователя smmsp, создаем. Но скорее всего это означает, что Sendmail либо не установлен, либо работает от имени другого пользователя.
# /usr/sbin/useradd -c "Sendmail user" -r -M -d /var/spool/clientmqueue -s /bin/false smmsp
Теперь проверяем для MIMEDefang.
# id defang
id: defang: Такого пользователя нет |
# mkdir -p /var/spool/MIMEDefang
# /usr/sbin/useradd -c "MIMEDefang user" -r -M -d /var/spool/MD-Bayes defang
# chmod 700 /var/spool/MIMEDefang
# chown defang.defang /var/spool/MIMEDefang
# mkdir -p /var/spool/MD-Bayes
# chmod 700 /var/spool/MD-Bayes
# chown defang.defang /var/spool/MD-Bayes
# mkdir -p /var/spool/MD-Quarantine
# chmod 700 /var/spool/MD-Quarantine
# chown defang.defang /var/spool/MD-Quarantine
Даже при относительно небольшом количестве писем, проходящих через ваш сервер, вероятно, лучшим решением будет использование оперативной памяти для каталога /var/spool/MIMEDefang. Это на порядок ускорит обработку информации. Для этого в /etc/fstab необходимо внести следующие строки (для 128 Мб):
none /var/spool/MIMEDefang tmpfs mode=700,size=128M, uid=defang,gid=defang 0 0
Следующим шагом скрипт сохраняет старые настройки Sendmail из каталога /etc/mail в /etc/mail-canit-backup и создает новые конфигурационные файлы.
# fgrep -v INPUT_MAIL_FILTER < | fgrep -v 'DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA' > /etc/mail/sendmail.mc.NEW
# cat <<'EOF' >> /etc/mail/sendmail.mc.NEW
INPUT_MAIL_FILTER(`mimedefang', `S=unix:/var/spool/MIMEDefang/mimedefang.sock, F=T, T=S:15m;R:15m;E:15m')
EOF
После этого сохраняем старые настройки и компилируем рабочий файл.
# mv -f /etc/mail/sendmail.mc /etc/mail/sendmail.mc.ORIG
# mv -f /etc/mail/sendmail.mc.NEW /etc/mail/sendmail.mc
# make -C /etc/mail
Теперь проверяем и устанавливаем в автозагрузку все сервисы, от которых зависит работа CanIt. В различных дистрибутивах это делается по-разному, приведу пример для RedHat и SuSE.
# chkconfig sendmail on
# chkconfig postgresql on
# chkconfig httpd on
Для сервисов CanIt устанавливаем запуск с большим номером, чем у предыдущих.
# ln -s /etc/mail/canit/mimedefang-ctrl /etc/init.d/canit
# ln -s /etc/mail/canit/ticker-ctrl /etc/init.d/canit-ticker
Делаем символическую ссылку для третьего уровня запуска системы, если нужен запуск на остальных уровнях, укажите другой конечный каталог.
# ln -s /etc/init.d/canit /etc/rc3.d/S86canit
# ln -s /etc/init.d/canit-ticker /etc/rc3.d/S87canit-ticker
Для остановки при выключении и перезагрузке системы.
# ln -s /etc/init.d/canit-ticker /etc/rc0.d/K13canit-ticker
# ln -s /etc/init.d/canit-ticker /etc/rc1.d/K13canit-ticker
# ln -s /etc/init.d/canit-ticker /etc/rc6.d/K13canit-ticker
# ln -s /etc/init.d/canit /etc/rc0.d/K14canit
# ln -s /etc/init.d/canit /etc/rc1.d/K14canit
# ln -s /etc/init.d/canit /etc/rc6.d/K14canit
С CanIt пока все. Проверяем настройки PostgreSQL, Apache c PHP. В конфигурационном файле PostgreSQL /var/lib/pgsql/data/pg_hba.conf локальные запросы должны быть помечены как trust. Обычно по умолчанию так и сделано, но проверьте, чтобы не было комментария в строке (для версий 7.3 и выше).
local all all trust
В более ранних версиях PostgreSQL формат несколько иной.
local all trust
Кроме этого, в файле postgresql.conf, который находится в этом же каталоге, параметр max_fsm_pages установите в 500000.
Теперь Apache. Убедитесь в конфигурационном файле веб-сервера httpd.conf, что PHP подключен, а файлы, имеющие расширение .php, рассматриваются как программы на PHP.
LoadModule php4_module modules/libphp4.so
AddModule mod_php4.c
DirectoryIndex index.html index.php
AddType application/x-httpd-php .php4 .php .phtml
Во многих дистрибутивах параметр max_execution_time, определяющий максимальное время выполнения каждого скрипта, в файле php.ini имеет низкое значение (обычно 30), недостаточное для нормального выполнения некоторых действий CanIt. Его рекомендуется установить в 300. Также необходимо отключить safe_mode, так как чтение файла /etc/mail/canit/db-settings невозможно в этом режиме.
safe_mode = Off
Теперь запускаем PostgreSQL и Apache и переходим к следующему этапу.
# /etc/init.d/httpd start
# /etc/init.d/postgresql start
Компилируем модули и устанавливаем CanIt
После всех подготовительных работ переходим непосредственно к сборке модулей Perl, MIMEDefang и Sendmail 8.12 (если он не установлен). В подкаталоге src архива после распаковки вы обнаружите 26 файлов, в том числе и Sendmail 8.12.11 и 8.13.5, ClamAV 0.88, MIMEDefrag, CanIt 2.55 и остальные Perl-модули для удовлетворения зависимостей.
В общем случае для сборки всей системы необходимо дать команду./build.sh, которая сама определит, что нужно устанавливать.
# id smmsp
R O A R I N G P E N G U I N S O F T W A R E I N C .
---------------------------------------------------------
Welcome to the CanIt build script.
Checking your system for prerequisites... OK
Looks like you have Sendmail 8.13; we'll unpack 8.13
Good... all source files present and accounted for.
Unpacking archive: Digest-SHA1-2.00.tar OK
......
Substituting paths in CanIt source code... OK
Building Digest::SHA1... ---O--
Found Perl module Digest::MD5 (2.20) SKIP BUILD
Building HTML::Tagset... OK
......
Found Perl module File::Spec (0.8) SKIP BUILD
Found Sendmail 8.13.4 with Milter SKIP BUILD
libmilter.a not found BUILD
Building libmilter... OK
Building Sendmail wrapper program... OK
Building Mail::SpamAssassin... OK
Building CanIt perl modules... OK
Building MIMEDefang... OK
Building Clam AntiVirus... OK
*** Software has been built successfully. You may run './install.sh'
*** as root to install the software.
*** NOTE: There is no 'defang' user on this system. We strongly
*** recommend creating a 'defang' user and group for MIMEDefang.
|
Обратите внимание на вывод. Если соответствующий модуль уже был установлен в системе, то он пропускается. Бывает, что Perl модуль по непонятным причинам не компилируется и тогда скрипт завершается с ошибкой. В этом случае просто установите его стандартным способом, например, при помощи apt-get. При сборке он будет помечен как установленный, и соответствующий шаг будет пропущен. Также в системе на момент сборки не было пользователя defang, скрипт, как видите, предупредил нас об этом. В некоторых ситуациях, возможно, понадобится передать скрипту дополнительные параметры. Например, --everything позволит принудительно пересобрать все, а при использовании --not-sendmail или --not-clamav не будут собираться соответствующие приложения.
Теперь поступаем, как подсказывает предыдущий вывод, и запускаем скрипт install.sh, в качестве параметра ему необходимо передать каталог веб-сервера, куда будут скопированы php-скрипты. Как вариант можно все настройки указать в файле layouts/layout.default. Для CanIt лучше использовать отдельный каталог. Я указал rr, в примерах документации использован canit.
# ./install.sh --webroot=/var/www/html/rr
R O A R I N G P E N G U I N S O F T W A R E I N C .
---------------------------------------------------------
Welcome to the CanIt installation script.
Using layout file /home/sergej/work/rr/soft/canit-distro-3.2.0/layouts/layout.default
. /home/sergej/work/rr/soft/canit-distro-3.2.0/layouts... OK
....
Installing documentation and contributed code OK
Installing CanIt files OK
Installing Web page files OK
*** Software has been installed successfully.
Now, initialize the Spam database by running:
./init-database
from inside the distribution directory. NOTE: Even if
you are upgrading from an earlier version, you must still
run ./init-database. Your existing data will be preserved.
|
Следующий шаг – инициализация базы данных. Здесь скрипт запускаем без дополнительных параметров. И последовательно отвечая на вопросы, указываем имя и пароль администратора для доступа к PostgreSQL, и пользователя, от имени которого CanIt будет работать с базой. В квадратных скобках указаны параметры по умолчанию.
# ./init-database
Please enter the PostgreSQL super-user name [postgres]:
Please enter the PostgreSQL super-user password:
Please re-enter the PostgreSQL super-user password:
Please enter the regular database user's name [spam]:
Please enter the regular database user's PostgreSQL password:
Please re-enter the regular database user's PostgreSQL password:
Please enter the database name to use [spam]:
Please enter the database host if not local []:
Review of your entries:
Database Super-User: postgres
Database Super-User Password: <Hidden>
Regular database user: spam
Regular database user's password: <Hidden>
Database Name: spam
Database Host: <Local Server>
Is this information correct? (Y/N) y
Please enter the Web GUI login name of the CanIt administrator [admin]:
Please enter the CanIt administrator's password:
Please re-enter the CanIt administrator's password:
Review of your entry:
CanIt Administrator: admin
Is this information correct? (Y/N) y
Checking for existing spam database... NO
No spam database found; creating a fresh one.
No spam database found; creating a fresh one.
Detected PostgreSQL version 8.0.4
Creating user postgres OK
Creating database 'spam' OK
Creating standard CanIt tables, sequences and indexes
Creating sequences:
..... OK
Creating tables:
......................................... OK
Creating indexes:
......... OK
Granting access on objects to postgres:
..... OK
Granting access on objects to postgres:
......................................... OK
Doing base CanIt variable descriptions OK
Doing base CanIt data OK
Creating administrator account OK
|
Данные для доступа к БД будут сохранены в файле /etc/mail/canit/db-setting, их можно впоследствии изменить вручную. Владельцем этого файла должен быть apache, группа defang права доступа 0640, на каталог и подкаталоги /etc/mail/canit соответственно root:root и 0755.
И последний этап перед установкой
Теперь очередь MIMEDefang. В конфигурационном файле /etc/mail/canit/filter-settings.pl необходимо изменить значения следующих полей, выставив их в соответствии с действующими настройками. Хотя это можно сделать затем и через веб-интерфейс (во вкладке Setup есть три мастера), но мне удобней отредактировать один файл, чем искать настройки по вкладкам, с вscjrjq вероятностью что-то пропустить. В случае неудачи вы получите на указанные адреса отладочные сообщения, например, об отсутствии или невозможности подключиться к базе данных.
- $AdminAddress – адрес электронной почты администратора CanIt$.
- $AdminName – имя администратора.
- $DaemonAddress – адрес электронной почты, куда MIMEDefang будет отсылать свои сообщения.
- $TempfailIfDatabaseDown – при установке этого параметра в 1, в случае невозможности просканировать сообщение (например, отсутствие PostgreSQL) в заголовок почтового сообщения будет добавлено предупреждение X-Scan-Warning: «NOT SCANNED BY CANIT».
- $VirusHandlingIfDatabaseDown и $WindowsExecutables IfDatabaseDown – что делать при обнаружении вируса или с файлами, имеющими потенциально опасное расширение при отсутствии связи с БД («Discard», «Reject» или «Accept»).
Более тонко изменить работу MIMEDefang можно в файле mimedefang.conf.
Настройки антивирусного сканера, который будет проверять почту, производятся в файле /etc/mail/canit/virus-scanners.pl. В него включены все поддерживаемые антивирусы, для подключения любого из них достаточно снять комментарий с соответствующих строк.
Учитывая, что ClamAV распространяется по лицензии GPL и к тому же входит в комплект CanIt, приведу пример для него.
# http://www.clamav.net/
$Features{'Virus:CLAMD'} = '/usr/sbin/clamd';
# Внимание clamd должен работать от имени пользователя «defang»
$ClamdSock = '/var/spool/MIMEDefang/clamd.sock';
Хотя возможен и второй вариант.
# Раскомментируйте если для проверки будет использоваться clamscan
# $Features{'Virus:CLAMAV'} = '/usr/bin/clamscan';
В каталоге /etc/mail/canit/ лежит скрипт clamav-ctrl, предназначенный для запуска демона clamd.
# ln -s /etc/mail/canit/clamav-ctrl /etc/init.d/clamd
# chkconfig clamd on
Периодически необходимо очищать базу данных от устаревшей информации и чистить временный каталог и карантин. Для этих целей служит скрипт /etc/mail/canit/canit.cron, который должен запускаться при помощи cron раз в день от имени root. В дистрибутив также включен cron-скрипт для запуска freshclam, обновляющий антивирусные базы ClamAV.
# crontab -e
0 6 * * * /bin/sh /etc/mail/canit/canit.cron
0 6 * * * /bin/sh /etc/mail/canit/freshclam.cron
При помощи cron запускается скрипт /etc/mail/canit/send-trapped-report.pl, задача которого – рассылать сообщения всем пользователям о том, сколько и каких присланных им писем находятся в карантине. Он требует небольшого редактирования под действующую сеть, но подробно останавливаться на его работе не буду. Почту, находящуюся в карантине, администратор может отправить запросившему ее пользователю при помощи скрипта /etc/mail/canit/unquarantine, указав в качестве параметра каталог карантина, в котором находится интересующее пользователя письмо (он находится в /var/spool/MD-Quarantine/).
Первый запуск
Считаем, что веб-сервер, PostgreSQL и Sendmail уже запущены, пора сделать тоже с CanIt.
# /etc/mail/canit/ticker-ctrl start
Starting the CanIt ticker [ OK ] |
# /etc/mail/canit/mimedefang-ctrl start
Validating setup: [ OK ]
Starting mimedefang-multiplexor: [ OK ]
Starting mimedefang: [ OK ]
|
При первом запуске mimedefang-ctrl в дистрибутиве ALTLinux 3.0.4 скрипт завершил работу с такой ошибкой.
# /etc/mail/canit/ticker-ctrl start
Validating setup: Can't locate DB_File.pm in @INC (@INC contains:
/usr/local/lib/perl5/site_perl/5.8.7/i386-linux /usr/local/lib/perl5/site_perl/5.8.7
/etc/perl5 /usr/lib/perl5/i386-linux /usr/lib/perl5 /usr/local/lib/perl5/site_perl
/usr/lib/perl5/vendor_perl/i386-linux /usr/lib/perl5/vendor_perl .) at
/usr/local/lib/perl5/site_perl/5.8.7/CanIt/Bayes/Signature/Berkeley.pm line 9.
BEGIN failed--compilation aborted at
/usr/local/lib/perl5/site_perl/5.8.7/CanIt/Bayes/Signature/Berkeley.pm line 9.
.........
|
В поставляемых в комплекте CanIt файлах не оказалось DB_File.pm. Проблема решилась установкой пакета perl-DBM-5.8.7-alt2.i586.rpm.
Теперь в веб-браузере набираем «http://имя_узла/rr/» и получаем доступ к графическому интерфейсу. После регистрации, используя логин и пароль, указанный при инициализации базы данных, вам предложат ввести регистрационный ключ, без которого CanIt работать не будет. Обратите внимание на сообщения на странице приветствия (рис. 2), обязательно просмотите все указанные ссылки. Первое, помеченное как warning, говорит о том, что имеются замечания по настройке (рис. 3). Администратор предупреждается о том, что настройки PostgreSQL не оптимальны (такие сообщения всегда доступны в «Setup -> System Check»). Последнее сообщение предлагает воспользоваться мастером Basic Setup Wizard для первоначальной настройки CanIt. Перейдя по ссылке, вы обнаружите параметры, выставленные в файле filter-settings.pl. И наконец, сообщение по середине сообщает, что свободная версия рассчитана на 50 пользователей и их необходимо занести в таблицу «Valid Recipients». В версии CanIt Pro эта таблица используется для обозначения действующих почтовых адресов и активируется установкой «Only accept mail for accounts in the Valid Recipients table» в «Administration -> Global Setting». Письма, приходящие на адреса, не указанные в этой таблице, будут сразу же отбрасываться (адрес postmaster согласно стандарту SMTP всегда считается действительным, и письма на этот адрес будут приходить в любом случае).
Здесь все просто, заносите почтовые адреса по одному в линии и нажимаете «Add Recipient(s)». При этом адреса можно писать полностью с указанием домена (user@domain.net) или локального пользователя (user). Во вкладке «Administration -> Users» можно разрешить такому пользователю вход через веб-интерфейс для просмотра статистики, изменение параметров работы некоторых фильтров. В критических ситуациях можно сбросить пароль любого пользователя при помощи скрипта /etc/mail/canit/reset-password.pl.
Рисунок 2. Страница приветствия при первой загрузке. Обратите внимание на сообщения
Рисунок 3. Предупреждение CanIt о неоптимальной настройке PostgreSQL
В других вкладках можно задать правила приема почты для домена и отправителя (рис. 4) и еще много настроек. На странице Reports можно получить любые отчеты по инцидентам.
Рисунок 4. В настройках CanIt можно указать адреса отправителей и действия, которые будут применены при получении от них письма
Проверяем
Корректность установки CanIt можно проверить при помощи telnet.
$ telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is "^]".
220 notebook.net ESMTP Sendmail 8.13.4/8.13.4; Thu, 25 May 2006 14:05:05 +0300
HELO localhost
250 notebook.net Hello notebook.net [127.0.0.1], pleased to meet you
MAIL FROM:
554 5.7.1 CanIt is installed
QUIT
|
Отправка письма canit-probe@roaringpenguin.com должна завершиться с ошибкой, но будет выведено сообщение «CanIt is installed», говорящее о том, что установка прошла успешно. В /etc/mail/canit находится файл sample-spam-message, отправив который можно проверить работу спам-фильтров.
А при помощи команды ps waux | grep defang убеждаемся в запуске новых процессов, обрабатывающих сообщение.
$ ps waux | grep defang
defang 9326 0.0 0.2 3376 696 ? S 13:46 0:00
/usr/local/bin/mimedefang-multiplexor -p /var/spool/MIMEDefang/ticker.pid
-U defang -m 2 -x 4 -r 100 -i 3600 -b 432000 -c 50 -w 0 -s
/var/spool/MIMEDefang/ticker.sock -l -X 150 -P 4 -Y canit-ticker -F
/etc/mail/canit/ticker-filter
defang 9327 0.0 2.2 18936 5304 ? S 13:46 0:01
/usr/bin/perl /usr/local/bin/mimedefang.pl -f /etc/mail/canit/ticker-filter -server
…
defang 9408 0.0 0.2 4080 592 ? S 14:00 0:00
/usr/local/bin/mimedefang -P /var/spool/MIMEDefang/mimedefang.pid -m
/var/spool/MIMEDefang/mimedefang-multiplexor.sock -R 1 -z
/var/spool/MIMEDefang -U defang -s -t -p
/var/spool/MIMEDefang/mimedefang.sock -x CanIt (www . roaringpenguin . com)
|
Информация о работе CanIt заносится в файлы журналов. Успехов!
- Сайт проекта Roaring Penguin CanIt – http://www.roaring penguin.com.
- Сайт проекта MIMEDefang – http://www.mimedefang.org.