Top

在Debian上安装邮件系统

配置postfix smtp认证 证书

这部分需要修改两个文件:/etc/postfix/main.cf和/etc/postfix/master.cf
对于master.cf文件,将以下部分取消注释即可:
submission inet n       -       y       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_tls_auth_only=yes
  -o smtpd_reject_unlisted_recipient=no
  -o smtpd_client_restrictions=$mua_client_restrictions
  -o smtpd_helo_restrictions=$mua_helo_restrictions
  -o smtpd_sender_restrictions=$mua_sender_restrictions
  -o smtpd_recipient_restrictions=
  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING
smtps     inet  n       -       y       -       -       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_reject_unlisted_recipient=no
  -o smtpd_client_restrictions=$mua_client_restrictions
  -o smtpd_helo_restrictions=$mua_helo_restrictions
  -o smtpd_sender_restrictions=$mua_sender_restrictions
  -o smtpd_recipient_restrictions=
  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING
然后在main.cf中加入以下:
mua_client_restrictions = permit_sasl_authenticated, reject
mua_sender_restrictions = permit_sasl_authenticated, reject
mua_helo_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_hostname, reject_invalid_hostname, permit
然后重启postfix。
制作自认证证书:
# mkdir /etc/ssl/mailserver
# cd /etc/ssl/mailserver
# openssl genrsa -out mailserver.key
# openssl req -new -x509 -days 3650 -key mailserver.key -out mailserver.crt -subj "/C=CN/ST=GuangDong/L=GuangZhou/O=mycompany/OU=mydepartment/CN=mail.abc.com/CN=mail.xyz.com"
生成两个文件: 然后将/etc/dovecot/conf.d/10-ssl.conf和/etc/postfix/main.cf中指定证书文件的行修改为指向生成的证书文件。
重启dovecot和postfix即可。
客户端在第一次连接邮件服务器时会提示无法验证证书的安全性之类的提示,将证书安装到客户端电脑上之后就不会再提示了。
如果要新增加域名,则需要重新制作证书,客户端需要重新安装证书。
从Let'sEncrypt获取的证书可以被大多数邮件客户端自动认可。但是要求主机有80端口。
首先安装certbot:
apt install certbot
然后运行以下命令获取证书:
certbot certonly -d mail.test.com
如果成功,会在/etc/letsencrypt/live/目录下生成mail.test.com目录,并在其中存放一些文件。其中fullchain.pem是证书文件、privkey.pem是密钥文件。
将/etc/dovecot/conf.d/10-ssl.conf和/etc/postfix/main.cf中指定证书文件的行修改为指向这两个文件。然后重启dovecot和postfix即可。
certbot会在/etc/cron.d下面创建一个certbot的文件用来自动续订证书。