配置postfix的sasl认证遇到问题求解
本帖最后由 quincytaoo 于 2014-03-14 20:31 编辑平台postfix+dovecot+cyrus-sasl
我刚开始配置完成后出现sasl不能验证系统账号的问题,于是我转换思路,用SASL 自带的 saslpasswd2 重建认证数据库 /etc/sasldb2,不知道是不是我配置的有误,还是不能验证,我就在系统又建立了一个和sasl相同的用户名密码,再试,通过验证了,然后现在我有疑问了,有没有办法让postfix只识别一种验证方式,我不太了解sasl的特性,本以为用这种方式就可以不用再建立系统账户了,为什么必须要在sasl和系统下分别建立一样的账号才能通过验证,有遇到这个问题的朋友吗?
main.cf
myhostname = mail.xx.cn
mynetworks = 10.6.1.0/24,10.6.6.0/24
relay_domains =$mydomain
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,mail.$mydomain, www.$mydomain, ftp.$mydomain
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain =$myhostname
smtpd_sasl_application_name = smtpd
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated,reject_unauth_destination
smtpd_client_restrictions = permit_sasl_authenticated
smtpd_sasl_security_options = noanonymous
vi /usr/lib/sasl2/smtpd.confpwcheck_method: auxpropvi /etc/sysconfig/saslauthd
SOCKETDIR=/var/run/saslauthd
FLAGS=sasldb
配置錯誤,請檢查。postfix本來就支持要摸就系統賬號認證,要摸就是用sasl認證,要摸就是用tls認證(估計很少人會配置) 回复 2# woxizishen 我查看配置是把/etc/sysconfig/saslauthd的MECH=shadow 注释掉,把FLAGS 定义为sasldb 了,还有pwcheck_method: saslauthd 改为auxprop 了,会不会这里的影响?
回复 3# quincytaoo
個人感覺你沒把整個郵件相關軟體原理給吃透,所以出現問題你不知道在哪裡。我給你一個cyrus-sasl提供的驗證方式,其實現在dovecot直接就提供了sasl驗證方式,設定非常簡單,就不介紹了。
第一步:因為redhat4u2sasl2目錄默認路徑安裝在/usr/lib/下
在/usr/lib/sasl2建立smtpd.conf文件,然後編輯增加如下參數
log_level:3 日誌等級
pwcheck_method:saslauthd 使用哪個驗證方式。
mech_list:PLAIN LOGIN 因為我們直接使用系統帳號和密碼就直接使用saslauthd方式即可
測試成功后,請將日誌功能mac掉。佔用服務器資源。
第二步:saslauthd –a pam或saslauthd –a shadow 或vi /etc/sysconfig/saslauthd
將mech =pam 或 mech=shadow
(提示:使用saslauthd驗證方法只支持PLAIN明文和LOGIN)
如果使用pam驗證確保/etc/pam.d/有個smtp文件且裏面配置如下:
auth required pam_stack.so service=system-auth
account required pam_stack.so service=system-auth
2行簡單解釋:
auth:这种类型的模块
验证使用者身份,提示输入帐号和密码
account 他主要用来限制/允许用户对某个服务的访问时间,当前有效的系统资源(最多能够有多少个用户),限制用户的位置(例如:root用户只能从控制台登录)。
(password 提供对密码的细致控制,例如控制密码的使用期限,重复输入的次数,密码锁定后的解禁时限等等這裡未用,簡單介紹下)
(session 对每个会话进行跟踪和记录,记录的内容包括登录的用户名及登录的时间和次数等等簡單介紹下。)
Required表示即使某个模块对用户的验证失败,也要等任何的模块都执行完毕之后,PAM才返回错误信息。这样做是为了不让用户知道被哪个模块拒绝。假如对用户验证成功,任何的模块都会返回成功信息
pam_stack.so的作用是调用服务
第三步:編輯postifx主配置文件main.cf
smtpd_sasl_path = smtpd sasl執行路徑 (可不加入新版默認就是這個)
smtpd_sasl_type = cyrus sasl提供軟體 (可不加入新版默認就是這個)
smtpd_sasl_authenticated_header = yes 在郵件頭里添加sasl驗證信息即在郵件的頭里添加sasl的received字段。一般不使用
smtpd_sasl_security_options = noanonymous 安全選項-禁止匿名使用sasl
smtpd_sasl_auth_enable = yes 啟動sasl認證
broken_sasl_auth_clients = yes 支持outlook express老式MUA的SASL認證
回复 4# woxizishen
很详细,受益匪浅,在运用到生产前我还要多加强,很感谢
页:
[1]