Назад | Перейти на главную страницу

Постфикс: разрешить SMTP AUTH только для указанных диапазонов IP-адресов

можно ли реализовать Ограничение на основе IP-адреса для SMTP AUTH в Postfix?

Сценарий: я использую почтовый сервер Postfix, который принимает почту со всего Интернета. Но сервер не только принимает почту, но и позволяет своим аутентифицированным пользователям отправлять письма внутренним или внешним пользователям. Пока никаких проблем.

К сожалению, я всегда немного пугаюсь при чтении файлов журнала. Ежедневно происходят тысячи неудачных незаконных попыток входа в систему с IP-адресов со всего мира.

Но на самом деле легитимные хосты-отправители поступают только из нескольких известных диапазонов IP-адресов. Так что я знаю только кто-то из (например)

мощь даже быть законным отправителем. (Я знаю, что IP-адрес, указанный в приведенном выше примере, искажен. Я просто не хотел раскрывать настоящие.)

Так что, если отправитель приходит из другого диапазона IP-адресов, он наверняка никому из моих пользователей и поэтому не имеет права передавать что-либо.

Я не хочу, чтобы кто-то не из этих подсетей мог ретранслировать четный если он выясняет допустимую комбинацию имени пользователя и пароля для SMTP AUTH. Если он из диапазона IP-адресов, не включенных в белый список, он не должен отправлять. Ни при каких условиях. Так permit_sasl_authenticated одного недостаточно. Пока кто-то из "определенный" страны (я не хочу называть их явно ...) могут входить в систему с украденными / перебором / шпионскими учетными данными, это недостаточно безопасно. :-) (Подумайте о социальной инженерии, троянских кейлоггерах, которые крадут данные учетных записей, легкомысленных пользователях с легко угадываемыми паролями и т. Д.)

=> Итак, возможно ли реализовать ограничение IP-адреса для попыток входа в систему с помощью SMTP AUTH? (Это не должно влиять на получение входящих писем. Для этого у меня есть policyd-weight и т.д. Здесь речь идет только об исходящих / подлежащих ретрансляции письмах.)

Решения, которые не будет работать:

Как насчет того, чтобы поставить SMTP AUTH на другой порт, например 587, и использовать iptables для ограничения доступа к этому порту? 587 - это не скрытый порт, это порт отправки почты, определенный RFC. Почта к вам приходит 25, почта через вас должна идти более 587.

http://tools.ietf.org/html/rfc6409

Вы хотите использовать отрицательную форму smtpd_sasl_exceptions_networks.

smtpd_sasl_exceptions_networks = !134.500.0.0/16 !134.700.42.0/24 !134.800.133.7

Вас также может заинтересовать smtpd_client_connection_rate_limit.

Ежедневно происходят тысячи неудачных незаконных попыток входа в систему с IP-адресов со всего мира.

установите fail2ban и настройте существующий или создайте новый фильтр для их перехвата. Я использую:

failregex =\[<HOST>\]\: SASL LOGIN authentication failed

Я бы посоветовал вам использовать HIDS, например OSSEC для временной блокировки IP-адресов, которые пытались войти в систему. Вы также можете добавить правило в OSSEC, чтобы исключить ваши доверенные сети из этого правила, чтобы законные пользователи не блокировались после нескольких попыток.

Я предлагаю это, поскольку не думаю, что Postfix действительно может дополнить my_networks и SASL.