Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #51, ФЕВРАЛЬ 2005 г.

Неприступный почтовик

Антон Карпов, toxa@cterra.ru

Спецвыпуск: Хакер, номер #051, стр. 051-036-4


# vi qmail-pop3d/run

#!/bin/sh

exec 2%26gt;%261

exec softlimit -m 5000000000 tcpserver -RHD -x /var/qmail/tcp.smtp.cdb 0 110 \ /var/qmail/bin/qmail-popup mail.myserver.ru /usr/local/bin/checkpassword \

/var/qmail/bin/qmail-pop3d Maildir

# vi qmail-pop3ds/run

#!/bin/sh

exec 2%26gt;%261

exec softlimit -m 5000000000 tcpserver -RHD -s -n /etc/ssl/certs/mail.crt -x \ /var/qmail/tcp.smtp.cdb 0 995 /var/qmail/bin/qmail-popup mail.myserver.ru \ /usr/local/bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir

#vi qmail-smtpd/run

#!/bin/sh

exec 2%26gt;%261

exec envuidgid qmaild softlimit -d 30000000 tcpserver -x /var/qmail/tcp.smtp.cdb \

-p -DRHl mail.myserver.ru 0.0.0.0 25 /var/qmail/bin/qmail-smtpd \

mail.myserver.ru /usr/local/bin/checkpassword /usr/bin/true 2%26gt;%261

# vi qmail-smtpds/run

#!/bin/sh

exec 2%26gt;%261

exec envuidgid qmaild softlimit -m 30000000 tcpserver -n /etc/ssl/certs/mail.crt \

-x /var/qmail/tcp.smtp.cdb -s -p -DRHl mail.myserver.ru 0.0.0.0 465 \

/var/qmail/bin/qmail-smtpd mail.myserver.ru /usr/local/bin/checkpassword /usr/bin/true 2%26gt;%261

# vi qmail-send/run

#!/bin/sh

exec /var/qmail/rc

Как видно, цель этих скриптов - установить переменные окружения и запустить tcpserver, который, в свою очередь, запускает соответствующий бинарник qmail-* c аргументами. В случае использования SSL мы указали путь к сертификату, в скриптах запуска smtpd/smtpds прописали checkpassword - это и есть поддержка smth auth в qmail. Заметь, что tcpserver также контролирует доступ согласно /var/qmail/tcp.smtp.cdb. Займемся этим файлом позже.

Спаму и вирусам - бой!

Без антиспам-системы сегодня не обходится ни один приличный почтовик. То же самое можно сказать и об антивирусном контроле проходящей через сервер корреспонденции. Потому мы призовем на помощь лучшие силы OpenSource в этой области - SpamAssassin и ClamAV AntiVirus.

Существует два принципиально разных подхода к фильтрации спама: так называемые server side и client side. Фильтрация на стороне сервера направлена на то, чтобы просто не принимать соединения от машин, которые рассылают спам. Собственно, она и основывается на технологиях определения "доверия" удаленным серверам, таким как Greylisting и RBL Checking (Blacklist checking). Само же письмо при этом, разумеется, никоим образом не затрагивается. Фильтрация на стороне клиента основана на определении вероятности того, что полученное письмо является спамом. Для этого применяются сложные статистические, лингвистические и эмпирические тесты, например, Bayes analysis.

Задача сервера - проанализировать и пометить проверенное письмо как "спам" или "не спам" (например, добавить в заголовок письма слово SPAM). Клиент все равно получит это сообщение, однако он вполне может настроить фильтрацию на своем почтовом клиенте и, например, складывать спам в trash не читая его. Или спам может просто убиваться на сервере по таким же признакам. У обоих методов есть свои преимущества и недостатки. В первом случае можно потерять важные сообщения при ложном срабатывании, во втором - придется принимать спам и хранить его на сервере, что в большой сети (с учетом того, что доля спама в наши дни в интернете достигает 80%) может оказаться критической. Плюс ко всему настойка анализатора на отлов всего спама и отсутствие ложных срабатываний требует времени. Как всегда, выход - золотая середина. Пожалуй, самый эффективный метод на сегодня - комбинация Greylisting и байесовской фильтрации.

Назад на стр. 051-036-3  Содержание  Вперед на стр. 051-036-5