配置 postfix 以强制一个域的客户端证书认证

配置 postfix 以强制一个域的客户端证书认证

我有一台 Postfix 服务器,用于处理多个域的邮件。如果客户端请求 ist,服务器将使用 TLS 加密,但出于兼容性原因,目前不强制执行。

现在有一个新的域,该服务器应该为其处理邮件,应该强制执行 TLS,并且客户端必须使用客户端证书进行身份验证。

是否可以针对此场景配置 postfix,同时不更改所有其他域的设置?如果可以,该怎么做?

答案1

单个实例无法实现这一点smtpd,但您可以smtpd通过 配置多个实例master.cf,因为您已经应该有一个实例用于处理端口上的传入邮件25,另一个实例用于处理端口上的出站邮件465(每个隐式 TLSRFC 8314,3587提交使用纯文本和 STARTTLS。

我建议587为旧客户端配置端口,因为它已经支持纯文本并且 TLS 仅通过 STARTTLS 可用,而在端口上465TLS 握手立即开始 - 这完全符合新域的要求。

我们假设example.com这是遗留域和example.net受保护的域。

关键在于:

  1. 使用不同的myhostname配置
  2. 限制允许的发件人地址 smtpd_sender_restrictions=reject_unlisted_sender

master.cf

# Legacy access on submission port 587 for example.com
submission  inet  n  -  -  -  -  smtpd
  -o myhostname=example.com
  -o smtpd_tls_security_level=may
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_sasl_type=dovecot
  -o smtpd_sasl_path=private/auth
  -o smtpd_sasl_security_options=noanonymous
  -o smtpd_sasl_local_domain=$myhostname
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o smtpd_sender_restrictions=reject_unlisted_sender
  -o { smtpd_recipient_restrictions=
         reject_non_fqdn_recipient,
         reject_unknown_recipient_domain,
         permit_sasl_authenticated, reject }

# Client certificate required on port 465 for example.net
smtps inet  n  -  -  -  -  smtpd
  -o myhostname=example.net
  -o smtpd_tls_wrappermode=yes
  -o smtpd_tls_req_ccert=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_sasl_type=dovecot
  -o smtpd_sasl_path=private/auth
  -o smtpd_sasl_security_options=noanonymous
  -o smtpd_sasl_local_domain=$myhostname
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o smtpd_sender_restrictions=reject_unlisted_sender
  -o { smtpd_recipient_restrictions=
         reject_non_fqdn_recipient,
         reject_unknown_recipient_domain,
         permit_sasl_authenticated, reject }

您甚至可以强制某些用户只能使用某些地址,这适用于两种配置,例如,

  -o smtpd_sender_login_maps=hash:/etc/postfix/virtual
  -o { smtpd_sender_restrictions =
         reject_unlisted_sender,
         reject_sender_login_mismatch }

相关内容