Мне всегда хотелось иметь собственный почтовый сервер. Не потому что крупные компании предлагающие услуги своих почтовых серверов читают почту своих клиентов, и не из за ограниченных возможностей данной услуги. В первую очередь забавы ради. До последнего времени это было достаточно затруднительно, из за платного домена, сертификатов и конечно отсутствия статичного адреса который также не бесплатен. Достаточно дорогая игрушка получается. Развертывание и обслуживание корпоративной почты не в счет, это другое, это работа.
Сейчас я не буду описывать как я реализовывал почтовик у себя дома, о этом в другой раз. Я опишу только одну из проблем с которой столкнулся буквально спустя несколько часов после старта, или скорее после факта открытия 25 порта на моём внешнем интерфейсе. Меня просто и незатейливо начали брутфорсить. Должен отметить что при обслуживании корпоративных почтовых систем я такого ни разу не наблюдал (видимо подсеть не та или мне просто везло).
На другой платформе я бы воспользовался как и всегда решением известным наверное любому, даже начинающему администратору, связкой exim+fail2ban+iptables, но не в данном случае. У меня просто ничего не вышло, exim работает на сетевом накопителе iomega с установленным Debian 7 в ядре которого напрочь отсутствует возможность работы с iptables. Проблему пришлось решать другими средствами.
Использованием черных списков.
Поскольку все источники атаки были из одной подсети, назовем её для примера 1.2.3.0/24, используем возможности самого exim и добавим проверку на этапе acl_smtp_connect на наличие адреса хоста в нашем черном списке.
В раздел правил acl файла конфигурации добавим следующий раздел:
А также в начало файла конфигурации, добавим определение списка узлов которое будем брать из файла bad_hosts расположенного в каталоге /etc/exim4
В двух словах работает это так: на этапе установления соединения с smtp сервером exim проверяет не значится ли желающий подключиться в нашем черном списке, если нет то все в порядке, но если да и клиент уже заработал на попадание в список, соединение принудительно обрывается после отсылки сообщения об ошибке.
ЗЫ. Мой описанный здесь опыт не претендует на уникальность, но возможно будет полезен тем кто впервые столкнулся с данной частной проблемой навигации в открытом интернете ;)
Материалы по теме:
http://bog.pp.ru/work/exim.html
https://www.lissyara.su/doc/exim/4.62/
https://www.lissyara.su/doc/exim/4.62/access_control_lists/
Сейчас я не буду описывать как я реализовывал почтовик у себя дома, о этом в другой раз. Я опишу только одну из проблем с которой столкнулся буквально спустя несколько часов после старта, или скорее после факта открытия 25 порта на моём внешнем интерфейсе. Меня просто и незатейливо начали брутфорсить. Должен отметить что при обслуживании корпоративных почтовых систем я такого ни разу не наблюдал (видимо подсеть не та или мне просто везло).
На другой платформе я бы воспользовался как и всегда решением известным наверное любому, даже начинающему администратору, связкой exim+fail2ban+iptables, но не в данном случае. У меня просто ничего не вышло, exim работает на сетевом накопителе iomega с установленным Debian 7 в ядре которого напрочь отсутствует возможность работы с iptables. Проблему пришлось решать другими средствами.
Использованием черных списков.
Поскольку все источники атаки были из одной подсети, назовем её для примера 1.2.3.0/24, используем возможности самого exim и добавим проверку на этапе acl_smtp_connect на наличие адреса хоста в нашем черном списке.
В раздел правил acl файла конфигурации добавим следующий раздел:
acl_check_connect:
# проверяем находиться ли отправитель в черном списке
drop message = "Your IP $sender_host_address in black list."
hosts = +bad_hosts
accept
# Список узлов и доменов от которых ничего не принимаем
hostlist bad_hosts = /etc/exim4/bad_hosts
Нужно создать файл /etc/exim4/bad_hosts со списком адресов и сетей от которых мы не желаем принимать соединения, примерно такого содержания:
1.2.3.0/24
Ну и конечно определение правил проверок
acl_smtp_connect = acl_check_connect
В двух словах работает это так: на этапе установления соединения с smtp сервером exim проверяет не значится ли желающий подключиться в нашем черном списке, если нет то все в порядке, но если да и клиент уже заработал на попадание в список, соединение принудительно обрывается после отсылки сообщения об ошибке.
ЗЫ. Мой описанный здесь опыт не претендует на уникальность, но возможно будет полезен тем кто впервые столкнулся с данной частной проблемой навигации в открытом интернете ;)
Материалы по теме:
http://bog.pp.ru/work/exim.html
https://www.lissyara.su/doc/exim/4.62/
https://www.lissyara.su/doc/exim/4.62/access_control_lists/
Комментариев нет:
Отправить комментарий