Борьба со спамом на Linux машине

  Автор: © Suresh Ramasubramanian
Перевод: © Иван Песин.


 

Сокращения и аббревиатуры в статье:

  • FAQ - Frequently asked question - Часто задаваемые вопросы
  • ISP - Internet Service Provider - Провайдер доступа в сеть Internet
  • MTA - Mail Transfer Agent - Почтовый агент

Если у вас имеется адрес электронной почты, вас, возможно, беспокоит получение почты, которая вам не нужна - незатребованная почта (или "спам"). Что же такое спам? В "настоящем" (невиртуальном) мире, спамом называется сорт мяса, подаваемого к ланчу, производства Hormel Corp (у них также есть сайт http://www.spam.com). Спам в сети - это незатребованная, нежелательная почта, часто содержащая коммерческие предложения. Большинство спама, который вы получаете - это так называемый UC/BE спам (Unsolicited Commercial and/or Bulk E-Mail) - нежелательная коммерческая и/или массовая электронная почта.

В случае, если у вас linux (либо *nix) машина, имеется набор мощных утилит, которые могут остановить весь этот спам, заваливающий ваш почтовый ящик. Эти утилиты становятся еще более полезными, если у вас работает почтовый сервер и есть желание спасти своих пользователей от назойливой и ненужной почты (спама).

Три основных правила борьбы со спамом :

  • Профилактика лучше лечения. Защити себя против спама.
  • Фильтровать спам до того, как он попадет в ваш почтовый ящик
  • Подать жалобу ISP спамеров и добиться их блокировки.

Профилактика лучше лечения. Защити себя против спама.

Защитите себя, и не дайте спамерам получить ваш адрес. Не открывайте ваш основной e-mail адрес там, где его могут получить спамеры и добавить его в списки. Это включает в себя такие места, как /., usenet, списки почтовых рассылок, доски сообщений - короче говоря, всюду в online. Вместо этого следуйте одному из следующих шагов:

1. Используйте "одноразовый" адрес (скажем, abcde@yahoo.com) при отправке корреспонденции. Если окажется, что на этот адрес идет спам, вы можете его просто выбросить и перейти на другой адрес. Чтобы быть в безопасности, когда работаете в онлайне, изменяйте ваш адрес , используя спам-блокировку, примерно так: abcde@yahoo.com.Spammers.Suck. Очевидно, спамеры (которые используют роботов, выискивающих по интернету почтовые адреса) не смогут присылать вам почту.

2. Если у вас собственный домен, используйте "истекающий" почтовый адрес - адреса, которые будут допустимыми в течение некоторого времени [недели|месяца|года], а после - прекратят своё существование. Адрес может быть чем-то вроде me-mar31-apr31@mydomain.com. В случае отсутствия собственного домена, что ж, используйте тогда me-mar31-april31@yahoo.com :)

3. Оба эти подхода имеют существенный недостаток: вы должны постоянно менять свой e-mail адрес - чаще, чем ваша девушка меняет свою прическу! :) Если ваш ISP использует sendmail, у вас есть еще один вариант - так называемые "плюс-адреса".

Плюс-адреса доступны в последних версиях sendmail (начиная с 8.8). Просто добавьте знак "+" и любую строку до знака "@" - почта и дальше будет верно доставляться. Например, "me+foo_bar@myisp.com" будет приходить на адрес "me" - sendmail проигнорирует все после знака плюс. За (немного устаревшими) FAQ о том, как" обеспечить "плюс-адресацию" в различных MTA (и как их использовать в различных почтовых клиентах), обратитесь по адресу http://www.faqs.org/faqs/mail/addressing/. (Обратите внимание, что некоторые MTA используют вместо знака "+" знак "-". Мы будем и дальше называть их "плюс-адресами", хотя, возможно, надо было бы их называть "минус-адресами" ) .

Обязательное замечание: перед тем, как начать использовать плюс-адреса, пошлите почту самому себе, дабы увериться в том, что почта доходит до вас.

