В postfix, как применять tls + auth более 587, оставляя tls необязательным для 25

9

Я хотел бы разместить почтовые службы для некоторых доменов. Я успешно настроил постфикс, чтобы проконсультироваться с sql для этих виртуальных доменов. Что я хотел бы сделать, это:

  • Для соединений на 25:

    1. Запретить ретрансляцию (доставлять только получателям моих виртуальных доменов)
    2. Оставьте tls необязательным, но предлагайте аутентификацию, только если клиент делает tls
    3. Принимайте только клиентов, не включенных в черный список (например, ограничьте XBL + SBL + PBL от spamhaus) или клиентов, которые выполняют tls и auth («почтовые серверы друзей», которые настроены для аутентификации со мной с помощью auth и tls)
  • Для соединений на 587:

    1. Применять TLS и аутентификацию
    2. Разрешить ретрансляцию.
    3. Принимать только клиентов, не занесенных в черный список (черные списки, как указано выше, но не проверять PBL)

Мои вопросы:

  • О. Я знаю об опциях postfix для вышеупомянутого, но я не могу найти, как дифференцировать их на основе порта прослушивания.

  • B. Буду ли я сталкиваться с широко известными проблемами с якобы законными клиентами с вышеуказанной политикой?

Я новичок в настройке почтового сервера, извините за любые бессмысленные вопросы / предположения (пожалуйста, укажите это). Спасибо.

Paralife
источник

Ответы:

15

Это легко,

  1. В /etc/postfix/main.cfвас будут добавлять / изменять

    smtpd_tls_security_level=may
    

    так что по умолчанию TLS доступен (но необязательно).

  2. Затем /etc/postfix/master.cfвы переопределите его для порта 587 ( submissionпорт), переопределив параметр:

    submission inet n       -       n       -       -       smtpd
      -o smtpd_tls_security_level=encrypt
    

    Это требует TLS для всех подключений представления (порт 587).

Что касается отказа в ретрансляции, это значение по умолчанию; ретрансляция разрешена только для аутентифицированных пользователей и IP-адресов, указанных вами mynetworks.

Наконец, вы можете добавить черные списки main.cf, добавив smtpd_recipient_restrictions:

    reject_rbl_client zen.spamhaus.org,

или любые черные списки, которые вы хотите. Они должны появиться в конце списка, перед финалом permit.


Одна последняя вещь. Дополнительные сведения о том, как предотвратить спам, см. В разделе « Борьба со спамом». Что я могу сделать как: администратор электронной почты, владелец домена или пользователь?

Майкл Хэмптон
источник
Спасибо, только одна расплывчатая точка: на порту 25 я хочу безоговорочно отрицать ретрансляцию, независимо от того, аутентифицирован ли клиент или нет.
Паралиф
Аутентификация на порту 25 по умолчанию отключена. Но чтобы убедиться, убедитесь, что smtpd_sasl_auth_enableэто не в вашем, main.cfа также, что он не присутствует в smtpразделе вашего master.cf(но он должен быть установлен yesв submissionразделе). master.cfДолжен выглядеть так же, как это .
Майкл Хэмптон
Правильно, но я хочу включить опциональную аутентификацию + tls на 25. Я просто не хочу ретранслировать на 25. По сути, я хочу быть либеральным в отношении того, как кто-то подключается, но очень строг в отношении ретрансляции (отрицать все ретрансляции). Ретрансляция не должна быть разрешена, если она не установлена ​​на 587, а клиент авторизирован через tls. Любая другая комбинация должна отклонять ретрансляцию. Я, вероятно, просто удалим allow_sasl_authenticated из smtpd_relay_restrictions и добавлю его только в переопределения для 587 в master.cf. Спасибо.
Паралиф
Люди не должны даже пытаться авторизоваться на 25. Вы можете включить его, если хотите, но на самом деле не должны.
Майкл Хэмптон
3

Я не знаю ответа на вопрос Б, но А:

в postfix вы обычно master.cfопределяете каждый запущенный процесс, часто в /etc/postfix. В этом файле у вас есть одна запись для каждого работающего постфиксного сервиса, поэтому есть два разных для порта 25и порта 587. Для каждого из них вы также можете передать параметры, smtpdчтобы они имели разные настройки.

Вот пример с моего почтового сервера:

4.3.2.1:25      inet  n       -       -       -       -       smtpd
  -o smtpd_sasl_auth_enable=yes
4.3.2.1:10027   inet  n       -       -       -       -       smtpd
  -o mynetworks=91.190.245.4/32 127.0.0.0/8
  -o smtpd_client_restrictions=permit_mynetworks,reject
переигровка
источник