龙空技术网

CentOS7 - 配置Postfix以使用TLS

运维阁 111

前言:

眼前小伙伴们对“centosbase64编码”都比较注重,大家都想要剖析一些“centosbase64编码”的相关文章。那么小编也在网上网罗了一些对于“centosbase64编码””的相关文章,希望看官们能喜欢,咱们一起来了解一下吧!

配置Postfix以使用TLS

实现邮件中继的身份验证是保护邮件服务器的重要一步。 但是,正如您在上一个配方中了解到的那样,用户的名称和密码以明文形式发送。 Base64编码仅使用ASCII字符对二进制数据进行编码,例如,允许用户密码中包含非ASCII字符,但编码不是加密。 如果用户的邮件客户端和服务器之间的流量发生在不受信任的网络上,则恶意用户可以轻松捕获凭据并伪装成用户。 此配方通过配置传输层安全性(TLS)加密来进一步保护Postfix,以保护通信免受窃听.

准备

此配方需要一个CentOS系统,其Postfix配置如前面的配方中所述。 通过使用rootaccount登录或通过使用sudo,还需要管理权限.

怎么做

请按照以下步骤配置Postfix以使用TLS:

使用openssl生成新的密钥文件和安全证书:

openssl req -newkey rsa:2048 -nodes \ -keyout /etc/pki/tls/private/mail.example.key \ -x509 -days 730 -subj "/CN=mail.example.com" -text \ -out /etc/pki/tls/certs/mail.example.pem
使用文本编辑器打开/etc/postfix/main.cf文件:
vi /etc/postfix/main.cf
在文件末尾,添加以下选项和值:
smtpd_tls_security_level = maysmtpd_tls_cert_file = /etc/pki/tls/certs/mail.example.pemsmtpd_tls_key_file = /etc/pki/tls/private/mail.example.key
保存更改并关闭文件.重启Postfix:
systemctl restart postfix.service
工作原理

SSL / TLS通信需要加密密钥和确认密钥所有权的安全证书。 自签名证书足以供个人使用或与专用网络上的服务一起使用,因此本食谱向我们展示了如何使用openssl自行生成:

openssl req -newkey rsa:2048 -nodes \  -keyout /etc/pki/tls/private/mail.example.key \  -x509 -days 730 -subj "/CN=mail.example.com" -text \  -out /etc/pki/tls/certs/mail.example.pem

req选项生成一个新的证书请求,-newkey要求openssl生成一个新的私钥,并在签署证书时使用该密钥(这就是我们所说的自签名证书时的意思)。 rsa:2048表示该密钥将是一个2,048位的RSA密钥。 基于对计算能力增加的速率的估计,在2030年左右之前,通常认为2,048位密钥足以抵抗攻击。 除此之外,3,072位密钥被认为是合适的。 -nodes可防止密钥文件使用密码加密。 重要的是不要用密码加密密钥文件,因为Postfix需要访问密钥。 如果它是加密的,我们需要在每次启动Postfix时提供密码来解密密钥.

-x509指定证书将是X.509证书(SSL和TLS连接使用的类型),-days将证书的到期日期设置为将来的天数,在本例中为730天(3年)。 -subj用于指定证书的CN(公用名)字段的值,该字段应该是证书标识的系统的主机名或IP地址。 或者,您可以省略参数,openssl也会以交互方式提示您输入其他许多字段的值。 最后,-text参数指定证书应编码为文本,因为这是Postfix期望的格式:

可以在证书中嵌入更多识别信息

一个自签名证书基本上说,这是我的加密密钥。 你知道这是我的,因为我这么说。 如果您的系统服务是供公众使用的,那么您很可能需要投资由受信任的证书颁发机构(CA)签署的证书。 值得信赖的证书说,你可以相信钥匙是我的,因为共同的朋友会为我担保。 要获取可信证书,您需要证书签名请求(CSR):

openssl req -new -newkey rsa:2048 -nodes \ -keyout mail.example.key -out mail.example.csr

然后,您将资金和CSR发送给CA. 等待一会儿之后,您将收到证书.

注意

通过依赖于CA和请求的细节,可信证书可能变得非常昂贵。 并且信任不再像过去那样。 当发现一家知名CA的员工签署伪造证书时,丑闻爆发,据报道是出于内部测试目的。 人们只能怀疑对信任网缺乏监督。 希望最坏的情况落后于我们。 浏览器供应商开始推动更严格的指导方针和更多的审计。 还有一些项目,例如Let's Encrypt,可以免费自动生成安全可信证书.

接下来,我们将必要的配置参数添加到Postfix的main.cf文件中:

 smtpd_tls_security_level = may smtpd_tls_cert_file = /etc/pki/tls/certs/mail.example.pem smtpd_tls_key_file = /etc/pki/tls/private/mail.example.key

smtp_tls_security_level配置Postfix与加密连接相关的强制执行行为。 可以启用机会性TLS-服务器通告加密,客户端可以利用它,但不需要使用它。 您还可以将参数设置为encrypt以强制使用加密。

smtpd_tls_cert_file和smtpd_tls_key_file分别指定自签名证书的路径和我们之前生成的加密密钥。 如果您使用的是受信任的证书,那么您还需要为smtpd_tls_CAfile参数提供一个标识签名CA的公共证书的值。

如果您发现协商安全连接的速度很慢,则可以尝试一些调整参数。 例如,我们可以使用tls_random_source显式指定Postfix使用的熵源:

 tls_random_source = dev:/dev/urandom

此外,我们可以缓存服务器和邮件客户端之间加密会话的详细信息。 smtpd_tls_session_cache_database参数定义Postfix将存储缓存详细信息的文件,smtpd_tls_session_cache_timeout指定缓存会话的时间。 这减少了每次客户端连接时建立新会话的开销:

 smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_tls_cache smtpd_tls_session_cache_timeout = 3600s

要测试配置,可以使用telnet连接并发出STARTTLS命令。 Postfix应该响应它已准备好开始协商安全连接:

STARTTLS220 Ready to start TLS
See also

Refer to the following resources for working with Postfix and TLS:

Postfix TLS Support ()Wikipedia: Public Key Infrastructure ()OpenSSL Essentials: Working with SSL Certificates, Private Keys, and CSRs ()

标签: #centosbase64编码