LINUX.ORG.RU
ФорумAdmin

Postfix. Защита с наружи

 ,


0

1

Добрый день о великие гуру Постфикса и системного администрирования. Дайте пендаля в нужном направлении :)

Почтовый сервер Postfix + Dovecot

Возможно ли какими нибудь правилами разрешить прием почты на свой сервер по 25 порту, но защититься от попыток авторизации на 25 порту для пересылки письма?

Fail2ban реализовано. А как сделать так, что бы при включенном sasl я с наружи не мог стать мобильным клиентом, и был защищен от подбора паролей на 25 порту? Какое правило запретит мобильный доступ из вне, но разрешит получение письма своему домену?

Отключите возможность аутентификаци на 25-м и тогда на него сможете принимать сообщения для своего домена(-ов). Hint: делается через master.cf

trancefer ★★
()

вокни postscreen на 25 порт, а smtp с авторизацией на 587. postscreen проксирует подключения и помогает снимать нагрузку. на него можно повесить правила и блэклист.

constin ★★★★
()
Ответ на: комментарий от constin

впрочем, ответ выше был более по существу

constin ★★★★
()

с наружи

Посади на Ружу пит буля.

svr4
()
Ответ на: комментарий от trancefer

Если я правильно, то алгоритм моих действий, без использования postscreen, должен быть таков: В main.cf я отключаю sasl. В master.cf submission inet n - n - - smtpd -o smtpd_tls_security_level=may -o smtpd_sasl_auth_enable=yes Тем самым включаю на 587 порту прием писем с включенной Sasl и возможного использования TLS Мне останется на внешнем интерфейсе закрыть файерволом 587 порт?

А postfix по умолчанию разрешает прохождение с perminnetworks 25 порт не зависимо от наличия авторизации сасловой?

vehpbkrby
() автор топика

Заметил, что последнее время боты активизировались. До сотни ботов в день пробуют аутифицироваться. Я сделал их через fail2ban. Дописал правило которое их банит после второго неудачного подбора. Баннит НАВСЕГДА. До перезагрузки сервера конечно. Поголовье ботов сократилось до 2-3 в сутки.

Bootmen ☆☆☆
()
Ответ на: комментарий от Bootmen

Вот это правило (заменить старое):

/etc/fail2ban/jail.local

#

[sasl]

enabled = true

port = smtp,ssmtp,submission,imap2,imap3,imaps,pop3,pop3s

filter = sasl

findtime = 20800

maxretry = 2

bantime = -1

action = route

#

Bootmen ☆☆☆
()
Ответ на: комментарий от Bootmen

Я сделал и после преезагрузки. Я по крону все таблицы из ПФ укладываю в файлы. Файл ту бан укладывает злых в таблицы - крон в файлы

vehpbkrby
() автор топика
Ответ на: комментарий от vehpbkrby

Ну у меня немного сложнее. Накарябал скрипт который парсит логи файтубана (запуск вручную) выбирает строки sasl и добавляет их в другой скрипт лежащий в автозагрузке. А там работают правила iptables

Bootmen ☆☆☆
()
Ответ на: комментарий от vehpbkrby

ну около того, да только тебе еще надо на 25 порту авторизацию отрубить

smtp inet n - - - - smtpd -o smtpd_tls_security_level=none -o smtpd_sasl_auth_enable=no

А postfix по умолчанию разрешает прохождение с perminnetworks 25 порт не зависимо от наличия авторизации сасловой?

по умолчанию нет. воткни permit_mynetworks первой строчкой в списке smtpd_sender_restrictions или ,скорее, в smtpd_client_restrictions

constin ★★★★
()

с наружи

Защищай из нутри.

anonymous
()
Ответ на: комментарий от constin

воткни permit_mynetworks первой строчкой в списке smtpd_sender_restrictions или ,скорее, в smtpd_client_restrictions

Плохая идея. Разрешает узерам (и зараженным ПК) из локалки творить что хотят без аутификации.

Bootmen ☆☆☆
()
Ответ на: комментарий от Bootmen

Плохая идея. Разрешает узерам (и зараженным ПК) из локалки творить что хотят без аутификации.

