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

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

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

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


# cd /usr/ports/mail/ripmime

# make install clean

# wget http://www.inter7.com/simscan/simscan-1.0.8.tar.gz

# tar xzf simscan-1.0.8.tar.gz %26%26 cd simscan-1.0.8

# ./configure --enable-spam=y --enable-received=y --enable-ripmime --enable-spamassassin-path=/usr/local/bin/spamassassin --enable-clamavdb-path=/usr/local/share/clamav --enable-sigtool-path=/usr/local/bin/sigtool --enable-attach=y --enable-spam-passthru=y --enable-quarantinedir=/var/qmail/simscan/quarantined

# make %26%26 make install

Подробнее про все опции читай в README. Принцип работы simscan заключается в подмене оригинальной программы процессинга почтовой очереди /var/qmail/bin/qmail-queue на /var/mail/bin/simscan, которая умеет обращаться к spamd/clamd, а в остальном ведет себя так же, как и qmail-queue. Вот тут мы и вернемся к файлу /var/qmail/tcp.smtp.cdb. Создай в /var/qmail файл следующего содержания:

127.0.0.1:allow,RELAYCLIENT=""

192.168.0.:allow,RELAYCLIENT="",QMAILQUEUE="/var/qmail/bin/simscan"

:allow,QMAILQUEUE="/var/qmail/bin/simscan"

Затем преврати его в cdb:

# tcprules tcp.smtp.cdb tcp.smtp.cdb.tmp %26lt; tcp.smtp

В этом файле устанавливаем переменные окружения для хостов. RELAYCLIENT позволяет указанному хосту использовать qmail для пересылки почты хостам, не указанным в rcpthosts, то есть использовать сервер как relay. Мы разрешили это локальному хосту и нашей подсети 192.168.0.0/24. Очевидно, что все остальные будут уметь доставлять почту только тем хостам, которые обслуживает qmail (в нашем случае это mail.mydomain.ru). Таким образом, promisc relay исключен. Как же клиенты будут отправлять почту, например, из дома? Для этого мы и включили smtp-авторизацию, а упомянутый выше checkpassword именно тем и занимается, что после проверки пароля выставляет для сессии переменную RELAYCLIENT, позволяя пересылать почту. Также для всех хостов, кроме локального, мы переписали переменную QMAILQUEUE, чтобы она указывала на simscan. Вот теперь запускаем все четыре экземпляра qmail:

# ln -s /var/qmail/runscripts/qmail-pop3d /var/service

# ln -s /var/qmail/runscripts/qmail-pop3ds /var/service

# ln -s /var/qmail/runscripts/qmail-smtpd /var/service

# ln -s /var/qmail/runscripts/qmail-smtpds /var/service

# ln -s /var/qmail/runscripts/qmail-send /var/service

Проверяем работу системы, посылая почту из локальной сети и из интернета, убеждаемся, что без smth auth снаружи не пускает, смотрим логи clamd/spamd. Если все работает, радуемся и запускаем систему в эксплуатацию. Если нет - идем на www.google.com и учимся пользоваться поиском :).

Мнение эксперта

Андрей Матвеев, редактор рубрик "Юниксоид" журнала "Хакер" (andrushock@real.xakep.ru)

В наши дни все больше внимания уделяют обеспечению комплексной безопасности систем электронной почты. Различные организации создают целые проекты по поддержанию так называемых "черных" списков, в которые занесены адреса отправителей, занимающихся массовой рассылкой информации рекламного характера. Разработчики программного обеспечения постоянно совершенствуют спам-фильтры, выпускают новые версии почтовых пользовательских агентов (MUA) и серверов SMTP/POP3/IMAP4, обладающих встроенной поддержкой аутентификации клиентов и шифрования передаваемых данных. Изо дня в день антивирусные компании трудятся не покладая рук над обновлениями к своим продуктам. Но, как показывает практика, велика вероятность того, что мы можем стать заложниками собственных средств защиты, так как добрый процент корреспонденции будет просто застревать в нашем же каскаде RBL-листов, почтовых фильтров, хэшированных базах доступа и, соответственно, не доходить до получателя. Поэтому тут главное не переборщить с защитой и выработать грамотную политику (к примеру, "что делать со спамом?" - удалять немедленно или доставлять клиенту с модифицированной темой письма).

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