автор Katja и Guido Socher <katja(at)linuxfocus.org, guido(at)linuxfocus.org>
About the authors:
Катя - немецкий редактор LinuxFocus. Ей нравятся Тукс (Tux), кино и фотография и море.
Ее домашнюю страничку можно найти по адресу
here. Гвидо - давний фанат Linux. Он любит Linux потому, что Linux дает свободу выбора.
Вы можете выбирать решения в соответствии со своими потребностями.
Перевод на Русский:
Eugene S. Saenko <caspar(at)pisem.net>
Содержание:
|
Борьба со спамом
Резюме:
Спам в почте!? Мусор в электронной почте растет с угрожающей скоростью и это важная
проблема почти для каждого.
Здесь мы объясним, что делать с этой напастью.
_________________ _________________ _________________
Что такое спам?
Спам носит разные имена. Кое-кто называет его UCE (Unsolicited commercial
email - нежелательная коммерческая электронная почта), другие - просто нежелательной
электронной почтой, но все эти имена не передают сущности спама. Если Вы (еще) не
получаете спама, то посмотрите на
эту коллекцию спама (spam_samples.html). Это подборка спама, накопленная всего за
несколько дней. Почитайте эти письма и Вы поймете, что они не имеют никакого отношения ни
к коммерции ни к бизнесу. Спамеры - преступники. Никакой серьезный бизнесмен не станет
докучать миллионам людей предложениями найти "идиотов", которых можно надуть.
Люди, которые не часто пользуются Интернетом, ошибочно полагают, что такого рода
предложения можно сравнить с информацией, которую они время от времени получают из местных
магазинов. Продукты, продаваемые с помощью спама часто нелегальны, или вообще не являются
продуктами. Это - уловки для выманивания у Вас денег.
Сколько?
Спамеры добывают Ваши адреса e-mail с web-страниц, новостных групп, доменных записей
(если Вы имеете собственный домен). Кое-кто из них использует для извлечения адресов
роботы, записывает адреса на лазерные диски, а затем продает их по дешевке другим
спамерам. Если Вы сегодня поместите на домашней страничке свой адрес e-mail простым
текстом, так, что программа сможет извлечь его, через несколько месяцев Вы получите
большую проблему, с которой не сможете справиться. Проблема будет возрастать с каждым
днем!
В 1998 году процент спама в почте LinuxFocus был меньше 10%. А уже в ноябре 2002
года статистика была такой:
Наш сервер получает около 4075 писем в неделю. Из них 3273 это спам!
=> 80% всей почты - это СПАМ.
То есть 80% мощности почтового сервера и 80% пропускной способности сети занято тем, что
никому не нужно.
Из этих 3273 сорных писем около 40% приходит из Америки (в основном из Канады, США,
Мексики) и около 30% из Азии (в основном из Кореи, Китая, Тайваня).
Что делать со спамом
Если Вы посмотрите на
образцы спама,
Вы заметите, что почти все из них предлагают возможность удалить себя из списка.
Не делайте этого! Вы имеете дело с преступниками! Никто из спамеров ничего не выиграет
от механизма удаления из списка. Для чего же они дают такую возможность? Ответ прост.
Это производит гораздо лучшее впечатление на читателя, а, кроме того, это - прекрасный
статистический инструмент. Спамер получает немедленное подтверждение, что его послание
получено. Другими словами
Вы подтверждаете получение письма!
Кроме того, с идеей удаления из списка связана техническая проблема. LinuxFocus -
не очень большой сайт, но нам бы потребовался 1 человек на полный рабочий день, чтобы
производить 3273 отписки в неделю, при условии, что этот человек производит
каждую минуту одну отмену подписки. Все спамеры используют разные методы и это было бы
идиотским занятием, не приводящим ни к какому результату. Удаление из списка - это
бессмыслица, приносящая пользу только спамерам.
Единственное правильное решение: удалить письмо.
Программы для борьбы со спамом
Есть много разных способов отфильтровать спам и это хорошо, поскольку преодоление
этих способов создает спамерам дополнительные трудности. Это - своеобразная гонка
вооружений. Инструменты для отфильтровывания спама становятся все более изощренными, но
спамеры тоже совершенствуют свои методы.
Существуют два типа фильтров:
- Проверки, встроенные непосредственно в MTA (Message Transfer
Agent=почтовый сервер). Здесь обычно есть возможность отбросить письмо. То есть письмо
даже не записывается. Как только в процессе приема письма обнаруживается, что это -
спам, отправителю высылается код ошибки. Типичные инструменты этого рода - это
блок-листы на основе IP и проверка заголовков писем.
- Фильтрация после приема почты. В этом случае письма благополучно доставляются,
а отфильтровываются позже.
Теперь подробнее рассмотрим различные способы. Каждый из них имеет свои достоинства
и недостатки. Лучшее решение для исключения всего спама - использовать разные
инструменты.
Отбрасывание писем непосредственно в MTA
Если Вы отбрасываете письмо непосредственно на почтовом сервере во время приема почты,
спамер может получить код ошибки, который даст ему знать, что этот адрес не работает.
Если спамер - один из "изготовителей CD", он может удалить этот адрес. Это может
уменьшить загрузку канала, поскольку Вам не придется принимать сообщение целиком. Можно
выслать код ошибки сразу, как только Вы обнаружили, что это спам.
Для этого нужен хороший гибкий MTA. К сожалению, два наиболее распространенных сервера
-- Sendmail и тот, который от Билла Гейтса (Bill Gates) не очень подходят для этой цели.
Две очень хорошие альтернативы - это
Postfix и Exim.
Если Вы не можете заменить свой сервер, можно установить перед Вашим сервером smtp
proxy в качестве почтового экрана (smtp = Simple Mail Transfer Protocol, почтовый
протокол Internet).
Теперь рассмотрим, как работают некоторые общие приемы фильтрации. Мы не будем описывать,
как именно их настроить на каждом MTA. Это бы сделало статью слишком длинной. Вместо
этого мы посоветуем почитать документацию, которая поставляется с установленным у Вас
MTA. Posfix и Exim хорошо документированы.
- Блоклисты реального времени:
Это списки на основе DNS. Вы проверяете IP адрес почтового сервера, который пытается
переслать почту на Ваш сервер по черным спискам известных спамеров. Такие списки
имеются на www.spamhaus.org и ordb.org. Имеется, также, инструмент под названием blq
(см. ссылки) для запроса таких списков вручную и проверки, имеется данный IP в этих
списках. Вам не стоит быть слишком оптимистичным. Следует тщательно выбирать списки,
поскольку среди них встречаются такие, которые исключают целые диапазоны IP адресов
только потому, что один спамер воспользовался dialup подключением к этому ISP. Мы,
в частности, для отсеивания почты с плохо администрируемых серверов используем
ordb.org.
Опыт показывает, что около 1%-3% сорных писем блокируется этими списками.
- 8-битовые символы в строке темы:
более 30% спама в наши дни приходит из Китая, Тайваня и других Азиатских стран. Если
Вы не можете читать по-китайски, можете отбрасывать письма, содержащие много 8-битовых
(не ASCII) символов в строке темы. (А как насчет русского языка? -- прим.
перев.)
Некоторые MTA имеют для этого специальную
конфигурацию, но Вы, также, можете использовать регулярные выражения для темы:
/^Subject:.*[^ -~][^ -~][^ -~][^ -~]/
При этом будут отброшены письма, содержащие более четырех последовательно
расположенных символов ASCII, лежащих вне диапазона от пробела до тильды. Если Вы не
знакомы с регулярными выражениями, изучите их.
(см. LinuxFocus article 53), они Вам
потребуются. Как exim так и postfix можно скомпилировать с поддержкой регулярных
выражений perl (см. www.pcre.org). Perl имеет самый мощный механизм регулярных
выражений.
Этот метод очень неплох и он блокирует 20-30% спама.
- Списки адресов "From (От)" известных спамеров:
Забудьте о них. Это работало до 1997 года. Сегодня спамеры используют фальшивые адреса
или адреса посторонних людей.
- Отбрасывать письма, адрес отправителя которых не соответствует FQDN (Fully
Qualified Domain Name (полностью определенное доменное имя)) или если домен отправителя
неизвестен:
Некоторые спамеры используют несуществующие адреса в поле "From (От)". Невозможно
проверить весь адрес, но Вы можете проверить часть hostname/domain, запросив DNS
server.
Это задержит около 10-15% спама, да эти письма и в любом случае нежелательны, поскольку
Вы не смогли бы на них ответить, даже если бы они не были спамом.
- IP адрес не имеет записи PTR в DNS:
Это - проверка, может ли IP адрес, из которого Вы получили письмо быть преобразован в
доменное имя. Это очень мощный инструмент, отсеивающий много почты. Мы его не
рекомендуем! Эта проверка определяет не качество администрирования почтового
сервера, а качество основного провайдера. ISP покупают IP адреса
у основных провайдеров (backbone providers), а те, в свою очередь, у более крупных
провайдеров. Все участвующие в этом провайдеры должны конфигурировать свои DNS
правильно, чтобы вся цепочка работала. Если кто-то в промежуточном звене допустит
ошибку или не уделит достаточно внимания конфигурации, эта проверка не сработает. Это
ничего не говорит о конкретном почтовом сервере на конце цепочки.
- Требование команды HELO:
Когда два MTA (почтовых сервера) общаются друг с другом (через smtp), они сначала
представляются (например, mail.linuxfocus.org). Некоторые программы для рассылки
спама этого не делают. Это отсеивает 1-5% спама.
- Требование команды HELO и отбрасывание неизвестных серверов:
Вы берете имя из команды HELO и проверяете по DNS, действительно ли это
зарегистрированный сервер. Это очень хорошая проверка, поскольку спамеры, которые
часто используют диалап-соединения, обычно не конфигурируют для них правильных
записей DNS.
Это блокирует 70-80% спама, но отбрасывает, также, нормальную почту, приходящую с
сайтов, на которых имеется несколько почтовых серверов и нерадивый системный
администратор забывает внести записи обо всех серверах в DNS.
Некоторые MTA используют даже больше проверок, но рассмотренные выше обычно имеются
на хороших MTA. Преимущество этих проверок то, что они не слишком загружают процессор.
Для их внедрения Вам не придется обновлять оборудование своего почтового сервера.
Фильтрация уже полученной почты
Следующие способы обычно применяются ко всей почте, так, что почтовый сервер,
пославший письмо не заметит, что письмо не доставлено. Это значит, что легальный
корреспондент не получит уведомления о невозможности доставки. Письмо просто исчезнет.
Сказанное не вполне верно, поскольку все зависит от фильтрующих возможностей почтового
сервера. Exim очень гибок и позволяет Вам написать свои правила фильтрации писем.
-
SpamAssassin
(http://spamassassin.org/):
Это - фильтр спама, написанный на perl. В нем используются тщательно выверенные,
написанные вручную правила, присваивающие определенное количество баллов типичным
для спама фразам, таким как "strong by (исключительно...)", "you receive this mail
because (Вы получили это письмо потому, что...)", "Viagra", "limited time offer
(предложение с ограниченным сроком)".... Если письмо набирает больше определенного
количества баллов, оно считается спамом. Проблема с этим фильтром заключается в том,
что что он сильно нагружает процессор и память. Если Вашему почтовому серверу 2-3
года, Вам, видимо, придется обновить его. Мы не рекомендуем Вам использовать этот
фильтр непосредственно на почтовом сервере. Spamassassin поставляется с программой
spamd (spamd=spam daemon + spamc=клиент для подключения к демону) уменьшающей время
запуска программы spamassassin и уменьшающей загрузку процессора, но, все же, это
очень ресурсоемкое приложение.
Для фильтрации почты Вам придется создать файл .procmailrc (и .forward),
вроде этого:
# Строка с условием определяет что только письма меньше 50 kB
# (50 * 1024 = 56000 байт) обрабатываются SpamAssassin. Большинство сорных писем
# не больше нескольких k а работа с большими письмами может привести к краху
# SpamAssassin. Если Вы хотите использовать SpamAssassin без программ
# spamc/spamd то замените spamc на spamassassin.
:0fW:
* < 56000
| /usr/bin/spamc
# Вся почта, распознанная как спам (т.е. с количеством баллов больше порога)
# перемещается в файл "spam-mail" (замените на /dev/null если хотите
# отбрасывать весь спам).
:0:
* ^X-Spam-Status: Yes
spam-mail
После простой настройки spamassassin будет отфильтровывать более 90% спама.
-
procmail (http://www.procmail.org):
Procmail - это, собственно, не фильтр спама, но его можно использовать, чтобы
написать собственный фильтр. Кроме того, procmail очень мало нагружает систему,
если ограничиться разумным количеством правил (не более 10). Чтобы воспользоваться
этим фильтром, Вы создаете в домашнем каталоге файл .forward и записываете в него
такую строчку:
"| exec /usr/bin/procmail"
Иногда рекомендуют использовать
"|IFS=' ' && exec /usr/bin/procmail"
но это создает проблемы с дополнительным процессом, который будучи созданным,
больше не подчиняется почтовому серверу. На защищенных почтовых серверах, таких, как
postfix или exim, проблем с приведенным выше файлом .forward не возникает.
Procmail особенно полезен в ситуациях, когда Вы обычно переписываетесь с
ограниченным кругом людей, например, в компании, где большинство почты приходит
от Ваших коллег и нескольких друзей. Вот пример для
"mycompany.com":
# .procmailrc file.
# поиск друзей в заголовках:
:0 H:
* ^From.*(joe|paul|dina)
/var/spool/mail/guido
# поиск в заголовках писем которые происходят не
# из mycompany.com и запись их в maybespam
:0 H:
* !^From.*(@[^\@]*mycompany\.com)
/home/guido/maybespam
# явное правило по умолчанию
:0:
/var/spool/mail/guido
Таким образом гораздо легче сделать так, что Вы не найдете этот мерзкий
спам среди своей обычной почты.
Procmail очень гибок и его можно использовать и для других целей. Вот еще пример:
Procmail поставляется с программой formail - "reply to sender (ответ отправителю)".
Она может использоваться, например, чтобы переслать письмо обратно отправителю.
Настоящее бедствие - письма со вложенными документами word. Если Вы - разработчик
Linux, использующий e-mail для обмена информацией о Ваших проектах или о Linux
вообще, Вам, видимо, не интересны люди, которые записывают текст в документ word и
прикрепляют его к письму. Этим путем легко могут распространяться вирусы. Обычно эти
вирусы не поражают Linux, но это плохая идея, использовать MS-word для отправки
текста другим людям, поскольку при этом для прочтения текста на принимающей стороне
требуется наличие MS-word той же версии. Имеются открытые форматы, такие как RTF
или HTML, которые не распространяют вирусов и не имеют таких проблем, связанных
с номером версии.
# Promail скрипт для отбрасывания документов word.
# Отбрасывает письмо не отвечая на
# сообщения об ошибке "From MAILER-DAEMON"
# Если Вы используете ":0 Bc" вместо ":0 B" Вы все же будете получать письма
:0 H
* !^From.*DAEMON
{
# Письма с документами word содержат в теле
# примерно такой текст:
#------=_NextPart_000_000C_01C291BE.83569AE0
#Content-Type: application/msword;
# name="some file.doc"
#Content-Transfer-Encoding: base64
#Content-Disposition: attachment;
# filename="real file.doc"
:0 B
* ^Content-Type:.*msword
| (formail -r ; cat /home/guido/reject-text-msword ) | $SENDMAIL -t
}
# явное правило по умолчанию
:0:
/var/spool/mail/guido
Текстовый файл /home/guido/reject-text-msword должен содержать текст, объясняющий,
что документы msword могут распространять вирусы и выражающий отправителю просьбу
выслать документ, например, в формате RTF.
Как использовать procmail и что означают эти странные буквы в конфигурационном
файле очень хорошо объяснено в странице руководства "procmailrc".
- bogofilter
(
http://www.tuxedo.org/~esr/bogofilter/):
Bogofilter - это спам-фильтр Байеса (Bayesian). Он написан целиком на C и очень быстрый
(по сравнению с SpamAssassin). Фильтр Байеса - это статистический фильтр, который надо
сначала обучить тому, что есть спам, а что не спам. Вам потребуется около 100
тренировочных писем (отсортированных на спам и не спам), прежде чем фильтр начнет
эффективно работать с новыми письмами.
Bogofilter быстрый, но он работает не с первого момента, как SpamAssassin. Через
некоторое время он становится столь же эффективным, как и SpamAssassin и
отфильтровывает более 90% спама.
- razor
(http://razor.sf.net/):
Это распределенная система обнаружения спама. Контрольные суммы известного спама
хранятся в базе данных. При получении нового письма Вы можете вычислить его контрольную
сумму и сравнить ее с контрольными суммами в центральной базе данных. Если контрольная
сумма совпадет, можете отбросить письмо как спам. razor работает благодаря тому, что
специальные e-mail адреса распространены в Интернет с единственной целью - попасть в
списки адресов всех спамеров. На эти адреса приходит только спам и никакой нормальной
почты. Кроме того, люди, конечно, могут отправлять письма в razor для маркировки их как
спама. Очень хорошо, что письмо известно как спам, еще до того, как попадет в Ваш
почтовый ящик. Эта система отфильтровывает около 80% спама. razor имеет одно
преимущество по сравнению с другими способами фильтрации и последующей обработки: razor
почти не делает позитивных ошибок. Это означает: количество писем, не являющихся
спамом, которые razor объявляет спамом очень мало.
Существует множество других способов борьбы со спамом. Но мы считаем, что перечислили
самые важные.
Наилучшее решение - на первой стадии проверка на MTA, а на второй - уничтожение
оставшегося спама с помощью фильтра последующей обработки.
Письма HTML
Особенно опасен спам в виде писем в HTML формате.
Большинство спамеров использует "возможность отписаться" для проверки того, какое
количество их писем достигает цели. Письма в формате HTML предлагают гораздо лучшую
форму обратной связи: изображения. Этот способ можно сравнить со способом подсчета
количества посетителей на некоторых web-страницах. Спамер может точно узнать, когда и
как много его писем прочтено. Если Вы тщательно исследуете спам, то увидите, что
в некоторых случаях URL включенных изображений содержит порядковый номер: спамер
может видеть, кто именно и когда просматривает его послание. Немыслимая дыра в
безопасности.
Современная программа для чтения почты не должна показывать изображения, загружаемые
с внешнего URL. Но с новыми и безопасными программами для чтения HTML-почты
напряженка. Kmail и самая последняя версия почтового клиента mozilla дают возможность
запретить показ изображений с внешних источников. Большинство других программ генерируют
прекрасную статистику для спамера.
Какие имеются решения? Не используйте для чтения почты программы с возможностями html
или сначала загружайте почту, затем отключайтесь от сети и читайте почту.
Откуда приходит спам?
Никогда не доверяйте адресу отправителя в поле "From (От)" сорных писем! Это или
несуществующие пользователи или посторонниие люди. Очень редко в этом поле стоит
адрес спамера. Если Вы хотите выяснить откуда пришло письмо, надо посмотреть полный
заголовок:
...
Received: from msn.com (dsl-200-67-219-28.prodigy.net.mx [200.67.219.28])
by mailserver.of.your.isp (8.12.1) with SMTP id gB2BYuYs006793;
Mon, 2 Dec 2002 12:35:06 +0100 (MET)
Received: from unknown (HELO rly-xl05.dohuya.com) (120.210.149.87)
by symail.kustanai.co.kr with QMQP; Mon, 02 Dec 2002 04:34:43
Здесь неизвестный хост с IP адресом 120.210.149.87, называющий себя rly-xl05.dohuya.com
посылает письмо на symail.kustanai.co.kr. symail.kustanai.co.kr пересылает это письмо
дальше.
Спамер прячется за адресом 120.210.149.87. Вероятно это - динамический IP адрес
диалап-соединения.
Другими словами, полиция сможет найти этого человека, если обратится к владельцу
kustanai.co.kr и запросит log-файлы сервера и распечатку соединений местной
телефонной компании. У Вас же очень мало шансов выяснить, кто это такой.
Может также оказаться, что что первая часть фальшивая и спамер действительно скрывается
за dsl-200-67-219-28.prodigy.net.mx. Это очень вероятно, поскольку нет видимых причин,
для того, чтобы symail.kustanai.co.kr посылал почту на msn.com через dsl
диалап-соединение (dsl-200-67-219-28.prodigy.net.mx). mailserver.of.your.isp (имя
условное) - это сервер Вашего ISP (Internet Service Provider (Интернет-провайдер)). И
только начиная с этой строки поле "Received:" заслуживает доверия.
Найти спамера можно, но для этого в Вашем распоряжении должны быть международная разведка
и полиция, чтобы попасть на prodigy.net.mx.
Заключение
Если спам будет нарастать сегодняшними темпами, скоро по Интернет будет пересылаться
больше спама, чем настоящей электронной почты. Спам пересылается за счет получателя.
Для обслуживания спама может потребоваться расширение канала и обновление техники.
Во многих странах законы очень слабо защищают людей от преступных спамеров. Фактически,
в некоторых странах имеются законы, которые ограничивают только честных людей (Digital
rights management (Закон о цифровых правах) и т.п...) и помогают преступникам (например,
получать хорошую статистику о спаме).
Вступайте в Коалицию против UCE!
http://www.euro.cauce.org/en/ |
http://www.cauce.org/ |
Провайдеры Интернет должны следить за своими почтовыми системами. Доступ без авторизации
к почтовым серверам должен быть исключен. Количество писем, отправляемых в минуту одним
пользователем должно быть ограничено.
Ссылки
Страница отзывов
У каждой заметки есть страница отзывов. На этой странице вы можете оставить
свой комментарий или просмотреть комментарии других читателей :
2003-01-10, generated by lfparser version 2.31