Защита почтового шлюза от спама
Модераторы: Trinity admin`s, Free-lance moderator`s
Защита почтового шлюза от спама
Здравствуйте!
Ситуация следующая. Собираюсь строить почтовый шлюз на базе Sendmail+clamav+spamassassin+spamas-milter.
Почитав темы на этом форуме, я так и не понял будет ли экономия почтового трафика при использовании этой связки?
Слышал, что спамеров желательно давить на этапе RCPT TO, тогда выходит реальная экономия трафика. Все что просачивается сквозь эти правила уже далее обрабатывается clamav+spamassassin.
Тогда получается, что эти правила надо настраивать на Sendmail. Или Spamassassin тоже сможет помочь?
Собрать Sendmail с поддержкой regexp я смогу. А вот что дальше?
Какие FEATURE или define надо прописать в sendmail.mc? Какие рег. выражения и куда?
Думал защитить свой шлюз от спама, идущего на несуществующие адреса моих доменов, но шлюз не хранит имен пользователей, да и много их.
Хотелось бы еще защитить от dial-up и dsl хостов типа <ip-address>-dsl.com.
Проверку по MX делать не хочу, т.к. сам был в такой ситуации, когда не мог сделать обратную зону для своей маленькой подсетки.
Подскажите, пожалуйста, как реализовать такую защиту?
Ситуация следующая. Собираюсь строить почтовый шлюз на базе Sendmail+clamav+spamassassin+spamas-milter.
Почитав темы на этом форуме, я так и не понял будет ли экономия почтового трафика при использовании этой связки?
Слышал, что спамеров желательно давить на этапе RCPT TO, тогда выходит реальная экономия трафика. Все что просачивается сквозь эти правила уже далее обрабатывается clamav+spamassassin.
Тогда получается, что эти правила надо настраивать на Sendmail. Или Spamassassin тоже сможет помочь?
Собрать Sendmail с поддержкой regexp я смогу. А вот что дальше?
Какие FEATURE или define надо прописать в sendmail.mc? Какие рег. выражения и куда?
Думал защитить свой шлюз от спама, идущего на несуществующие адреса моих доменов, но шлюз не хранит имен пользователей, да и много их.
Хотелось бы еще защитить от dial-up и dsl хостов типа <ip-address>-dsl.com.
Проверку по MX делать не хочу, т.к. сам был в такой ситуации, когда не мог сделать обратную зону для своей маленькой подсетки.
Подскажите, пожалуйста, как реализовать такую защиту?
- corvax
- free-lance moderator
- Сообщения: 877
- Зарегистрирован: 06 авг 2004, 17:21
- Откуда: Kiev, Ukraine
- Контактная информация:
Re: Защита почтового шлюза от спама
экономия трафика может быть при фильтрации по HELO/EHLO, A/PTR записи рилея отпраителя, envelope from и их комбинациямDVS писал(а):Здравствуйте!
Ситуация следующая. Собираюсь строить почтовый шлюз на базе Sendmail+clamav+spamassassin+spamas-milter.
Почитав темы на этом форуме, я так и не понял будет ли экономия почтового трафика при использовании этой связки?
при использовании spamassassin экономии трафика быть не может
причем тут clamav? или просто речь идет о том, что clamav получает письмо только после полного его приема?DVS писал(а):Слышал, что спамеров желательно давить на этапе RCPT TO, тогда выходит реальная экономия трафика. Все что просачивается сквозь эти правила уже далее обрабатывается clamav+spamassassin.
даDVS писал(а):Тогда получается, что эти правила надо настраивать на Sendmail.
с помощью spamassassin траффик можно только одним способом - вносить в access_db рилеи, с которых за определенный период времени пришло определенное кол-во писем, распознанных spamassassin'ом как спам. но готового решения такого нет ни в sendmail, ни в spamassassin. его придется реализовать самостоятельноDVS писал(а):Или Spamassassin тоже сможет помочь?
можно поставить последнюю из бесплатных реализаций milter-aheadDVS писал(а):Собрать Sendmail с поддержкой regexp я смогу. А вот что дальше?
Какие FEATURE или define надо прописать в sendmail.mc? Какие рег. выражения и куда?
Думал защитить свой шлюз от спама, идущего на несуществующие адреса моих доменов, но шлюз не хранит имен пользователей, да и много их.
кстати, если sendmail будет шлюзом перед чем? он просто будет frontend'ом перед каким-нить ms exchange или lotus domino?
вот для этого вам регулярные выражения и понадобятсяDVS писал(а):Хотелось бы еще защитить от dial-up и dsl хостов типа <ip-address>-dsl.com.
а причем тут "проверка по MX" к обратной зоне?DVS писал(а):Проверку по MX делать не хочу, т.к. сам был в такой ситуации, когда не мог сделать обратную зону для своей маленькой подсетки.
какую? пока из конкретных вопросов тут я видел вопрос по регулярным выражениям, PTR записям dsl'ных клиентов и проверке получателей на bext MX'ахDVS писал(а):Подскажите, пожалуйста, как реализовать такую защиту?
на третий вопрос я ответил
первые два вопроса связаны
можно по ним посмотреть на такой вот hack:
http://mta.org.ua/sendmail/m4-releases/ ... p_regex.m4
он потребует еще несколько из того же каталога
либо надо самому почитать доку на счет regex и написать свой ruleset
--
/corvax
/corvax
- corvax
- free-lance moderator
- Сообщения: 877
- Зарегистрирован: 06 авг 2004, 17:21
- Откуда: Kiev, Ukraine
- Контактная информация:
Re: Защита почтового шлюза от спама
Spam Filtering for Mail Exchangers
How to reject junk mail in incoming SMTP transactions.
Tor Slettnes tor@slett.net
Edited by Joost De Cock, Devdas Bhagat, Tom Wright
http://slett.net/spam-filtering-for-mx/
http://www.tldp.org/HOWTO/Spam-Filtering-for-MX/
уж не помню, какой из этих вариантов чуть более свежий
там примеры приведены для эксима, но теоретическая часть сгодится для любого MTA
а уже после осмысления теоретической части можно пробовать настраивать такие фильтры на искомом MTA и задавать уже более конкретные вопросы
How to reject junk mail in incoming SMTP transactions.
Tor Slettnes tor@slett.net
Edited by Joost De Cock, Devdas Bhagat, Tom Wright
http://slett.net/spam-filtering-for-mx/
http://www.tldp.org/HOWTO/Spam-Filtering-for-MX/
уж не помню, какой из этих вариантов чуть более свежий
там примеры приведены для эксима, но теоретическая часть сгодится для любого MTA
а уже после осмысления теоретической части можно пробовать настраивать такие фильтры на искомом MTA и задавать уже более конкретные вопросы
--
/corvax
/corvax
Спасибо, Corvax, за советы.
Шлюз будет стоять перед qmail, который реализует доступ клиентов по POP3 к своим ящикам, является для внутренних пользователей SMTP-сервером, а также пересылку для некоторой группы пользователей почты на Exchange (он сейчас пока в тестовом режиме).
Кстати, пользовательские пароли для доступа к почтовым ящикам будут храниться в БД MySQL. Мне кажется, при таком раскладе все таки есть возможность для шлюза проверять существование получателей.
Буду разбираться с hack'ами и штудировать regexp в sendmail.
А по третьему пункту есть вопрос. Envelope from - имеется в виду проверка обратного адреса?
Шлюз будет стоять перед qmail, который реализует доступ клиентов по POP3 к своим ящикам, является для внутренних пользователей SMTP-сервером, а также пересылку для некоторой группы пользователей почты на Exchange (он сейчас пока в тестовом режиме).
Кстати, пользовательские пароли для доступа к почтовым ящикам будут храниться в БД MySQL. Мне кажется, при таком раскладе все таки есть возможность для шлюза проверять существование получателей.
Буду разбираться с hack'ами и штудировать regexp в sendmail.
Первый пункт мне понятен, по второму есть сомнения в применении, т.к. читал дискуссии по проверке A/PTR-записей рилея отправителя. К сожалению сам был в ситуации, когда для своего почтаря не мог прописать PTR-запись. И это было не потому, что я не знал зачем она нужна. Уже прекрасно понимал ее необходимость, просто не все зависило от меня в этой ситуации. Поэтому понимаю админов, у которых схожие обстоятельства.экономия трафика может быть при фильтрации по HELO/EHLO, A/PTR записи рилея отпраителя, envelope from и их комбинациям
А по третьему пункту есть вопрос. Envelope from - имеется в виду проверка обратного адреса?
- Stranger03
- Сотрудник Тринити
- Сообщения: 12979
- Зарегистрирован: 14 ноя 2003, 16:25
- Откуда: СПб, Екатеринбург
- Контактная информация:
Не совсем понял, речь все-таки идет о сендмыле или qmail? На том же sendmail я на шлюзе с помощью virtualusertable делал проверку существования пользователей до того, как они попадали на внутренний ексченж. Хоть небольшая экономия получалась.DVS писал(а):Спасибо, Corvax, за советы.
Шлюз будет стоять перед qmail, который реализует доступ клиентов по POP3 к своим ящикам, является для внутренних пользователей
Понимаете какая штука, по статистике примерно 30-40% почтовых серверов настроены либо некорректно, либо совсем не имеют обратных записей. Если вы у себя сделаете подобную проверку, то готовьтесь к тому, что 30-40% почты будет исчезать, пользователи будут кричать, мол не ходит нифига.читал дискуссии по проверке A/PTR-записей рилея отправителя. К сожалению сам был в ситуации, когда для своего почтаря не мог прописать PTR-запись.
ИМХО, почтовик, ну кроме разве что проверки существования адреса получателя, должен принимать всю почту, а уж потом на основе своих правил принимать решение о доставке.
Речь идет о Sendmail 8.13.5. У меня большое количество пользователей, которые регулярно добавляются/удаляются. Можно, конечно, внести их на шлюз, но тогда при добавлении/удалении новых пользователей необходимо будет делать правки еще и на шлюзе. Вот если бы тягать их из БД...
Согласен, что было бы правильным принимать всю почту, а уж потом ее фильтровать, но когда имеешь большой почтовый трафик, то много времени будет уходить на такую сортировку, проще основных самых известных вредителей давить при попытке.
Согласен, что было бы правильным принимать всю почту, а уж потом ее фильтровать, но когда имеешь большой почтовый трафик, то много времени будет уходить на такую сортировку, проще основных самых известных вредителей давить при попытке.
- corvax
- free-lance moderator
- Сообщения: 877
- Зарегистрирован: 06 авг 2004, 17:21
- Откуда: Kiev, Ukraine
- Контактная информация:
sendmail как шлюз перед qmail?!?!DVS писал(а):Спасибо, Corvax, за советы.
Шлюз будет стоять перед qmail,
это более чем сильно!
у вас еще и exchange есть?!DVS писал(а):который реализует доступ клиентов по POP3 к своим ящикам, является для внутренних пользователей SMTP-сервером, а также пересылку для некоторой группы пользователей почты на Exchange (он сейчас пока в тестовом режиме).
я еще понимаю корпоративную почту и groupware на exchange, а перед ним в качестве шлюза exim/sendmail (может быть postfix)
но ваша схема более чем удивительна своей избыточностью
если qmail сможет ответить 5xx при RCPT TO на несуществующего пользователя, то шлюзовому MTA совершенно все равно, где хранятся списки пользователей и паролейDVS писал(а):Кстати, пользовательские пароли для доступа к почтовым ящикам будут храниться в БД MySQL. Мне кажется, при таком раскладе все таки есть возможность для шлюза проверять существование получателей.
речь не идет о проверке совпадения записей в прямой и реверсной зонах, речь идет о черных списках по A записям рилеев и сетям, в которые они входят, а также по PTR записям рилеев и доменным зонам, в которые они входят.DVS писал(а):Буду разбираться с hack'ами и штудировать regexp в sendmail.
Первый пункт мне понятен, по второму есть сомнения в применении, т.к. читал дискуссии по проверке A/PTR-записей рилея отправителя. К сожалению сам был в ситуации, когда для своего почтаря не мог прописать PTR-запись.экономия трафика может быть при фильтрации по HELO/EHLO, A/PTR записи рилея отпраителя, envelope from и их комбинациям
чаще это зависит от провайдера. ибо сомневаюсь, что вам делегировали вашу реверсную зону. а если провайдер не желает/не умеет прописать для вас корректные записи в прямой и реверсной зоне, то тогда следует задуматься, может у него еще с чем-то проблемы?DVS писал(а): И это было не потому, что я не знал зачем она нужна. Уже прекрасно понимал ее необходимость, просто не все зависило от меня в этой ситуации.
да. черные списки по адресам отправителей. ну и встречная проверка отправителя, хотя тут сейчас поднимется шум по поводу ее целесообразности.DVS писал(а):Поэтому понимаю админов, у которых схожие обстоятельства.
А по третьему пункту есть вопрос. Envelope from - имеется в виду проверка обратного адреса?
--
/corvax
/corvax
- corvax
- free-lance moderator
- Сообщения: 877
- Зарегистрирован: 06 авг 2004, 17:21
- Откуда: Kiev, Ukraine
- Контактная информация:
получается, что приходилось периодически из AD выгружать список пользователей и формировать из него virtusertable?Stranger03 писал(а):Не совсем понял, речь все-таки идет о сендмыле или qmail? На том же sendmail я на шлюзе с помощью virtualusertable делал проверку существования пользователей до того, как они попадали на внутренний ексченж. Хоть небольшая экономия получалась.DVS писал(а):Спасибо, Corvax, за советы.
Шлюз будет стоять перед qmail, который реализует доступ клиентов по POP3 к своим ящикам, является для внутренних пользователей
у меня в свое время не получилось выполнять прямо из sendmail ldap запрос к AD, пришлось через map program запускать шелловый скрипт, который выполнял ldap запрос посредством ldapsearch, на основании ответа ldapsearch'а отвергал письмо или продолжал проверки. слабым местом оказалась лишь реализация обработки defer'ов. но это были уже чисто мои проблемы
это жестковато таки... видимо, вам сыпется не так уж много совсем левого контента...Stranger03 писал(а):Понимаете какая штука, по статистике примерно 30-40% почтовых серверов настроены либо некорректно, либо совсем не имеют обратных записей. Если вы у себя сделаете подобную проверку, то готовьтесь к тому, что 30-40% почты будет исчезать, пользователи будут кричать, мол не ходит нифига.читал дискуссии по проверке A/PTR-записей рилея отправителя. К сожалению сам был в ситуации, когда для своего почтаря не мог прописать PTR-запись.
ИМХО, почтовик, ну кроме разве что проверки существования адреса получателя, должен принимать всю почту, а уж потом на основе своих правил принимать решение о доставке.
а на счет проверки наличия записи рилея в реверсной зоне или проверки соответствия записей в прямой и реверсной зонах - можно таких товарищей наказывать грейлистингом
--
/corvax
/corvax
- corvax
- free-lance moderator
- Сообщения: 877
- Зарегистрирован: 06 авг 2004, 17:21
- Откуда: Kiev, Ukraine
- Контактная информация:
milter-ahead - и вам будет все равно, где хранятся пользователи на backend'еDVS писал(а):Речь идет о Sendmail 8.13.5. У меня большое количество пользователей, которые регулярно добавляются/удаляются. Можно, конечно, внести их на шлюз, но тогда при добавлении/удалении новых пользователей необходимо будет делать правки еще и на шлюзе. Вот если бы тягать их из БД...
ню-нюDVS писал(а):Согласен, что было бы правильным принимать всю почту,
DVS писал(а):а уж потом ее фильтровать, но когда имеешь большой почтовый трафик, то много времени будет уходить на такую сортировку, проще основных самых известных вредителей давить при попытке.
--
/corvax
/corvax
Не пинайте меня по поводу такой избыточности
. Это уже было так настроено до меня и старший админ уже привык так работать. Могу только догадываться почему qmail спрятали за Sendmail, возможно не смогли настроить антивирь под qmail, а может еще по какой-то причине. А Exchange появился недавно и пока находится в тестовом режиме. В дальнейшем пользователи нашей компании будут пользоваться Exchange, а арендаторы будут продолжать работать с ящиками на qmail.
Попробую пока с хаками поработать, подборка на Вашем сайте, Corvax, на мой взгляд замечательная. Буду разбираться с ними. Спасибо!

