Postfix: отключить аутентификацию через порт 25

12

При использовании Postfixи IMAPна почтовом сервере обычно открываются как минимум 3 порта

25 smtp   : incoming emails from anybody (whole internet)
465 smtps : outgoing emails from authorized users (to the whole intenet)
993 imap  : imap for authorized users

Я хотел бы настроить postfix, чтобы авторизованные пользователи могли отправлять электронную почту только через 465. По умолчанию это не так. Пользователи также могут использовать STARTTLS через порт 25. Я хотел бы отключить это.

Я планирую использовать порт 25 для публики, отправляющей мне электронную почту

использовать порт 465 для моих пользователей (я могу использовать брандмауэр, чтобы разрешить определенные диапазоны IP, или использовать пользовательский порт)

Это предотвратит использование порта 25 от атак методом "грубой силы", когда хакеры пытаются угадать имя пользователя / пароль. Порт 25 просто не будет принимать имя пользователя / пароль, даже если он действителен. А поскольку порт 465 ограничен брандмауэром, хакеры также не могут использовать 465.

Возможно ли это в Postfix?

Я использую Postfix 2.9.6-2 на Debian Wheezy

Мартин Вегтер
источник
1
Я знаю, что это старый, но вы всегда должны разрешить порт 587 (отправка), так как это правильный порт.
lbutlr

Ответы:

14

ПРЕДУПРЕЖДЕНИЕ
. Запрос не соответствует рекомендациям по обеспечению безопасности, поскольку вы отключаете TLS (шифрование) на своем главном порте ретрансляции почты, предоставляя данные, передаваемые через этот порт, сторонним прослушивателям и / или модификации в полете. Приведенный ниже ответ удовлетворяет запросу, но передовая практика требует STARTTLS и для соединения через порт 25.

master.cfФайл (обычно /etc/postfix/master.cf) управляет запуском и конфигурации конкретных служб Postfix. Такая конфигурация в этом файле, согласно документации, будет делать то, что вы хотите:

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

smtps inet  n  -  -  -  -  smtpd
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject

Эта конфигурация отключает аутентификацию и опцию STARTTLS на порту 25. Она включает опцию STARTTLS на порту 465, требует использования STARTTLS, включает аутентификацию и позволяет клиентам подключаться только при аутентификации.

Вы также можете посмотреть smtpd_tls_wrappermodeопцию принудительного установления истинных соединений TLS (а не соединений STARTTLS).

Обратите внимание, что этот вид конфигурации может усложнить отслеживание конфигурации Postfix (параметры могут быть установлены, main.cfа затем переопределены master.cf). Другой вариант - запустить несколько экземпляров Postfix, каждый из которых имеет свои собственные main.cfфайлы конфигурации, в которых указаны эти параметры.

хрунтинг
источник
1
если бы были установлены конфликтующие варианты main.cf, какие из них предпочтительнее? Из того, что вы говорите, кажется, что master.cfпереопределяет main.cf. Это правильно?
Мартин Вегтер
1
Эти -oпараметры имеют приоритет в файлах конфигурации. master.cfФайл координирует запуск процессов, и если вы были для запуска процессов вручную с -oопциями, они переопределяют все , что указано в файле конфигурации.
Хрутинг
Не -o smtpd_tls_security_level=noneуничтожит ли TLS / не сделает все открытым текстом в случае, если какой-либо сервер пытается переслать электронную почту или другое SMTP-соединение между серверами на порт 25?
TCB13
Это -o smtpd_tls_security_level=noneдействительно предотвратит работу STARTTLS через порт 25 и, следовательно, сделает все общение в текстовом формате. Вот что задал вопрос.
хрунтинг
Я все еще опровергаю это по вышеуказанной причине. Выполнение запроса OP - это хорошо, но вы должны добавить предупреждение с большой буквы, что является очень плохой идеей. (Пожалуйста, позвольте мне вместо того, чтобы добавить вам голос, добавив это. ;-))
ntninja