URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 45126
[ Назад ]

Исходное сообщение
"как заставить sendmail принимать почту только от указанных серверов?"

Отправлено SergK , 15-Июн-04 18:13 
Добрый день всем!

Подскажите, пожалуйста, как заставить sendmail принимать почту только от указанных мной серверов? Именно серверов, т.к. полное блокирование почты с хоста или домена тут не подойдет. Т.е. если на какой-то машине у меня в локалке стоИт почтовый клиент, и юзер с него пишет - ОК, почта sendmail-ом принимается, а если на этой же машине в локалке стоИт еще и сервак, который как-то релеет через себя почту - от него уже не принимается.

Желательно решение на уровне правки sendmail.mc, чтобы в .cf напрямую не копаться, ибо хлопотно это весьма.


С уважением, Сергей.


Содержание

Сообщения в этом обсуждении
"как заставить sendmail принимать почту только от указанных с..."
Отправлено Purple , 16-Июн-04 06:51 
>Добрый день всем!
>
>Подскажите, пожалуйста, как заставить sendmail принимать почту только от указанных мной серверов?
>Именно серверов, т.к. полное блокирование почты с хоста или домена тут
>не подойдет. Т.е. если на какой-то машине у меня в локалке
>стоИт почтовый клиент, и юзер с него пишет - ОК, почта
>sendmail-ом принимается, а если на этой же машине в локалке стоИт
>еще и сервак, который как-то релеет через себя почту - от
>него уже не принимается.
Поставь на сервак SNAT(MASQUERADE).
Начнешь разбираться что такое SNAT, вопросов не возникнет.



"как заставить sendmail принимать почту только от указанных с..."
Отправлено SergK , 16-Июн-04 10:26 
>>Подскажите, пожалуйста, как заставить sendmail принимать почту только от указанных мной серверов?
>>Именно серверов, т.к. полное блокирование почты с хоста или домена тут
>>не подойдет. Т.е. если на какой-то машине у меня в локалке
>>стоИт почтовый клиент, и юзер с него пишет - ОК, почта
>>sendmail-ом принимается, а если на этой же машине в локалке стоИт
>>еще и сервак, который как-то релеет через себя почту - от
>>него уже не принимается.
>Поставь на сервак SNAT(MASQUERADE).
>Начнешь разбираться что такое SNAT, вопросов не возникнет.
Правильно ли я понял, что говоря об SNAT, ты имел ввиду iptables, который на Linux? У меня на сервере FreeBSD, и ipfw, который я там использую, совсем не то же самое, что iptables... Да и как на уровне IP-пакета я могу отсеять серверные соединения от клиентских, если и те и те идут на одном 25-м порту и различаются только на уровне smtp-протокола? Или я что-то не так понял про SNAT?..

"как заставить sendmail принимать почту только от указанных с..."
Отправлено flusher , 17-Июн-04 13:33 
Здесь вариант копаться в заголовках...
На самом деле сендмыл не определит, что это.... клиент или сервер.
Можно к конкретному IP привязать одного пользователя....
Но это всё на уровне sendmail.cf

"как заставить sendmail принимать почту только от указанных с..."
Отправлено Medlar , 17-Июн-04 14:26 
Если это клиент, то в заголовке будет единственный подзаголовок "Received"

еСЛи это сервер, то он должен (согласно RFC-1123: " ... Every receiver-SMTP (not just one that "accepts a message for relaying or for final delivery" [SMTP:1]) MUST insert a "Received:" line at the beginning of a message... " ) добавить еще один подзаголовок "Received"

Вот для локальных клиентов можно добавить проверку на количество Received