это зависит от того, что прописано в mynetworks. Я ответил на его вопрос. Он хочет , чтобы 587 смотрел в локальный интерфейс, а 25 смотрел наружу, не принимая авторизацию, но при этом, видимо, пропускал почту с некоторых хостов, которые можно прописать в mynetworks. вместо permit_mynetworks можно использовать какой-нибудь check_client_access. Главное суть.

P.S. спамботы не используют почтовый сервер локалки, а долбят прямым соединением. А если и используют, получая информацию с почтового клиента, то тогда уже с авторизацией.

constin ★★★★
()
Ответ на: комментарий от constin

Я про спамботов в локалке не упоминал. Вирусы бывают разные. Смена порта вешь самая простая. Однако предстоит грандиозная беготня по этажам конторы для перестройки почтовых клиентов. Хотя можно выкрутится другими средствами не выходя из каморки админа.

Bootmen ☆☆☆
()
Ответ на: комментарий от Bootmen

Например небольшой скрип в автозагрузке c правилами iptatables. Перекидывающий пакеты пришедшие на 25 порт из локалки на порт 587.

Bootmen ☆☆☆
()
Ответ на: комментарий от vehpbkrby

Почти так, только на 25-м отлючаете sasl_auth. Закрывать или нет фаером 587й — дело ваше.

По уму в my_networks должен быть пуст или масксимум содержать 127.0.0.1.

trancefer ★★
()
Ответ на: комментарий от Bootmen

Дописал правило которое их банит после второго неудачного подбора. Баннит НАВСЕГДА.

имхо не лучшее решение. Просто несколько вариантов.
1. Настраиваете почтовый клиент вводите пароль руками, ошиблись один раз, ошиблись второй и привет, руками правила f2b править?
2. Тоже самое с копипастой, зачастую пользователи копипастят какой-нибудь пробел в конце или перевод строки, к гадалке не ходи что два раза повторят.
3. Теже варианты, но предположим это произошло в каком-то удаленном филиале, так из-за двух ошибок весь филиал без почты останется.
Это касается не только первичной настройки клиента, некоторые почтовые клиенты при любом сбое «считают» что не правильный пароль, т.е. вылетает окно для ввода пароля (а особо злобные поле ввода вообще пустым оставляют) далее см. пункты 1 и 2.
При большом кол-ве пользователей да еще разбросанных по разным часовым поясам это может стать адом для админа.

anc ★★★★★
()
Ответ на: комментарий от anc

Тут все просто. В fail2ban есть простенькая опция: ignore: Куда и вносятся IP на которые файтубан не реагирует. Что, я и использую для своих филиалов-узеров.

Bootmen ☆☆☆
()
Ответ на: комментарий от Bootmen

Можно включать и сети типа ignore = 111.111.111.1/24 (если ip узера динамика) В игноре у меня сети сотовых операторов. Так как не наблюдал ни разу подбора паролей с этих адресов.

Bootmen ☆☆☆
()
Ответ на: комментарий от Bootmen

Это только пункт три, и то при учете что у всех белый статик. Пункт1 и 2, остаются в силе. В том числе ошибки при наборе пароля часто замечены у мобильных клиентов, т.е. в бан могут попадать ip из пулов мобильных провов и вы можите даже не узнать о этом, например клиент попробовал не получилось, решил позже, ip уже другой получил настроил заработало, но предыдущий ip у вас так в бане и останется, со временем можно накопить неплохой «запас» включая ip публичных wifi. Кстати в тему белых статиков и wifi вообще, не «в этой стране» в бизнес центрах это вообще не модно, более того даже по требованию не могут вам предоставить белый статик.

anc ★★★★★
()
Ответ на: комментарий от Bootmen

В игноре у меня сети сотовых операторов.

Всех со всего мира? :) И не забываем что они могут менять список подсетей не оповещая вас об этом. :)
Я не говорю что ваша идея концептуально не правильная, но банить из-за всего двух попыток имхо перебор.
Еще как пример, какой-нибудь выездной конгресс, куда куча юзверей приезжает и из-за сбоя у одного без почты могут остаться все остальные, а на подобных мероприятиях она очень нужна.

anc ★★★★★
()
Последнее исправление: anc (всего исправлений: 2)
Ответ на: комментарий от constin

