Я запускаю виртуальный почтовый сервер с помощью Postfix, который пересылает электронные письма на адрес domain.com
в определенные учетные записи Gmail / Hotmail. Этот же сервер также действует как почтовый ретранслятор и использует saslauthd
чтобы стороны могли входить в систему и отправлять электронные письма под domain.com.
В настоящее время этот почтовый ретранслятор работает только с портом 25 через TLS (вы можете получить к нему доступ, создав, например, адрес электронной почты только для отправки в Gmail). Должен ли я открыть для этой цели порт 587 вместо порта 25? Если да, нужно ли мне отключить доступ к ретрансляции почты через порт 25 (поскольку я читал, что 587 используется более 25, чтобы уменьшить спам)?
Как мне это сделать? Это так просто, как добавить submission
порт в master.cf
в Postfix?
В подчинение порт 587
не используется напрямую для уменьшения количества спама, но необходимость в другом порту действительно возникает из-за борьбы со спамом: порт SMTP 25
обычно закрывается интернет-провайдером при каждом подключении к Интернету потребительского уровня и во всех других сетях, в которых не должно быть почтовых серверов. Это предотвращает прямое взаимодействие зараженных компьютеров с принимающими серверами, но в качестве побочного эффекта также не позволяет вашим аутентифицированным пользователям использовать ретранслятор. Ответ на вопрос "я должен" смотря как от того, сталкиваются ли ваши пользователи с этими проблемами. Это возможно - да.
Кроме того, есть другие причины использования отдельного порта для подчинение становится удобным. Для такой настройки вы не используете порт 25
для исходящей почты, что позволяет использовать отдельные настройки (например, smtpd_sender_restrictions
/ smtpd_recipient_restrictions
) для SMTP и отправки.
Для входящей почты на 25
вы обычно выполняете множество проверок, таких как SPF, DMARC, DNS BL. Эти проверки не очень полезны для аутентифицированных соединений, не так ли? Вы можете просто пропустить их на них на подчинение.
smtpd_recipient_restrictions =
permit_mynetworks,
reject_unauth_destination,
reject_invalid_hostname,
reject_unauth_pipelining,
reject_non_fqdn_sender,
reject_unknown_sender_domain,
reject_non_fqdn_recipient,
reject_unknown_recipient_domain,
. . .
check_policy_service unix:private/policy-spf,
reject_rbl_client sbl-xbl.spamhaus.org,
. . .
permit
Получатель ограничения ?! Большинство из них на самом деле являются ограничениями для отправитель, но мне нравится запускать их только после команды SMTP RCPT TO
для получения дополнительной информации об отладке, например на ложных срабатываниях.
Для электронной почты подчинение на 587
вам могут потребоваться различные проверки для аутентифицированных пользователей. (Эти настройки идут в master.cf
и отменяет настройки в main.cf
. Сначала мы включаем аутентификацию SASL; эта конфигурация незакончена, поскольку она зависит от вашего поставщика SASL. Голубятня?)
submission inet n - - - - smtpd
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
. . .
Вы же не хотите, чтобы каждый пользователь мог отправлять почту от имени других пользователей? Это особенно важно, если вы подписываете сообщения DKIM. Можно привязать адреса к определенным именам пользователей. В следующем примере эти пары адрес / имя пользователя уже определены для virtual_alias_maps
в формате, который мы также можем использовать здесь, но для вашей настройки, скорее всего, потребуется другое сопоставление, поскольку у вас нет локальных почтовых ящиков.
-o smtpd_sender_login_maps=hash:/etc/postfix/virtual
-o smtpd_sender_restrictions=reject_sender_login_mismatch
. . .
Тогда вы не хотите принимать почту на несуществующие домены и т. Д., Точно так же, как вы не хотите получать почту от таких доменов на smtpd_recipient_restrictions
для порта 25
. Только то, что сейчас они фактически проверяют адреса получателей. В той же строке (разрыв строки предназначен только для форматирования) вы можете применить аутентификацию SASL, отклонив все, что не аутентифицировано.
-o smtpd_recipient_restrictions=reject_non_fqdn_recipient,
reject_unknown_recipient_domain,permit_sasl_authenticated,reject
. . .