diff -uNr spam_check-0.2.3/CHANGES spam_check-0.2.4/CHANGES --- spam_check-0.2.3/CHANGES Tue Jul 8 16:49:14 2003 +++ spam_check-0.2.4/CHANGES Fri Feb 13 15:57:27 2004 @@ -1,13 +1,29 @@ +Изменения между версиями 0.2.3 и 0.2.4 +-------------------------------------------- + +* Конфигурация по умолчанию приведена к виду оптимизированному для минимизации + ложных срабатываний и блокирования адресов без обратной DNS записи. + +* dsl_stoplist.txt приведен к общему виду и рекомендован к обязательному применению + с текущей конфигурацией по умолчанию. + +* Периодическая синхронизация хэша проверенных IP на диск, на случай экстренного + убивания процесса во время работы. + +* Более правильный вариант $cfg_blocklist_rebuild_cmd, заккоментирован из-за + необходимости изменения конфигурации MTA, хэш со списком блокировки теперь + называется block_list.db вместо block_list.txt.db + Изменения между версиями 0.2.2 и 0.2.3 -------------------------------------------- * Добавлен пример блокировки больших DSL сетей (dsl_stoplist.txt). * Отлажена работа с логами sendmail (раньше была гарантирована только работа - с postfix). Включение работы с sendmail через директиву "$cfg_log_format=1" + с postfix). Включение работы с sendmail через директиву $cfg_use_sendmail_log_format При использовании sendmail учет блокировок DNSBL системами не производится. - -* Изменено содержимое параметра конфигурации $cfg_maillog_disconnect_mask + Изменено содерхимое параметра конфигурации $cfg_sendmail_disconnect_mask, + для sendmail используется только эта строка. Изменения между версиями 0.2.1 и 0.2.2 -------------------------------------------- diff -uNr spam_check-0.2.3/TODO spam_check-0.2.4/TODO --- spam_check-0.2.3/TODO Sat Jun 21 19:04:36 2003 +++ spam_check-0.2.4/TODO Fri Feb 13 16:11:43 2004 @@ -1,2 +1 @@ -- утилита для работы с .db файлом, удаление IP, изменение веса и параметров. - +- утилита для работы с .db файлом, удаление IP|изменение веса и параметров. diff -uNr spam_check-0.2.3/VERSION spam_check-0.2.4/VERSION --- spam_check-0.2.3/VERSION Tue Jul 8 16:33:34 2003 +++ spam_check-0.2.4/VERSION Fri Feb 13 16:11:47 2004 @@ -1 +1 @@ -0.2.3 \ No newline at end of file +0.2.4 \ No newline at end of file diff -uNr spam_check-0.2.3/dsl_stoplist.txt spam_check-0.2.4/dsl_stoplist.txt --- spam_check-0.2.3/dsl_stoplist.txt Tue Jul 8 15:30:38 2003 +++ spam_check-0.2.4/dsl_stoplist.txt Fri Feb 13 15:45:00 2004 @@ -5,54 +5,13 @@ # reject_maps_rbl ############################################################################# -/dsl.*\.swbell\.net$/ 553 You have been identified as a spammer. Go Away. -/-[:digit:]+.atgi.net$/ 553 You have been identified as a spammer. Go Away. -/^adsl-.*\.bellsouth\.net$/ 553 You have been identified as a spammer. Go Away. -/\.adsl\.snet\.net$/ 553 You have been identified as a spammer. Go Away. -/[:digit:]+\.[:alpha:]\.rr\.com$/ 553 You have been identified as a spammer. Go Away. -/[:digit:]+\.subscriber\.vzavenue\.net$/ 553 You have been identified as a spammer. Go Away. -/[:digit:]+\.[:alpha:]+\.client2\.attbi\.com$/ 553 You have been identified as a spammer. Go Away. -/dsl.*\.pacbell\.net$/ 553 You have been identified as a spammer. Go Away. -/[:digit:]+[:alpha:]+[:digit:]+\.telia\.com$/ 553 You have been identified as a spammer. Go Away. -/[:alnum:]+\.[:alpha:]+\.verizon\.net$/ 553 You have been identified as a spammer. Go Away. -/\.ipt\.aol\.com$/ 553 You have been identified as a spammer. Go Away. -/\.in-addr\.btopenworld\.com$/ 553 You have been identified as a spammer. Go Away. -/\.cpe\.net\.cable\.rogers\.com$/ 553 You have been identified as a spammer. Go Away. -/\.adsl\.skynet\.be$/ 553 You have been identified as a spammer. Go Away. -/[:digit:]\.dsl-verizon\.net$/ 553 You have been identified as a spammer. Go Away. -/[:digit:]+\.atdn\.aol\.com$/ 553 You have been identified as a spammer. Go Away. -/[:digit:]+\.[:alpha:]+\.wanadoo\.fr$/ 553 You have been identified as a spammer. Go Away. -/[:digit:]+\.[:alpha:]+\.rr\.com$/ 553 You have been identified as a spammer. Go Away. -/[:digit:]+\.[:alpha:]+\.comcast\.net$/ 553 You have been identified as a spammer. Go Away. -/\.pool.*\.interbusiness\.it$/ 553 You have been identified as a spammer. Go Away. -/\.cablep\.bezeqint\.net$/ 553 You have been identified as a spammer. Go Away. -/[:digit:]\.[:alpha:]+\.bezeqint\.net$/ 553 You have been identified as a spammer. Go Away. -/[:alnum:]+\.[:alpha:]+\.telus\.net$/ 553 You have been identified as a spammer. Go Away. -/\.pth\.iprimus\.net\.au$/ 553 You have been identified as a spammer. Go Away. -/\.DSL\.surnet\.cl$/ 553 You have been identified as a spammer. Go Away. -/\.dialup\.citynet\.net$/ 553 You have been identified as a spammer. Go Away. -/\.nsw\.bigpond\.net\.au$/ 553 You have been identified as a spammer. Go Away. -/\.adsl\.terra\.cl$/ 553 You have been identified as a spammer. Go Away. -/\.dip\.t-dialin\.net$/ 553 You have been identified as a spammer. Go Away. -/\.pooles\.rima-tde\.net$/ 553 You have been identified as a spammer. Go Away. -/[:digit:]+\.[:alpha:]+\.shawcable\.net$/ 553 You have been identified as a spammer. Go Away. -/\.dyn\.optonline\.net$/ 553 You have been identified as a spammer. Go Away. -/\.lax\.centurytel\.net$/ 553 You have been identified as a spammer. Go Away. -/node.*\.a2000\.nl$/ 553 You have been identified as a spammer. Go Away. -/\.ip\.alltel\.net$/ 553 You have been identified as a spammer. Go Away. -/\.dial\.bluemarble\.net$/ 553 You have been identified as a spammer. Go Away. -/[:digit:]\.sasknet\.sk\.ca$/ 553 You have been identified as a spammer. Go Away. -/\.dsl\.pipex\.com$/ 553 You have been identified as a spammer. Go Away. -/[:digit:]+\.btcentralplus\.com$/ 553 You have been identified as a spammer. Go Away. -/[:digit:]+\.[:alpha:]+\.adelphia\.net$/ 553 You have been identified as a spammer. -/DSL.*\.netvision\.net\.il$/ 553 You have been identified as a spammer. -/[:digit:]+-[:digit:]+-[:digit:]+\.*\.chello\.se$/ 553 You have been identified as a spammer. -/[:digit:]+\.[:alpha:]+\.wideopenwest.com$/ 553 You have been identified as a spammer. -/[:digit:]+\.[:alpha:]+\.surfer\.at$/ 553 You have been identified as a spammer. -/cable\..*\.blueyonder\.co\.uk$/ 553 You have been identified as a spammer. -/host-[:digit:]+\.ardmore\.net$/ 553 You have been identified as a spammer. -/[:digit:]+\.[:alpha:]+\.everestkc\.net$/ 553 You have been identified as a spammer. -/[:digit:]+\.[:alpha:]+\.cox\.net$/ 553 You have been identified as a spammer. -/\.dial\.rol\.ru$/ 553 You have been identified as a spammer. -/dsl\.brasiltelecom\.net\.br$/ 553 You have been identified as a spammer. -/dsl\..*\.estpak\.ee$/ 553 You have been identified as a spammer. +# Общий вид *XXX*.domain.net +/^dsl.*\..*\..*/i 553 AUTO_DSL You have been identified as a spammer. Go Away. +/[ax]dsl.*\..*\..*/i 553 AUTO_XDSL You have been identified as a spammer. Go Away. +/client.*\..*\..*/i 553 AUTO_CLIENT You have been identified as a spammer. Go Away. +/cable.*\..*\..*/i 553 AUTO_CABLE You have been identified as a spammer. Go Away. +/pool.*\..*\..*/i 553 AUTO_POOL You have been identified as a spammer. Go Away. +/dial.*\..*\..*/i 553 AUTO_DIAL You have been identified as a spammer. Go Away. +/ppp.*\..*\..*/i 553 AUTO_PPP You have been identified as a spammer. Go Away. +/dslam.*\..*\..*/i 553 AUTO_DSLAM You have been identified as a spammer. Go Away. +/node.*\..*\..*/i 553 AUTO_NODE You have been identified as a spammer. Go Away. diff -uNr spam_check-0.2.3/law_notes.txt spam_check-0.2.4/law_notes.txt --- spam_check-0.2.3/law_notes.txt Thu Jan 1 05:00:00 1970 +++ spam_check-0.2.4/law_notes.txt Fri Feb 13 15:53:28 2004 @@ -0,0 +1,62 @@ +Чем страшен спам. + +Многие спамеры ссылаются на статьи Конституции в своих посланиях, ссылаясь +на свободу обмена информацией любыми доступными способами, всегда забывая, +что при реализации собственных свобод никаким образом не должны нарушаться +права и свободы других граждан. Любая деятельность не в праве реализовывать +собственные свободы в ущерб свободе других или нарушая какие-либо законодательные +акты. + +Итак, спамеры ущемляют права: + - Организаций обеспечивающих работу сети и доступ пользователей в Интернет: + - Провайдерам приходится платить за трафик возникающий из за пересылки спама; + - Создается лишняя нагрузка на сервера и каналы связи, необоснованные затраты + на обновление оборудования и поддержку; + + - Конечных пользователей: + - Затраты на получения сама (спам оплачивают из своего кармана его получатели) + - Затраты рабочего времени на чтение и фильтрацию ненужной корреспонденции; + - Вероятность пропустить нужное письмо, которое может остаться незамеченным + среди спама; + - Зараженные спамерскими вирусами машины рассылают спам за счет пользователя, + вплость до блокирования работы из-за паразитного трафика. + + + +Слабость закона: + +Жить нужно по закону, а не по понятиям. В вопросах спама, такое сегодня невозможно. +Закон абсолютно не способен защитить от этого явления. Да же введение +нормативных актов не способно помочь - подавать в суд по факту каждого письма +содержащего спам нереально (ежедневно я получаю около 500 писем со спамом, +из них 99% разосланы анонимно без возможности отследить реального отправителя). +Причем само понятие спам не имеет четкой формулировки и является субъективным. + +Нарушаемые статьи закона (скопировано с http://www.internet-law.ru/articles/4.htm): + +1. В соответствии с п.1 ст.5 Закона "О Рекламе": "Реклама должна быть +распознаваема без специальных знаний или без применения технических +средств именно как реклама непосредственно в момент ее представления +независимо от формы или от используемого средства распространения". + +2. В соответствии с п.2 ст.5 Закона "О Рекламе": "Реклама на территории +Российской Федерации распространяется на русском языке и по усмотрению +рекламодателей дополнительно на государственных языках республик и +родных языках народов Российской Федерации". + +3. В соответствии с п.3 ст.5 Закона "О Рекламе": "Если деятельность +рекламодателя подлежит лицензированию, в рекламе должны быть указаны +номер лицензии, а также наименование органа, выдавшего эту лицензию". + +4. В соответствии с ст.7 Закона "О Рекламе": "Недостоверной является +реклама, в которой присутствуют не соответствующие действительности +сведения в отношении ...информации о самом рекламодателе. Недостоверная +реклама не допускается". + +5. В соответствии с ст.10 Закона "О Рекламе": "Использование в радио-, +теле-, видео-, аудио- и кинопродукции, а также в иной продукции и +распространение иными способами скрытой рекламы, то есть рекламы, +которая оказывает не осознаваемое потребителем воздействие на его +восприятие, в том числе путем использования специальных видеовставок +(двойной звукозаписи) и иными способами, не допускаются". + diff -uNr spam_check-0.2.3/spam_check.pl spam_check-0.2.4/spam_check.pl --- spam_check-0.2.3/spam_check.pl Tue Jul 8 16:45:28 2003 +++ spam_check-0.2.4/spam_check.pl Fri Feb 13 16:04:13 2004 @@ -4,7 +4,7 @@ # - обратная проверка типовых взламываемых открытых потов; # - интенсивность рассылки; # - анализ имени хоста. -# v0.2.3 Copyright (c) 2003 by Maxim Chirkov +# v0.2.4 Copyright (c) 2003-2004 by Maxim Chirkov use strict ; use BerkeleyDB; @@ -49,15 +49,20 @@ my $cfg_log_watch_mode = 0; # Команда которая будет вызываться в случае обновления файла блокировки. +my $cfg_blocklist_rebuild_cmd = "/usr/local/sbin/postmap -w $cfg_block_dir/block_list.txt"; + +# более правильный вариант. +# my $cfg_blocklist_rebuild_cmd = "/usr/local/sbin/postmap -w $cfg_block_dir/block_list.txt; mv -f $cfg_block_dir/block_list.txt.db $cfg_block_dir/block_list.db"; + +# вариант при экспорте на DNSBL сервер. # my $cfg_blocklist_rebuild_cmd = "/usr/bin/gzip -c $cfg_block_dir/block_list.txt > $cfg_block_dir/block_list.txt.gz.new;mv $cfg_block_dir/block_list.txt.gz.new $cfg_block_dir/block_list.txt.gz"; -my $cfg_blocklist_rebuild_cmd = "/usr/local/sbin/postmap $cfg_block_dir/block_list.txt"; # Минамальное время в сек. между запуском процесса перегенерации файла блокировки, # необходимо только для "tail" режима работы скрипта (cfg_log_watch_mode=1) # Определяет в общем виде быстроту реакции на спам. -my $cfg_blocklist_rebuild_interval = 10; +my $cfg_blocklist_rebuild_interval = 20; -# Формат списка блокировки: +# Формат списка блокировки: # 0 - "access" - стандартный access файл для MTA Postfix # 1 - формат rbldnsd my $cfg_blocklist_format = 0; @@ -76,7 +81,10 @@ # Обратная проверка на наличие открытых сетевых протов. "open_ports" => { - "25" => -0.5, # Уменьшаем вероятность спама, так как может быть это нормаольный почтовый сервер. + "25" => -3.5, # Уменьшаем вероятность спама, так как может быть это нормаольный почтовый сервер. + "80" => -3, # Уменьшение FP, для хостов без MTA + "110" => -3, # Уменьшение FP, для хостов без MTA + "1025" => 1, # Сигнализирует о Windows машине. "5000" => 1.5, # 5000 (UPNP) порт показывает на вероятно взломанную машину "2001" => 1.5, # Порты которые используют троянские программы. @@ -84,6 +92,7 @@ "1400" => 1.5, "9100" => 1.5, "3389" => 1.5, + "4444" => 1, #"1000" => 2, "1058" => 2, "3000" => 2, "1024" => 2, "666" => 2, "50505" => 2, #"5001" => 2, "12345" => 2, "12346" => 2, "30303" => 2, "31337" => 2, "3128" => 0.8, # Вероятно рассылка через открытые прокси. @@ -94,7 +103,7 @@ # Вес уровня домена от которого поступила почта, 0 - домен не резолвится. # "domain_level" => { - 0 => 0, + 0 => 3, 1 => 0, # test.com 2 => -0.5, # mail.test.com 3 => 1, # bzq-218-1-51.cable.test.com @@ -106,15 +115,15 @@ # Regex маски слов встречающихся в имени домена. "domain_mask" => { '(client|dial|dsl|cable|pool|ppp|node)' => 2, - '\-\d+\-\d+\-\d+' => 1.5, - 'smtp|mail' => -0.5, + '\-\d+\-\d+\-\d+' => 3, + 'smtp|mail|relay' => -3, }, # Коэффициент умножения веса, для последующих соединений с данного IP за # за текущий день. # - Если равен 1, то пересчет не производится, блокирование в зависимости от числа запросов запрещено. # - Если равен 0, апдейт базы при повторных запросах не производится вообще. - "reconnect_mul" => 1.1, # При каждом повторном коннекте в течении дня умножаем вес на 1.1 + "reconnect_mul" => 1.0, # При каждом повторном коннекте в течении дня умножаем вес на 1.1 # Минимальный вес при котором блокируем IP как спамера. "block_weight" => 3 # Если суммарный вес получился >= 3, то считаем хост спамером. @@ -138,7 +147,7 @@ # Маска для выборки из почтового лога строк по которым определяем уже отвергнутые соединения. # Чтобы не проверять лишний раз. В скобке IP. -my $cfg_maillog_reject_mask=': reject: RCPT from [^\[]+\[(\d+\.\d+\.\d+\.\d+)\]: 550 Service unavailable;'; +my $cfg_maillog_reject_mask=': reject: RCPT from [^\[]+\[(\d+\.\d+\.\d+\.\d+)\]: 55'; # Маска по имени домена, при совпадении которой будет производится проверка. #my $cfg_block_mask='\d[\-\.](dsl|adsl|dial|cable)\.'; @@ -181,7 +190,8 @@ unlink($cfg_lock_file); $db_obj->db_sync(); untie %chk_cache; - die "SIGKILL ! Flushing buffers and aborting..."; + print STDERR "SIGKILL ! Flushing buffers and aborting..."; + exit(0); }; local ($SIG{INT}) = \&kill_sig; local ($SIG{TERM}) = \&kill_sig; @@ -340,6 +350,7 @@ if(check_spamer_in_ip_block(\%chk_ip, \%chk_cache) == 1){ # Если были блокировки спамеров, перечитываем хэш для файла достпа. system("$cfg_blocklist_rebuild_cmd"); + $db_obj->db_sync(); } %chk_ip = (); } diff -uNr spam_check-0.2.3/unknown_notes.txt spam_check-0.2.4/unknown_notes.txt --- spam_check-0.2.3/unknown_notes.txt Thu Jan 1 05:00:00 1970 +++ spam_check-0.2.4/unknown_notes.txt Fri Feb 13 15:47:24 2004 @@ -0,0 +1,29 @@ +Для наиболее продуктивного блокирования спама с доменов не имеющих обратную DNS +записиь, рекомендую использовать следующие параметры (блокировать unknown хосты +если при обратной проверке соединения на 25 порт не принимаются): + +Блок конфигурации "%cfg_spam_factor": + Секция "open_ports": + "25" => -6.5, + "80" => -5, # Уменьшение FP, для хостов без MTA + "110" => -5, # Уменьшение FP, для хостов без MTA + + Секция "domain_level": + 0 => 5, # Большой вес для unknown хостов, противовес через 25 порт. + + Секция "domain_mask": + '\-\d+\-\d+\-\d+' => 5.0, # Осторожно, может сработать для нормальных хостов, но должно компенсироваться через проверку open_ports + 'smtp|mail|relay' => -5.0, + +В dsl_stoplist.txt рекомендуется добавить: + +/^dsl.*\..*\..*/i 553 AUTO_DSL You have been identified as a spammer. Go Away. +/[ax]dsl.*\..*\..*/i 553 AUTO_XDSL You have been identified as a spammer. Go Away. +/client.*\..*\..*/i 553 AUTO_CLIENT You have been identified as a spammer. Go Away. +/cable.*\..*\..*/i 553 AUTO_CABLE You have been identified as a spammer. Go Away. +/pool.*\..*\..*/i 553 AUTO_POOL You have been identified as a spammer. Go Away. +/dial.*\..*\..*/i 553 AUTO_DIAL You have been identified as a spammer. Go Away. +/ppp.*\..*\..*/i 553 AUTO_PPP You have been identified as a spammer. Go Away. +/dslam.*\..*\..*/i 553 AUTO_DSLAM You have been identified as a spammer. Go Away. +/node.*\..*\..*/i 553 AUTO_NODE You have been identified as a spammer. Go Away. +