Плюс-адреса еще полезны тем, что помогают обнаружить, где спамер получил ваш адрес. Для примера, если вы хотите подписаться на рассылки Linux India Help, подпишитесь как "you+lih@yourdomain.com" (и убедитесь, что ваш почтовый клиент настроен при отсылке в Linux India Help использовать необходимую сущность). PINE и Mutt позволяют использовать разные сущности при работе с почтой (роли в PINE и папки в mutt). Другое достоинство плюс-адресов заключается в том, что если вы начинаете получать большое количество спама, вы можете просто отправить всю почту, приходящую на этот адрес, к Dave Null (или /dev/null).

Обратитесь к Приложению #1 ниже, за информацией о настройке плюс-адресов в pine 4.x и Mutt.

II. Фильтровать спам до того, как он попадет в ваш почтовый ящик

Вы можете это сделать на уровне MTA с помощью фильтров Procmail. Если ваш удаленный почтовый ящик, дает вам права для доступа к нему через командный процессор unix, запускайте фильтры там, а не на вашем компьютере. Правда, для конфигурации на уровне MTA, вы должны иметь права root :)

Фильтр Procmail

Некоторые средства procmail доступны вам для отслеживания и уничтожения (или даже жалобы) большей части получаемого вами спама. Наиболее популярным является Spambouncer от Кэтрин Хамптон (Catherine Hampton). Доступна для свободной загрузки с http://www.spambouncer.org. Другой замечательный проект с аналогичными функциями поддерживается Concordia University, адрес -- http://alcor.concordia.ca/topics/email/auto/procmail/spam/ . Вы, так же, можете посмотреть SpamDunk от Уолта Днеса (Walt Dnes).

Фильтрация на уровне MTA (Sendmail)

Так как большинство Линуксов подразумевают почтовую систему sendmail, я ее рассмотрю более детально. Sendmail 8.8.7 (который поставляется с Redhat 5.1) и выше имеют спам-блокирующие механизмы, которые позволяют отталкивать почту, приходящую с указанных доменов и доменов, указанных в списках blackhole (черных дыр) MAPS RBL и других списках blackhole. В любом случае, установите себе последнюю версию sendmail (в настоящее время 8.11.3, или беты 8.12).

Компиляция sendmail - неплохая идея (к тому же достаточно простая - детальные инструкции даны в файле INSTALL). Либо же можно взять уже скомпонованные архивы в том формате, который вам нужен (rpm, deb и т. п.).

Sendmail позволяет отталкивать SMTP соединение от доменов / адресов, указанных в базе знаний - обратитесь к /etc/mail/access (и /etc/mail/access.db, который можно построить, используя команду makemap hash access.db < access).

/etc/mail/access может содержать адреса e-mail, целые домены и даже конкретные ip адреса / блоки ip адресов.

spammer@yahoo.com		550 Дядя, ты не туда попал
spammer.com				550 Пшел вон!
192.168.212				REJECT
будет отталкивать smtp соединения с адреса spammer@yahoo.com, любого пользователя из домена spammer.com (или хоста из домена spammer.com), и любого хоста из блока 192.168.212.*. За дальнейшими (очень обстоятельными) подробностями, обратитесь на страницу Клауса Эссмана http://www.sendmail.org/~ca/email/ (да и FAQ на http://www.sendmail.org/faq/ вам не повредит).

Все это дело стоило бы протестировать, послав себе почту с необходимого хоста, а потом попытаться его получить с помощью fetchmail, указав при этом ключ -v. Это позволит вам увидеть подробности SMTP сессии - если при анализе поля FROM (от), sendmail увидит, что адрес находится в blackhole-списке, fetchmail удалит это сообение. Очевидное предупреждение: никогда не прописывайте reject напротив своего хоста и хостов с которых при помощи fetchmail вы получаете почту, так как вы потеряете всю почту.

