Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #70, ОКТЯБРЬ 2004 г.

Диалап под крылом пингвина

j1m (j1m@list.ru)

Хакер, номер #070, стр. 070-110-2


uptest=none;

# Предположить, что сервер доступен

preset=on

}

Остальные записи в этом файле можно оставить без изменений. После окончания настройки сделаем так, чтобы все DNS-запросы направлялись на наш кэширующий pdnsd:

# echo "nameserver 127.0.0.1" > /etc/resolv.conf

Заведи почтового робота

Для получения почты с удаленного сервера будем использовать очень мощную и удобную программу fetchmail. Единственное ее предназначение - подключаться к почтовому серверу по протоколу POP3 или IMAP и забирать почту. В нашем случае fetchmail будет передавать почту procmail'у. Для настройки fetchmail'а в интерактивном режиме предназначен fetchmailconf. Настоящим юниксоидам и тем, у кого не установлены python и tcl/tk, такой способ не подходит, поэтому сделаем все ручками. Предположим, что ты держишь ящик на mail.ru, тогда конфиг будет выглядеть примерно так:

$ vi ~/.fetchmailrc

# Пишем логи

set logfile ~/logs/fetchmail.log

# Работа в режиме демона, забираем почту каждые 5 минут

set daemon 300

# Адрес почтового сервера и используемый протокол

poll pop.mail.ru proto pop3

# Имя пользователя и пароль

user "name" with pass "secret"

# Передаем полученную почту procmail'у

mda "/usr/bin/procmail -d %T"

# Забирать всю почту с сервера

fetchall

Далее выставляем корректные права доступа к нашему конфигу:

$ chmod 600 ~/.fetchmailrc

Чтобы не выполнять команду fetchmail самостоятельно при каждой загрузке, следует прописать ее в один из стартовых скриптов твоей системы, например /etc/rc.local. Fetchmail может работать с несколькими серверами, последовательно забирая почту с каждого из них.

Фильтруй базар!

Как я уже говорил, fetchmail будет передавать полученную почту procmail'у. Procmail, в свою очередь, раскидает сообщения по разным ящикам в зависимости от некоторого условия. Для отлова спама воспользуемся мощным спам-фильтром spamassassin, благо прикрутить его к procmail достаточно легко. Все необходимые пакеты есть в любом дистрибутиве. На случай, если ты любитель собирать все из исходников, сообщу, что spamassassin написан на perl'е и собирать его следует так:

# perl Makefile.PL

# make

# make install

Сразу после установки занеси все имеющиеся у тебя письма в белый лист (так spamassassin будет меньше ошибаться):

$ cat ~/Mail/* > sa-learn --ham

Как только все пакеты будут собраны и установлены, создавай ~/.procmailrc и заноси в него свои правила. Чтобы ты не запутался, вот пример:

$ vi ~/.procmailrc

# Каталог для почтовых ящиков

MAILDIR=$HOME/Mail

# Дефолтный ящик. Сюда будет складываться почта, не попадающая под правила

DEFAULT=$MAILDIR/inbox

# Включим логирование

LOGFILE=$HOME/logs/procmail.log

# Путь до formail, используется для изменения почтовых заголовков

FORMAIL=/usr/bin/formail

### Прим. ред.

# Во избежание потери важных писем в течение тестирования правил фильтрации процмейла настоятельно рекомендую дублировать всю входящую почту в ~/Mail/backup):

:0 c

backup

### Удаляем повторяющиеся письма

:0 Whc: .msgid.lock

| $FORMAIL -D 8192 .msgid.cache

:0 a

/dev/null

### Фильтруем спам

Назад на стр. 070-110-1  Содержание  Вперед на стр. 070-110-3