Так письмо то уже будет принято шлюзом.если qmail сможет ответить 5xx при RCPT TO на несуществующего пользователя, то шлюзовому MTA совершенно все равно, где хранятся списки пользователей и паролей
Попробую пока с хаками поработать, подборка на Вашем сайте, Corvax, на мой взгляд замечательная. Буду разбираться с ними. Спасибо!
- corvax
- free-lance moderator
- Сообщения: 877
- Зарегистрирован: 06 авг 2004, 17:21
- Откуда: Kiev, Ukraine
- Контактная информация:
нетDVS писал(а):Не пинайте меня по поводу такой избыточности. Это уже было так настроено до меня и старший админ уже привык так работать. Могу только догадываться почему qmail спрятали за Sendmail, возможно не смогли настроить антивирь под qmail, а может еще по какой-то причине. А Exchange появился недавно и пока находится в тестовом режиме. В дальнейшем пользователи нашей компании будут пользоваться Exchange, а арендаторы будут продолжать работать с ящиками на qmail.
Так письмо то уже будет принято шлюзом.если qmail сможет ответить 5xx при RCPT TO на несуществующего пользователя, то шлюзовому MTA совершенно все равно, где хранятся списки пользователей и паролей
велкамDVS писал(а):Попробую пока с хаками поработать, подборка на Вашем сайте, Corvax, на мой взгляд замечательная. Буду разбираться с ними. Спасибо!
но на самом деле под шлюз перед exchange легче заточить exim. у меня есть очень крупная инсталляция такая. exim может либо по smtp проверять у exchange наличие пользователя (как и sendmail), либо с помощью ldap запроса к AD
--
/corvax
/corvax
- Stranger03
- Сотрудник Тринити
- Сообщения: 12979
- Зарегистрирован: 14 ноя 2003, 16:25
- Откуда: СПб, Екатеринбург
- Контактная информация:
Ну примерно так. Есть еще один вариант, авторизовать локальных юзеров через LDAP и для них же делать пересылку почты внутрь в домен. Но тогда мне проще было забить все в файл и не городить огород. Тем более что правка сего файла занимала 1-у минуту.corvax писал(а):получается, что приходилось периодически из AD выгружать список пользователей и формировать из него virtusertable?
Жестковато что, принимать почту от всех? Я вам расскажу такую штуку, включил я эту пресловутую проверку обратной зоны. На следующий день некий юзер, директор департамента, говорит, мол с такой-то крутой конторы не ходит почта. Я проверять, ага, обратная зона идет лесом. Говорю мол не наша проблема, описал в чем. Ну и так далее. Причем на это можно было бы забить болт, но когда этих болтов до 100-ни топовых клиентов, ммм. Не говоря уже о десятках сотен или тысяч других...это жестковато таки... видимо, вам сыпется не так уж много совсем левого контента...
Всех не накажешь, админы ленивые по своей сути и часто даже не знают, что существует RFC.а на счет проверки наличия записи рилея в реверсной зоне или проверки соответствия записей в прямой и реверсной зонах - можно таких товарищей наказывать грейлистингом
- Stranger03
- Сотрудник Тринити
- Сообщения: 12979
- Зарегистрирован: 14 ноя 2003, 16:25
- Откуда: СПб, Екатеринбург
- Контактная информация:
Что ню-ню? Пойдите объясните директору крупной госконторы, что мол ваш сервер не будет принимать от него почту по некоторым причинам, которые только вы сами понимаете. В лучшем случае вы, как исполнитель, будете посланы НА....corvax писал(а):ню-нюDVS писал(а):Согласен, что было бы правильным принимать всю почту,
Но, да, все-таки ИМХО...
- Stranger03
- Сотрудник Тринити
- Сообщения: 12979
- Зарегистрирован: 14 ноя 2003, 16:25
- Откуда: СПб, Екатеринбург
- Контактная информация:
На опеннет есть ряд статей на тему авторизации с помощью ldap + winbind. А какой почтовик прикручивать - дело вкуса.corvax писал(а):но на самом деле под шлюз перед exchange легче заточить exim. у меня есть очень крупная инсталляция такая. exim может либо по smtp проверять у exchange наличие пользователя (как и sendmail), либо с помощью ldap запроса к AD
- corvax
- free-lance moderator
- Сообщения: 877
- Зарегистрирован: 06 авг 2004, 17:21
- Откуда: Kiev, Ukraine
- Контактная информация:
чисто моя точка зрения - делать все в режиме реального времени. я строил в качестве frontend для exchange и на базе sendmail и на базе exim. в обоих случаях мне показалось более удобным и надежным проверка пользователя ldap запросами в режиме реального времениStranger03 писал(а):Ну примерно так. Есть еще один вариант, авторизовать локальных юзеров через LDAP и для них же делать пересылку почты внутрь в домен. Но тогда мне проще было забить все в файл и не городить огород. Тем более что правка сего файла занимала 1-у минуту.corvax писал(а):получается, что приходилось периодически из AD выгружать список пользователей и формировать из него virtusertable?
тьфу... по приемом почты ото всех подразумевался прием почты без проверки записи рилея в реверсной зоне? тогда вопрос снимаетсяStranger03 писал(а):Жестковато что, принимать почту от всех? Я вам расскажу такую штуку, включил я эту пресловутую проверку обратной зоны.это жестковато таки... видимо, вам сыпется не так уж много совсем левого контента...

