[imgg]http://sudouser.com/screen/spammail.jpg[/imgg]
Небольшое howto на тему фильтрации спама при помощи RBL(DNSBL) и модификации конфига Postfix, по времени настройка занимает минут 5, результат вы сможете оценить незамедлительно. Эта статья может быть дополнением к способу фильтрации писем с помощью пакета Posrgrey который просто выставляет задержку в пять минут на прием входящей почты, почитать про него можно здесь:
Что же такое RBL(DNSBL)? Обратимся к wikipedia:
DNSBL — DNS blacklist или DNS blocklist — списки хостов, хранимые с использованием системы архитектуры DNS. Обычно используются для борьбы со спамом. Почтовый сервер обращается к DNSBL, и проверяет в нём наличие IP-адреса клиента, с которого он принимает сообщение. При положительном ответе считается, что происходит попытка приёма спам-сообщения. Серверу отправителя сообщается ошибка 5xx (неустранимая ошибка) и сообщение не принимается. Почтовый сервер отправителя создаёт «отказную квитацию» отправителю о недоставке почты.
Раньше такие списки назывались RBL, Real-time Blackhole List, но сейчас это название является торговой маркой, принадлежащей MAPS LLC.
Типы DNSBL
Списки открытых релеев — база данных почтовых серверов, неправильно сконфигурированных, которые позволяют пересылать через себя почтовые сообщения для всех желающих. Как правило данные хосты автоматически сканируются в Интернете, поэтому попадание такого хоста в руки людей, рассылающих спам сообщения, происходит очень быстро (не более 4 дней). При использовании данных списков существует наименьшая опасность блокирования обычной почты, так как сервер попадает в список, только после проверки его специальным почтовым роботом.
Списки спам серверов — база данных серверов, через которые было замечено прохождение спам сообщений. Данные списки составляются на основе показаний пользователей, получивших спам с какого-либо сервера, поэтому они могут содержать устаревшую, или просто неверную информацию.
Список Dialup адресов — список ip адресов провайдеров, используемых ими для организации сервиса удалённого доступа, и, следовательно, которые не могут быть адресами почтовых серверов. Использование данных списков практически безопасно для легальной почты.
Список открытых HTTP/Socks прокси-серверов без контроля доступа позволяющие любому пользователю совершать неавторизованные действия скрывая свой реальный IP адрес, незаконные действия включают не только рассылку спама, но также и многочисленные иные варианты.
Теперь можно приступить к настройке нашего почтовика, откройте на редактирование файл конфигурации Postfix /etc/postfix/main.cf и найдите там секцию smtpd_recipient_restrictions, ниже приведен пример конфига с использованием RBL(DNSBL) и добавлены некоторые опции для проверки хостов и пользователей обращающихся к нашему почтовику.
main.cf
Вы можете сами выбрать какие именно сервисы RBL(DNSBL) вы будете использовать на своем почтовике, список их представлен тут: http://spamlinks.net/filter-dnsbl-lists.htm . После изменения конфигурации необходимо перезапустить postfix командой /etc/init.d/postfix reload.
Теперь можно посмотреть как работает RBL(DNSBL), заглянем в логи
Небольшое howto на тему фильтрации спама при помощи RBL(DNSBL) и модификации конфига Postfix, по времени настройка занимает минут 5, результат вы сможете оценить незамедлительно. Эта статья может быть дополнением к способу фильтрации писем с помощью пакета Posrgrey который просто выставляет задержку в пять минут на прием входящей почты, почитать про него можно здесь:
Code:
http://vanila.org/viewtopic.php?f=875&t=4030
DNSBL — DNS blacklist или DNS blocklist — списки хостов, хранимые с использованием системы архитектуры DNS. Обычно используются для борьбы со спамом. Почтовый сервер обращается к DNSBL, и проверяет в нём наличие IP-адреса клиента, с которого он принимает сообщение. При положительном ответе считается, что происходит попытка приёма спам-сообщения. Серверу отправителя сообщается ошибка 5xx (неустранимая ошибка) и сообщение не принимается. Почтовый сервер отправителя создаёт «отказную квитацию» отправителю о недоставке почты.
Раньше такие списки назывались RBL, Real-time Blackhole List, но сейчас это название является торговой маркой, принадлежащей MAPS LLC.
Типы DNSBL
Списки открытых релеев — база данных почтовых серверов, неправильно сконфигурированных, которые позволяют пересылать через себя почтовые сообщения для всех желающих. Как правило данные хосты автоматически сканируются в Интернете, поэтому попадание такого хоста в руки людей, рассылающих спам сообщения, происходит очень быстро (не более 4 дней). При использовании данных списков существует наименьшая опасность блокирования обычной почты, так как сервер попадает в список, только после проверки его специальным почтовым роботом.
Списки спам серверов — база данных серверов, через которые было замечено прохождение спам сообщений. Данные списки составляются на основе показаний пользователей, получивших спам с какого-либо сервера, поэтому они могут содержать устаревшую, или просто неверную информацию.
Список Dialup адресов — список ip адресов провайдеров, используемых ими для организации сервиса удалённого доступа, и, следовательно, которые не могут быть адресами почтовых серверов. Использование данных списков практически безопасно для легальной почты.
Список открытых HTTP/Socks прокси-серверов без контроля доступа позволяющие любому пользователю совершать неавторизованные действия скрывая свой реальный IP адрес, незаконные действия включают не только рассылку спама, но также и многочисленные иные варианты.
Теперь можно приступить к настройке нашего почтовика, откройте на редактирование файл конфигурации Postfix /etc/postfix/main.cf и найдите там секцию smtpd_recipient_restrictions, ниже приведен пример конфига с использованием RBL(DNSBL) и добавлены некоторые опции для проверки хостов и пользователей обращающихся к нашему почтовику.
main.cf
Code:
# See /usr/share/postfix/main.cf.dist for a commented, more complete version # Debian specific: Specifying a file name will cause the first # line of that file to be used as the name. The Debian default # is /etc/mailname. #myorigin = /etc/mailname smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU) biff = no # appending .domain is the MUA's job. append_dot_mydomain = no # Uncomment the next line to generate "delayed mail" warnings #delay_warning_time = 4h readme_directory = no # TLS parameters smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key smtpd_use_tls=yes smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache # See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for # information on enabling SSL in the smtp client. myhostname = gw0.sun-torrents.name alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = /etc/mailname mydestination = gw0.purgatory.name, gw0.sun-torrents.name, localhost.purgatory.name, localhost.sun-torrents.name, localhost relayhost = mynetworks = 127.0.0.0/8 10.15.10.0/29 mailbox_command = procmail -a "$EXTENSION" mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all #mailbox_size_limit mailbox_size_limit = 102400000 smtpd_sasl_local_domain = smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous broken_sasl_auth_clients = yes smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination,reject_invalid_hostname,reject_non_fqdn_hostname,reject_non_fqdn_sender,reject_non_fqdn_recipient,reject_unknown_sender_domain,reject_unknown_recipient_domain,reject_rbl_client sbl.spamhaus.org,reject_rbl_client cbl.abuseat.org,reject_rbl_client dul.dnsbl.sorbs.net,check_policy_service inet:127.0.0.1:10023 smtpd_tls_auth_only = no smtp_use_tls = yes smtp_tls_note_starttls_offer = yes smtpd_tls_loglevel = 1 smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s tls_random_source = dev:/dev/urandom receive_override_options = no_address_mappings virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf virtual_uid_maps = static:5000 virtual_gid_maps = static:5000 virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf,mysql:/etc/postfix/mysql-email2email.cf virtual_transport = dovecot dovecot_destination_recipient_limit = 1 smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth
Теперь можно посмотреть как работает RBL(DNSBL), заглянем в логи
Code:
Apr 14 13:54:30 gw0 postgrey[18518]: action=pass, reason=triplet found, client_name=unknown, client_address=81.200.15.213, recipient=www-data@gw0.purgatory.name Apr 14 13:54:30 gw0 postfix/smtpd[19876]: 7EF832FC059: client=unknown[81.200.15.213] Apr 14 13:54:30 gw0 postfix/cleanup[19878]: 7EF832FC059: message-id=<20120414094852.C5189F839CE@Gw0.hobbyworld.local> Apr 14 13:54:30 gw0 postfix/qmgr[2325]: 7EF832FC059: from=<>, size=4044, nrcpt=1 (queue active) Apr 14 13:54:30 gw0 postfix/smtpd[19876]: disconnect from unknown[81.200.15.213] Apr 14 13:54:30 gw0 postfix/local[19879]: 7EF832FC059: to=<www-data@gw0.purgatory.name>, relay=local, delay=0.01, delays=0.01/0/0/0, dsn=2.0.0, status=sent (delivered to command: procmail -a "$EXTENSION") Apr 14 13:54:30 gw0 postfix/qmgr[2325]: 7EF832FC059: removed