"как заставить sendmail принимать почту только от указанных с..."
Отправлено SergK , 18-Июн-04 10:29 
>Если это клиент, то в заголовке будет единственный подзаголовок "Received"
>
>еСЛи это сервер, то он должен (согласно RFC-1123: " ... Every receiver-SMTP
>(not just one that "accepts a message for relaying or for
>final delivery" [SMTP:1]) MUST insert a "Received:" line at the beginning
>of a message... " ) добавить еще один подзаголовок "Received"
>
>Вот для локальных клиентов можно добавить проверку на количество Received

Интересно, а MIMEDefang или аналогичный milter тут может помочь (в разборе заголовков, в смысле)? Был ли опыт на эту тему?


"как заставить sendmail принимать почту только от указанных с..."
Отправлено SergK , 18-Июн-04 10:27 
>Здесь вариант копаться в заголовках...
>На самом деле сендмыл не определит, что это.... клиент или сервер.
>Можно к конкретному IP привязать одного пользователя....
>Но это всё на уровне sendmail.cf
Не получится. Поясню почему. Я заморочился с этим вопросом исключительно из-за почтовых червей. Причем - тех случаев, когда ни антивирус на сервере, ни спайдеры на рабочих станциях не отлавливают новенький сработавший червь (убеждать юзеров не открывать письма от неизвестных отправителей - бесполезно, тем более, когда эти юзеры - директорат). Т.е. приходится перестраховываться от "очень умных" вирусов, прикидывающихся mta, и доставляющих почту через себя "наружу", обходя всякие там smtp-auth, или вычитывая пароли из почтовых клиентов, и проч. Я понимаю, что это с моей стороны некая "паранойя", но уж лучше перестраховаться. Поэтому-то отделить "зерна от плевел" на каждом конкретном IP по самомУ IP скорее всего не удастся.

Хотя - не знаю, тожет быть и есть некие решения, позволяющие надежно перестраховаться от подобных рассылок из внутренней подсети наружу через "наружу смотрящий" sendmail, но я покамест знаю только одно, позволяющее практически на 100% перестраховаться от этого, и оно реализовано, но неудобно в использовании юзерами (да и мне, как админу, доставляющее лишние хлопоты), вот и хотелось чего-нибудь постандартнее и "попрямее".


"как заставить sendmail принимать почту только от указанных с..."
Отправлено Medlar , 18-Июн-04 17:06 
>Интересно, а MIMEDefang или аналогичный milter тут может помочь (в >разборе заголовков, в смысле)? Был ли опыт на эту тему?
Заголовки можно спокойно разобрать правилами sendmail'a

> Т.е. приходится перестраховываться от "очень умных" вирусов,
>прикидывающихся mta, и доставляющих почту через себя "наружу", обходя всякие там
>smtp-auth, или вычитывая пароли из почтовых клиентов, и проч.

Никакими правками в конфиге твоего sendmail'a либо использованием Milter такую деятельность не остановить. Почтовые черви действуют без участия твоего почтовика.

На тот случай, когда зараженный комп действует как mta, можно на шлюзе заблокировать исходящий с 25 порта трафик со всех компов, кроме почтовика.

Бывает, почта с зараженного компа рассылается через совершенно посторонний почтовик, чьи координаты прописаны в теле червя.
Тогда можно разрешить исходящим во внешний мир пакетам, адресованным 25 портам, исходить только от твоего почтовика.


"как заставить sendmail принимать почту только от указанных с..."
Отправлено SergK , 21-Июн-04 10:56 
>>Интересно, а MIMEDefang или аналогичный milter тут может помочь (в >разборе заголовков, в смысле)? Был ли опыт на эту тему?
>Заголовки можно спокойно разобрать правилами sendmail'a
>
>> Т.е. приходится перестраховываться от "очень умных" вирусов,
>>прикидывающихся mta, и доставляющих почту через себя "наружу", обходя всякие там
>>smtp-auth, или вычитывая пароли из почтовых клиентов, и проч.
>
>Никакими правками в конфиге твоего sendmail'a либо использованием Milter такую деятельность не остановить. Почтовые черви действуют без участия твоего почтовика.
Не согласен: я их сейчас реально останавливаю, но это неудобно для пользователя (нужнО его подтверждение на отправку каждого их писем, уходящих с его ящика). И хочу сделать удобнее, но получается, что то, что удобнее для пользователя может оказаться сильно неудобно в реализации (заголовки хитрым образом фильтровать, и проч.).

>На тот случай, когда зараженный комп действует как mta, можно на шлюзе
>заблокировать исходящий с 25 порта трафик со всех компов, кроме почтовика.
А смысл? У меня сейчас и так прямого выходя с клиентов вовне нету, есть только на локальный почтовик и локальный же прокси, но и локальный почтовик не всегда правильно ловит те вирусы, которые рассылают юзеры.


"как заставить sendmail принимать почту только от указанных с..."
Отправлено KAV , 18-Июн-04 18:06 
>не подойдет. Т.е. если на какой-то машине у меня в локалке
>стоИт почтовый клиент, и юзер с него пишет - ОК, почта
>sendmail-ом принимается, а если на этой же машине в локалке стоИт
>еще и сервак, который как-то релеет через себя почту - от
>него уже не принимается.
Не выйдет такого... Такое возможно, если ты поставишь файрвол класса ZoneAlarm или аналогичный на каждой юзерской тачке и запретишь там выход наружу по 25 порту всем, кроме почтовика.

"как заставить sendmail принимать почту только от указанных с..."
Отправлено U , 18-Июн-04 18:39 
Доверительных сетей не бывает !
Для локальных пользователей должен быть открыт только свой прокси, днс, время, поп и смтп на сервере - все

никакого ната - в каждом конкретном случае - разрешаешь только то,что нужно ... и не более


"как заставить sendmail принимать почту только от указанных с..."
Отправлено SergK , 21-Июн-04 11:06 
>Доверительных сетей не бывает !
>Для локальных пользователей должен быть открыт только свой прокси, днс, время, поп
>и смтп на сервере - все
>
>никакого ната - в каждом конкретном случае - разрешаешь только то,что нужно
>... и не более
Я не говорил про "доверительные сети", а говорил о работе клиентов в локальной сети, т.е. вопрос касался локалки.

"как заставить sendmail принимать почту только от указанных с..."
Отправлено SergK , 21-Июн-04 11:04 
>>не подойдет. Т.е. если на какой-то машине у меня в локалке
>>стоИт почтовый клиент, и юзер с него пишет - ОК, почта
>>sendmail-ом принимается, а если на этой же машине в локалке стоИт
>>еще и сервак, который как-то релеет через себя почту - от
>>него уже не принимается.
>Не выйдет такого... Такое возможно, если ты поставишь файрвол класса ZoneAlarm или
>аналогичный на каждой юзерской тачке и запретишь там выход наружу по
>25 порту всем, кроме почтовика.
Так не пойдет: локальный червь может обойти ZoneAlarm, или иной firewall (что некоторые вирусы сейчас и делают). Ищется решение, которое было бы максимально изолировано от логики и возможной "навороченности" червя, не теша себя надеждами на "глупых червей". Т.е. решение желательно serverside, т.к. на клиенте, как мы полагаем, "орудует червь", а он может делать все, что захочет.