да я сам за кривую запись в реверсе только баллы в spamassassin накидываю. просто я отреагировал на фразу "принимать почту ото всех", восприняв ее буквальноStranger03 писал(а):На следующий день некий юзер, директор департамента, говорит, мол с такой-то крутой конторы не ходит почта. Я проверять, ага, обратная зона идет лесом. Говорю мол не наша проблема, описал в чем. Ну и так далее. Причем на это можно было бы забить болт, но когда этих болтов до 100-ни топовых клиентов, ммм. Не говоря уже о десятках сотен или тысяч других...
ну так и почта от них лениво ходить будетStranger03 писал(а):Всех не накажешь, админы ленивые по своей сути и часто даже не знают, что существует RFC.а на счет проверки наличия записи рилея в реверсной зоне или проверки соответствия записей в прямой и реверсной зонах - можно таких товарищей наказывать грейлистингом
есть одна дружественная контора. они с 20.11.2005 за 30 календарных дней получили 42 с небольшим тысячи вирей Worm.Sober.U (по классификации clamav'а). такое впечатление, что их (контору) кто-то заказал. так вот, поток червей уменьшился более чем в два раза после введения на их exim'е опционального грейлистинга и задержки почты с хостов с кривым реверсом. вот такие случаи бывают. кстати, в средине января поток червей иссяк так же неожиданно, как и появился
--
/corvax
/corvax
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 7 гостей