Вы так же можете отталкивать почту со всех хостов, указанных в списках MAPS RBL и других, основанных на DNS blackhole-списках, разрешив опцию dnsbl в файле sendmail.mc. После этого не забудьте перестроить sendmail.cf. Для более подробной информации обратитесь на http://www.mail-abuse.org/rbl/usage.html.

Ах, да - убедитесь, что ваша система не доставляет почту полученную из источников отличных от вас. Это может использоваться спамерами для доставки их писем, забивая вашу почтовую очередь. В свою очередь это повлечет тысячи ответов от разъяренных получателей спама, а в крайнем случае - вас внесут в список RBL (если вы будете медлить). Информацию по этим вопросам вы можете найти по адресам http://www.sendmail.org/tips/relaying.html и http://www.orbs.org/otherresources.html .

Новые версии sendmail не делают ваш хост открытым доставщиком почты - если вы противитесь искушению настроить sendmail с помощью linuxconf (или большинством других конфигурационных утилит). Создайте файл sendmail.mc и перестройте файл sendmail.cf. Для примера посмотрите http://www.hserus.net/sendmail.html (часть моего Dialup HOWTO на http://www.hserus.net/dlhowto.html)

Приложение #2 описывает антиспамовые действия (включая закрытие открытой почтовой доставки) в других MTA.

III. Жалоба на спамеров, санкции против них.

Спам, будучи хитрой, скользкой и липкой штукой, рано или поздно попадёт в ваш почтовый ящик. Линукс система дает вам все возможности для отслеживания и блокировки спамера. Это основные утилиты *nix, такие как whois, nslookup, traceroute, и лучшая - dig. Лучшее же решение - потратить чуток времени (меньше чем пять минут) и послать несколько жалоб почтовому администратору домена, ISP спамера и вообще тем, кто может применить какие-либо санкции к спамеру. Вышеуказанные утилиты доступны с сайта http://www.samspade.org.

В Приложении #3 вы найдете ссылки по теме отслеживания спама.

Приложение 1

Сущности (роли) в PINE - в PINE 4.x и выше, нажмите S (Setup) и R (Roles). Добавляйте столько сущностей, сколько вам нужно, переключение между ними происходит при помощи символа # (решетка). Другой вариант: выбирать необходимую роль во время ответа или посылки письма.

Сущности в Mutt - используйте папки так, чтобы вся исходящая почта из определенной папки имела свой заголовок "From", установленный в me+tag@myisp.com

 
folder-hook linux   "my_hdr From: me+linux@myisp.com (My Linux Account)"
set envelope_from   

# устанавливает
# посылателя конверта, что и является тем, что проверяется
# программой, управляющей списком рассылки
# <= для mutt 1.2.x и новее

Procmail посылает в dev/null всю почту, приходящую на указанный адрес:

# Если
почта прислана на you+spam_string@yourisp.com выкинуть ее
:0:
*^TO_ you+spam_string@yourisp.com
/dev/null 

Приложение 2

QMail: Обратитесь на http://www.summersault.com/chris/techno/qmail/qmail-antispam.html за информацией об антиспамовых средствах в qmail (некоторыми из них). Другие MTA: Debian поставляется с Exim. Существуют и другие MTAs для *nix. Получить обширный HOWTO можно на сайте http://www.mail-abuse.org/tsi/ar-fix.html (и сайтах соответствующих MTA).

Приложение 3

Тематические ссылки:

Suresh Ramasubramanian

Suresh является президентом индийского отделения CAUCE, международной организации по борьбе со спамом. Он - вебмастер хоста KCircle, популярнейшего (в мировом масштабе) ресурса, посвященного тестам и различным каверзным вопросам/загадкам.

 


Copyright © 2001, Suresh Ramasubramanian.
Copying license http://www.linuxgazette.com/copying.html
Published in Issue 66 of Linux Gazette, May 2001

Вернуться на главную страницу