如何让postfix支持cyrus-sasl认证?什么是sasl

本文目录
如何让postfix支持cyrus-sasl认证
首先要保证您的postfix版本是snapshot-20000507及其以上的版本,从而保证postfix对SASL的支持。强烈建议您升级至postfix-20010228及其以上版本。可以从www.postfix.org下载postfix的源代码包,在测试过程中我们使用的是postfix-20010228-pl04.tar.gz。
然后,要保证您的SASL的版本是1.5.5及其以上版本,因为已经有报告称这些版本的SASL可以和postfix工作得很好。可以从ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/下载SASL,在测试过程中我们使用的是cyrus-sasl-1.5.24-17.rpm和cyrus-sasl-devel-1.5.24-17.rpm,即RedHat7.1自带的SASL的rpm包。
另外说明一点,整个测试过程都是在RedHat7.1中进行的。
步骤:
1.检查系统中是否安装了cyrus-sasl-1.5.24
执行以下命令查看系统中是否安装了cyrus-sasl:
rpm –qa |grep cyurs
如果您看到以下提示,则说明已经安装了cyrus-sasl-1.5.24-17和cyrus-sasl-devel-1.5.24-17:
# rpm -qa |grep sasl
cyrus-sasl-devel-1.5.24-17
cyrus-sasl-1.5.24-17
否则,请用rpm –ivh 命令先安装所需sasl-cyrus包。
2.编译postfix
首先,下载postfix-20010228-pl04.tar.gz,然后解开源代码包:
# tar xvzf postfix-20010228-pl04.tar.gz
命令执行完后,会生成postfix-20010228-pl04目录,然后进入该目录:
# cd postfix-20010228-pl04
接下来,依次执行以下命令编译postfix:
# make tidy
#make makefiles CCARGS=’-DUSE_SASL_AUTH -I/usr/include’ AUXLIBS=’-L/usr/lib -lsasl’
# make
建立一个新用户“postfix”,该用户必须具有唯一的用户id和组id号,同时应该让该用户不能登录到系统,也即不为该用户指定可执行的登录外壳程序和可用的用户宿主目录。我们可以先用adduser postfix 添加用户再/etc/passwd文件中的相关条目如下所示:
postfix:*:12345:12345:postfix:/no/where:/no/shell
最后执行安装脚本安装postfix
# ./INSTALL.sh
对于安装脚本的问题,可以统统回车确定。
3.配置postfix
安装完postfix后,就可以/etc/postfix/main.cf文件来配置postfix了,关于如何配置
postfix,可以参考本站解决方案中的相关文章来获取更多的信息。
唯一需要补充的是,为了告诉postfix采用sasl来进行SMTP的用户认证,我们必须在/etc/postfix/main.cf文件的最后添加以下几行:
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_sasl_authenticated permit_auth_destination reject
broken_sasl_auth_clients = yes
smtpd_sasl_security_options = noanonymous
说明如下:
smtpd_sasl_auth_enable:告诉SMTP客户,该SMTP服务器需要进行用户认证。
smtpd_recipient_restrictions = permit_sasl_authenticated permit_auth_destination
reject:仅仅中继通过SMTP认证的客户端邮件,以及接收本postfix为最后一站的邮件。
broken_sasl_auth_clients = yes:有一些Microsoft 的SMTP客户端,比如Outlook Express 4.X采用的是非标准的SMTP认证协议,将该选项设置为yes可以解决这类不兼容问题。
smtpd_sasl_security_options = noanonymous:控制本地SMTP认证所采用的机制,这里是允许任何非匿名认证方法。
4.配置SASL
进入/usr/lib/sasl/目录,用touch新建这样一个文件:
# touch smtpd.conf
在该文件中加入以下内容:
# more smtpd.conf
pwcheck_method:pam
也就是指定通过PAM来进行用户认证。
5.配置PAM
进入/etc/pam.d/目录,用touch新建这样一个文件:
# touch smtp
在该文件中加入如下内容:
# more smtp
#%PAM-1.0
auth required /lib/security/pam_stack.so service=system-auth
account required /lib/security/pam_stack.so service=system-auth
也即和/etc/pam.d/pop文件的内容是一致的。
6.修改/etc/shadow文件权限
因为PAM最终要去读取/etc/shadow文件的内容来进行用户认证,但是/etc/shadow文件
权限是设置为只有root用户可以读写,而我们的postfix是运行在postfix用户权限之下,所以我们要合理的设置/etc/shadow文件权限,以便让pam可以读取其内容。
执行以下命令,让root组也可以读取shadow:
# chmod 640 /etc/shadow
然后再将postfix用户加入root组,采用以下命令:
# usermod -G root postfix
7.启动postfix
执行
# postfix start
这样,一个支持SMTP认证的postfix就开始工作了。
什么是sasl
sasl是什么,本来就没有绝对的定义
只是有几种hereby defined的mechanisms。
你可以定义任何你认为合理的sasl mechanisms。
具体到directory server上,自定义sasl mechanisms就是通过backend上定义一个plugin实现的。

更多文章:
全球新冠肺炎疫情背景下航运发展(盐田港复苏日志:半年历劫从“低谷”到“爆仓” 疫情之后巨轮如何越洋航行)
2026年9月7日 17:10
matlab求解带字母参数方程组(我想matlab求一个关于x,y的方程组 ab c d f e h m n 都是参数)
2026年9月7日 16:30
oracle中的循环语句(下面哪个不是oracle程序设计中的循环语句 a for)
2026年9月7日 15:30
电脑里2个系统怎么删除一个(电脑开机显示有两个系统,如何删除一个)
2026年9月7日 12:20
scrollthrough意思(“scroll”是什么意思)
2026年9月7日 08:00
怎么激活keygen(注册机如何激活cad2008一个简单激活cad2008的方法)
2026年9月7日 06:30