Спасибо большое за наводку. Подскажите, а какова тогда приоритизация main и master (я так понимаю что мастер имеет более высокий приоритет)? А тогда правила которые в main.cf - Они будут распространятся на каждый из процессов, например и на smtp И на smtps?

vehpbkrby
() автор топика
Ответ на: комментарий от anc

но предыдущий ip у вас так в бане и останется, со временем можно накопить неплохой «запас» включая ip публичных wifi.

У меня ведь не майлру и узеров в Бразилии нет. В бане никто не останется. так как:

action = route

То бишь бан не вносится в iptables. таблица банов просматривается простенько командой route. Снос всей таблицы еще проще: init 6 :)

Bootmen ☆☆☆
()
Ответ на: комментарий от constin

У меня не понимание. Подскажите пожалуйста. В мэйне.

smtpd_sasl_type = dovecot

smtpd_sasl_path = private/auth

smtpd_sasl_auth_enable = yes

smtpd_tls_auth_only = yes И еще указаны пути для ключей.

В мастере. smtp inet n - n - - smtpd smtpd pass - - n - - smtpd smtps inet n - n - - smtpd

-o syslog_name=postfix/smtps

-o smtpd_tls_wrappermode=yes

-o smtpd_sasl_auth_enable=yes

-o smtpd_tls_security_level=encrypt

-o smtpd_client_restrictions=permit_sasl_authenticated,reject

Я включил 465 и 25 порт. В мэйне указана авторизация: smtpd_sasl_auth_enable = yes Но письма то приходят из вне, хоть и по идее то не должны идти с включенной авторизацией!!!

vehpbkrby
() автор топика
Ответ на: комментарий от vehpbkrby

В мастере оставил: smtp inet n - n - - smtpd

# -o smtpd_relay_restrictions=reject

smtpd pass - - n - - smtpd

Остальное все закомментировано.

Мэйн.сф

sendmail_path = /usr/local/sbin/sendmail

newaliases_path = /usr/local/bin/newaliases

mailq_path = /usr/local/bin/mailq

setgid_group = maildrop

html_directory = /usr/local/share/doc/postfix

manpage_directory = /usr/local/man

sample_directory = /usr/local/etc/postfix

readme_directory = /usr/local/share/doc/postfix

inet_protocols = ipv4

meta_directory = /usr/local/libexec/postfix

shlib_directory = /usr/local/lib/postfix

myorigin = moidomen.pro

mydestination = $myhostname, localhost.$mydomain, $mydomain, localhost myhostname = mail.moidomen.pro

mynetworks = 192.168.0.0/16

mydomain = moidomen.pro

home_mailbox = Maildir/

mail_spool_directory = /mnt_maildir

# nastroika SASL

smtpd_sasl_type = dovecot

smtpd_sasl_path = private/auth

mailbox_command = /usr/local/bin/procmail

message_size_limit=81200000 mailbox_size_limit=0

smtpd_tls_auth_only = yes

#kluchi dobavlyaem

smtpd_tls_cert_file = /etc/ssl/certs/postfix.pem

smtpd_tls_key_file = /etc/ssl/private/postfix.pem

smtpd_tls_loglevel = 1

smtp_sasl_auth_enable = yes

Дайте плиз понять, почему идут письма откуда угодно и куда угодно (из внешней в локальную из локальной во внешнюю) !!!!??? Особенно не понятно почему внешка идет!?

vehpbkrby
() автор топика
Ответ на: комментарий от Bootmen

У меня ведь не майлру и узеров в Бразилии нет.

Ну у меня именно в Бразилии тоже нет :) Но забугорные есть, т.к. несколько клиентов работает с зарубежными компаниями. Это я к тому что не для всех такой вариант подходит, в моем случае и с вашим вариантом меня бы давно расстреляли :) Но если у вас все норм, то ок.

anc ★★★★★
()
Ответ на: комментарий от vehpbkrby

Нашел ответ.

Причина в настройках по дефолту с какой то там версии:

smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, defer_unauth_destination

Подскажите, а можно ли каким то чудным образом перенапрfвлять порты внутри одного интерфейса на Freebsd? Или это делается перенаправлением на лупбэк?

vehpbkrby
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.