The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Борьба со спамом, фильтрация почты

   Корень / Администратору / Сетевые сервисы / Mail, почта / Борьба со спамом, фильтрация почты

----* Удаление адреса почтового сервера из чёрных списков SORBS.net   Автор: sarge  [комментарии]
  Тема блэклистов известна, наверное, каждому администратору почты. Однако здесь, как и везде, есть подводные камни.
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Фильтрация исходящих почтовых сообщений с помощью sieve   Автор: Alexander Galanin  [комментарии]
  Предпочитаю хранить почтовые дискуссии в одном месте, а не держать отправленные письма отдельно в папке Sent, как это по умолчанию делают IMAP-клиенты. Поэтому по добавлению новой почты в папку Sent я вызываю sieve-скрипт для её обработки.
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Настройка crm114 в связке с dovecot-antispam   Автор: Alexander Galanin  [комментарии]
  Плагин dovecot-antispam для dovecot позволяет сделать обучение спамофильтра более удобным: указав плагину имя директории со спамом, можно автоматически обозначать почту как спам или не спам, перенося её в/из этой директории соответственно. В данном статье рассматривается способ организации связки MDA (maildrop), фильтра (crm114) и IMAP-сервера
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Модификация транзитной почты на сервере с Postfix (доп. ссылка 1) (доп. ссылка 2)   [комментарии]
  Для автоматического добавления текста к письмам, например, уведомления о необходимости сохранения коммерческой тайны, можно использовать alterMIME (http://pldaniels.com/altermime/). При помощи alterMIME также можно добавлять в транзитную почту произвольные заголовки, изменять содержимое существующих заголовков, удалять и заменять вложения в зависимости от имени файла и типа контента.
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Скрытие локальных адресов авторизованных пользователей в Postfix (доп. ссылка 1)   Автор: sanmai  [комментарии]
  Необходимо, чтобы вместо подобных заголовков:
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Примеры управлением очередью сообщений в Postfix   [комментарии]
  Инициировать внеплановый процесс отправки сообщений, присутствующих в очереди:
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Пример настроек для Spamassassin   [комментарии]
  /etc/mail/spamassassin/local.cf
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Проверка существования email в AD (ldap) для маршрутизации письма на Exchange   Автор: 2dfx  [комментарии]
  У нас в компании используется сервер Exchange для обмена почтовыми сообщениями. Но для отправки сообщений во "вне" используем Communigate Pro. Communigate (CGP for Linux) используется только как прослойка и письма отправленные на известные домены пересылаются на Exchange.
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Автоматизация борьбы со спамботами в своей сети   Автор: Дмитрий Иванов  [комментарии]
  Администраторы больших сетей регулярно получают жалобы на исходящий из них спам. Получив жалобу, можно найти виновного и устранить проблему. Но нехорошо узнавать о таких делах только от чужих людей. Спамеров вполне можно вычислить самому, и принять меры раньше, чем кто-то пострадает.
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Ведение полного лога почтовых отправлений, произведенных через PHP скрипты   [обсудить]
 
В PHP 5.3 добавлена поддержка ведения полного лога всех почтовых отправлений через функцию mail().

Указав в ini-файле опцию "mail.log имя_файла", в заданным файл будут сохранены
данные от какого пользователя,
из какого скрипта, и из какой строки этого скрипта была инициирована отправка каждого письма.

При указании опции "mail.add-x-header true" в отправляемые через PHP функцию
mail() письма будет добавлен
заголовок X-PHP-Originating-Script с информацией об скрипте и отправителе.
 
----* Обучение SpamAssassin при помощи Gmail (доп. ссылка 1)   Автор: Yuri Trofimov   [комментарии]
  Суть идеи в использовании антиспам фильтров Google для обучения SpamAssassin на локальном почтовом сервере.
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Сборка exim с поддержкой SPF и DomainKeys в Debian GNU/Linux (доп. ссылка 1)   Автор: Pavel Piatruk  [комментарии]
  echo 'deb-src ftp://ftp.nl.debian.org/debian/ testing main contrib non-free' >> /etc/apt/sources.list apt-get update apt-get build-dep exim4 apt-get install libspf2-dev libspf2-2 cd
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Блокировка отброшенных SMTP сервером IP адресов/подсетей.   Автор: Забудкин Лев Мирославович  [комментарии]
  #!/bin/sh # #REJECTSPAMMERS v0.1b Lev Zabudkin. zabudkin@mail.ru # #Описание:
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Особенность использования Dspam в связке с qmail+vpopmail   Автор: Олег  [комментарии]
 
Следует отметить, что если вы используете dspam в связке с qmail+vpopmail 
последний должен быть версии не ниже 5.3.7 (с опцией --enable-make-seekable,
она yes по умолчанию),
иначе не работает конструкция вида:

   /usr/local/dspam/bin/dspam --user local_part@domain.com \
    --deliver=innocent,spam | /var/vpopmail/bin/vdelivermail '' bounce-no-mailbox

vdelivermail отваливается с ошибкой на несикабельность пайпа (errno 29).
 
----* Фильтрация спама силами Postfix.   Автор: Дмитрий Кустов  [комментарии]
  Привожу выдержки из настроек в main.cf для фильтрации спама в версии Postfix 2.2 его собственными силами. Использую также SASL2 для аутентификации (это не обязательно) и PCRE (аналог regexp).
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Kaspersky + Postfix с ограничениями для адресов   Автор: BrUYE  [обсудить]
  При автоматической установке Касперского для Postfix при настроенных ограничениях для адресов (smtpd_recipient_restrictions, sender_restrictions, etc) в логи валятся сообщения типа:
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Какие эффективные DNSBL списки дают наименьшее число ложных срабатываний.   [комментарии]
 
Советую использовать list.dsbl.org (http://dsbl.org/) и dnsbl.njabl.org (http://dnsbl.njabl.org/).
 
----* Блокирование спама в postfix используя маски для домена в HELO   Автор: Евгений Егоров  [комментарии]
  Открыл недавно несколько возможностей в Постфиксе для отсеивания нежелательной почты на этапе HELO. Теперь у меня сервер отсеивает от 90 до 98% почты сразу. Антивирус (clamAV) и SA отдыхают.
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Postfix и фильтр запрещенных атачей с уведомлением (доп. ссылка 1)   Автор: JackSoft  [комментарии]
  Пример конфигурации для Postfix 2.1.x, позволяющей ограничить доступ писем с определенными атачами, с генерацией отчета о недоставке отправителю, c указанием причины блокировки.
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Проверка фильтров postfix (доп. ссылка 1)   Автор: Roman Y. Bogdanov  [обсудить]
 
Как проверить фильтры для postfix? Очень просто:
  $ postmap -q "Content-Type: 1.exe" regexp:/etc/postfix/header_checks

Или просто входом с файла
  $ postmap -q - regexp:/etc/postfix/body_checks < msg_file

Замечание: postmap не делает различий между header, subject и bodymessage.
 
----* Запрещение внешней почты с указанием собственным домена в качестве отправителя. (доп. ссылка 1)   Автор: Roman Y. Bogdanov  [комментарии]
 
Когда спам идет от адреса домена пользователю домена.
   helo somehost
   mail from: me@mydomain.ru
   rcpt to: me@mydomain.ru
  data

Т.е. когда почта принимается с любого IP адреса для $mydestination на MX. 
А с внешнего адреса она к нам приходить не может. Это не есть правильно. Лечить
в Postfix так (main.conf):
   smtpd_recipient_restrictions =
   permit_mynetworks,
   check_sender_access hash:/usr/local/etc/postfix/antispam/wtf,
   ограничения дальше,
   ...

потом, в antispam/wtf
   brj.pp.ru 554 brj.pp.ru sender? What the fuck? You're not in mynetworks!

потом
   makemap hash /usr/local/etc/postfix/antispam/wtf.db < /usr/local/etc/postfix/antispam/wtf
 
----* Ограничения для адреса отправителя в Postfix   Автор: Косенков Игорь  [комментарии]
 
Иногда требуется ограничить прием почты для Postfix только с определенных доменов.
Пример - внутренний почтовый сервер для приема и отправки почты только в локальной сети.
В этом случае нам нужно , чтобы почта ходила только внутри некоего домена - mydomain.ru.

Делаем следующее. В main.cf:
   smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/access, reject
В файле access:
   #здесь перечисляем домен(ы) для которых почта разрешена почта
   mydomain.ru  OK
Затем 
   postmap access
   postfix reload
Теперь будет приниматься почта только для тех, у кого в поле MAIL FROM стоит mydomain.ru. 
Для всех остальных - генериться код "Acces denied".
 
----* Проверка наличия пользователя на этапе соединения в Postfix (2 способ)   Автор: Косенков Игорь  [комментарии]
 
2 способ позволяет среди всех пользователей в системе
 отобрать тех, которым ДЕЙСТВИТЕЛЬНО нужна почта.
В main.cf:
        local_recipient_maps = hash:/etc/postfix/users
Сюда же можно добавить $alias_maps.

В /etc/postfix/users заносим всех пользователей, для которых надо принимать почту:
   user1 здесь_что-нибудь
   user2 здесь_что-нибудь
"здесь_что-нибудь" - это набор все равно каких символов, чтобы выполнилась команда postmap.

Затем postmap /etc/postfix/users. И, конечно, postfix reload.

Теперь почта будет приниматься только для пользователей из файла users.
Для остальных  будет генериться "User unknown in local recipient table" на этапе соединения. 
 
----* Подключение RBL и списков блокировки в Postfix 2   Автор: awk  [комментарии]
 
smtpd_client_restrictions = ...
              reject_rbl_client list.dsbl.org
              check_recipient_access hash:/etc/postfix/skipcheck,
              reject_unknown_client
Предпоследняя строка позволяет разрешить получение почты для некоторых
получателей с unknown адресов.
только для этого необходимо указать в конфиге smtpd_delay_reject=yes

тогда даже на этапе HELO можно указывать исключения на основе адреса получателя:
smtpd_helo_restrictions = permit_mynetworks,
                       reject_invalid_hostname,
                       reject_non_fqdn_hostname,
                       check_recipient_access hash:/etc/postfix/skipcheck,
                       reject_unknown_hostname
 
----* Фильтры в Postfix для копирования исходящей почты (доп. ссылка 1)   Автор: Косенков Игорь  [комментарии]
 
1. В master.cf добавить строку:
    backup unix - n n - - pipe flags=R user=postfix argv=/etc/postfix/script ${sender} ${recipient}
2. В /etc/postfix/script должно быть:
    #!/bin/bash
    /usr/sbin/sendmail -f $1 $2 backup@mydomain.ru
3.Добавить в main.cf:
    smtpd_sender_restrictions = что там есть, hash:/etc/postfix/smtpd.sender
4. Создать файлик /etc/postfix/smtpd.sender такого вида (потом сделать postmap smtpd.sender):
    user@mydomain.ru FILTER backup:
 
----* Простые и эффективные regex для блокирования спама по имени домена   [комментарии]
 
/^dsl.*\..*\..*/i       553 AUTO_DSL spam
/[ax]dsl.*\..*\..*/i    553 AUTO_XDSL spam
/client.*\..*\..*/i     553 AUTO_CLIENT spam
/cable.*\..*\..*/i      553 AUTO_CABLE spam
/pool.*\..*\..*/i       553 AUTO_POOL spam
/dial.*\..*\..*/i       553 AUTO_DIAL spam
/ppp.*\..*\..*/i        553 AUTO_PPP spam
/dslam.*\..*\..*/i      553 AUTO_DSLAM spam
/node.*\..*\..*/i       553 AUTO_NODE spam

Подключение для Postfix: в main.cf, к smtpd_client_restrictions списку добавить regexp:путь
 
----* Как в Exim отфильтровать спам по базе открытых релеев.   Автор: dawnshade  [обсудить]
 
После строки "require verify = sender"
   deny    message       = Access denied - $sender_host_address listed by $dnslist_domain\n$dnslist_text
           dnslists      = dnsbl.sorbs.net
   deny    message       = message from $sender_host_address rejected - see http://njabl.org/
           dnslists      = dnsbl.njabl.org
   deny    message       = rejected because $sender_host_address for bad WHOIS info, see http://www.rfc-ignorant.org/
           dnslists      = ipwhois.rfc-ignorant.org
   deny    message       = rejected because $sender_host_address is in a black list at $dnslist_domain\n$dnslist_text
           dnslists      = dialups.mail-abuse.org
   deny    message       = rejected because $sender_host_address is in a black list at $dnslist_domain\n$dnslist_text
           dnslists      = list.dsbl.org
   deny    message       = Spam blocked see: http://www.spamcop.net/w3m?action=checkblock&ip=$sender_host_address
           dnslists      = bl.spamcop.net
   deny    message       = rejected because $sender_host_address is in a black list at $dnslist_domain\n$dnslist_text
           dnslists      = relays.ordb.org
   deny    message       = rejected, $sender_host_address Open Proxy, see: $dnslist_domain\n$dnslist_text
           dnslists      = dnsbl.void.ru
 
----* Как отфильтровать в postfix ALC спам   Автор: Antony  [комментарии]
 
Postfix:
    body_checks = regexp:/etc/postfix/body_checks

Пример для "AMER ICAN  LA NGUAGE CENTER" 
/etc/postfix/body_checks:
~^[[:alnum:]+/]{60,}[[:space:]]*$~     OK
/.*A.*M.*E.*R.*I.*C.*A.*N.*L.*A.*N.*G.*U.*A.*G.*E.*C.*E.*N.*T.*E.*R.*/     REJECT Body Spam Rule NN
 
----* Как отфильтровать спам по базе открытых релеев.   [комментарии]
 
Postfix:
    maps_rbl_domains = work.drbl.caravan.ru, dul.ru, relays.ordb.org
    maps_rbl_reject_code = 550
    smtpd_client_restrictions = reject_maps_rbl
Sendmail (в sendmail.mc):
    FEATURE('dnsbl', 'dul.ru', 'Use mail relays of your ISP')dnl
    FEATURE('dnsbl', 'work.drbl.caravan.ru', `Use mail relays of your ISP')dnl
    FEATURE('dnsbl', 'relays.ordb.org', 'Spam bloked from open relay.')dnl
Ссылки: http://www.drbl.ofisp.org/zones.html , http://www.dul.ru/ ,  http://ordb.org/faq/
 
----* Где взять примеры написания фильтров к MTA для блокирования вирусов.   [комментарии]
 
Exim: ftp://ftp.exim.org/pub/filter/
Подключается через: message_filter = /etc/exim/system_filter.exim
Procmail: ftp://ftp.rubyriver.com/pub/jhardin/antispam/html-trap.procmail
Postfix: http://www.mrbill.net/postfix/
         http://www.opennet.ru/base/net/postfix_filter.txt.html
 
----* Как через procmail блокировать спам.   [обсудить]
 
Вот пример моего .procmailrc, фильтует наиболее примитивные попытки спэма:
        :0
        * ^To: undisclosed-recipients
        /home/mc/Mail/Trash
        :0
        * !^To: .*@
        /home/mc/Mail/Trash
        :0
        * ^X-Mailer:.*Advanced Mass
        /home/mc/Mail/Trash
        :0
        * ^Content-Type.*indows-1251
        /home/mc/Mail/Trash
        :0
        * ^Content-Disposition: attachment;  filename=.*\.(pif|bat|com|exe|lnk)
        /home/mc/Mail/Trash
 
----* Как вырезать вирусы из письма используя Postfix   [обсудить]
 
/etc/postfix/main.cf:
body_checks = regexp:/etc/postfix/body_checks
header_checks = regexp:/etc/postfix/header_checks
/etc/postfix/body_checks:
# Вырезаем EXE файлы.
# в скобках [     ] - один пробел и один символ табуляции.
/^[     ]*name=.*\.(exe|dll|eml|vbs|pif|com|bat|scr|lnk)\"?$/           REJECT
/\<iframe src=cid\:.* height=0 width=0\>/i      REJECT
/^Content-Disposition: attachment; *filename=.*\.(exe|dll|eml|vbs|pif|com|bat|scr|lnk).*/i   REJECT
/etc/postfix/header_checks:
# Sircam
/^Content-Type:multipart.*"----[A-F0-9]+_Outlook_Express_message_boundary"/i    
# Nimbda
/^X-Unsent: 1/  REJECT
/^X-Mailer: Advanced Mass Sender/       REJECT                                 
/^X-Mailer: Mail Bomber/        REJECT                                      
/^X-Mailer: .*\-VC_IPA \[/      REJECT
 

 Версия для печати





Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру