Announcement

Collapse
No announcement yet.

Postfix antispam при помощи RBL (DNSBL) и штатных средств

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Postfix antispam при помощи RBL (DNSBL) и штатных средств

    [imgg]http://sudouser.com/screen/spammail.jpg[/imgg]
    Небольшое howto на тему фильтрации спама при помощи RBL(DNSBL) и модификации конфига Postfix, по времени настройка занимает минут 5, результат вы сможете оценить незамедлительно. Эта статья может быть дополнением к способу фильтрации писем с помощью пакета Posrgrey который просто выставляет задержку в пять минут на прием входящей почты, почитать про него можно здесь:
    Code:
    http://vanila.org/viewtopic.php?f=875&t=4030
    Что же такое 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
    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) вы будете использовать на своем почтовике, список их представлен тут: http://spamlinks.net/filter-dnsbl-lists.htm . После изменения конфигурации необходимо перезапустить postfix командой /etc/init.d/postfix reload.
    Теперь можно посмотреть как работает 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
    IPv6 Certification Badge for terra2039
Working...
X