1.1 介绍
福哥使用docker-compose在构建邮箱服务器时,发现sendmail必须依赖的服务特别多,必然需要使用privileged权限,而福哥很不愿意在这类服务中分配这么高的权限,那怎么办?
经过一番研究,我看到了小仙女postfix。它真的很简单,很好用。与sendmail相比,它要舒适得多!通过dovecot服务,您可以轻松构建电子邮件服务器!
2. 组装2.1 组装
先通过yum组装即可。
yum-yinstallpostfixcyrus-saslcyrus-sasl-plainrsyslog
3. 基本配置 postfix它是一款完成SMTP服务的软件,比sendmail更软件,配备起来也很方便,特别好用~~
3.1 环境变量
环境变量为//etc/postfix/main.cf,有一些默认参数。
3.2 参数浏览
应用postconf -n查询环境变量main.cf当前配置参数。
3.3 myhostname
设置为邮箱服务器的域名。
myhostname=mail.test.tongfu.net
3.4 mydomain
设置为邮箱域名。
mydomain=test.tongfu.net
3.5 myorigin
设置为邮箱域名,这里可以用mydomain设置。
myorigin=$mydomain
3.6 inet_interfaces
设置服务器使用所有网络,否则只有本机连接25端口。
inet_interfaces=all
3.7 重启
重启postfix后,可通过telnet检测SMTP服务是否正常。
systemctlrestartpostfix
3.8 检测
福哥应用telnet证明了postfixSMTP服务,因为福哥没有配备验证部分,所以发邮件不需要登录名/密码。
4. SASL验证默认情况下,postfix发送电子邮件不需要认证,这个内部系统调用还可以,如果是作为客户邮箱应用也不合适!
postfix与sendmail一样,认证方法是通过SASL实现的。
4.1 运行SASL
开启/etc/postfix/main.cf,改进以下二行设备。
smtpd_sasl_path=smtpdsmtpd_sasl_auth_enable=yes
4.2 客户端适用
默认情况下,我们不能使用巨婴的outlook来连接postfix。如果我们想适用这种电子邮件客户端,我们必须在/etc/postfix/main.cf设置在里面。
broken_sasl_auth_clients=yes
4.3 严禁密名
在默认情况下,postfix允许密名发送电子邮件,我们应该在//etc/postfix/main.cf关掉里面。
smtpd_sasl_security_options=noanonymous
虽然密名被关掉发送邮件,但还是可以在不验证的情况下发送邮件,这有点蒙蔽~~
4.4 寄信限定
默认情况下,电子邮件可以通过密名发送。我们应该在//etc/postfix/main.cf设置在里面。
smtpd_recipient_restrictions=permit_sasl_authenticated,reject
这一段的意思是,根据sasl认证可以,其他拒绝。
4.5 认证方式
在默认情况下,SASL采用PAM作为认证方式,福哥准备应用Linux本地用户作为验证源。
可根据以下指令查看可用的认证方法:
saslauthd-v
开启/etc/sysconfig/saslauthd,设置MECHshadow,也就是说,使用本地用户进行验证。
MECH=shadow
4.6 重启
应用下面的指令重启postfix和postfixsaslauthd两个服务。
systemctlrestartsaslauthdsystemctlrestartpostfix
4.7 创建用户
设置密码为123456的test客户。
useraddtestpasswdtest
4.8 检测
福哥仍然使用telnet检测postfix服务,因为打开了验证,这里需要应用auth login登录后才能发邮件。
5. 汇总今天,福哥带着童鞋学习应用Postfix SASL构建SMTP服务器的方法。一般来说,如果一个系统必须向外发送电子邮件,应用程序Postfix SASL就够了。
如果我们建立了一个多功能的邮件服务器,可以发送电子邮件,接收电子邮件,我们该怎么办?
下节课,福哥会带着童鞋跟着童鞋走。Dovecot SASL为了构建POP服务器,POP服务器的应用可以达到接收邮件的效果!