- 論壇徽章:
- 0
|
一般postfix系統(tǒng)基本都是postfix+mysql+sasl+courier-imap+maildrop組成的,
其他基本上是加上webmail,mysql的web管理,防垃圾spamassassin,防病毒clamav+amasivd-new等
具體設(shè)置可以參照wxy的文章,非常感謝wxy的共享精神。
看到很多fans在配置的時(shí)候出現(xiàn)很多問題,卻不知道如何調(diào)試,攥寫本文的目的是為了如何調(diào)試postfix系統(tǒng),作為wxy文章的補(bǔ)充。
先說幾個(gè)基本的概念:
1、postfix的smtp認(rèn)證是通過sasl library讀取mysql進(jìn)行認(rèn)證的,注意是sasl library不是saslauthd,所以通過testsaslauthd并不能正確地
調(diào)試。
2、courier-imap,courier-maildrop是通過courier-authlib來讀取mysql的信息,所以pop3服務(wù),imap服務(wù),maildrop的投遞都是通過
courier-authlib.
3、新版本的sasl2在認(rèn)證的時(shí)候會(huì)把用戶名abc@test.com,@后面的當(dāng)成realm來處理,所以新版本的sasl2通過pam_mysql認(rèn)證的話將不能支持
多域,所以基本都用sasl2的mysql擴(kuò)展。具體的例子就是wxy的文章postfix_I是通過pam_mysql的,postfix_II是用的sasl2的mysql擴(kuò)展。
調(diào)試postfix系統(tǒng)的時(shí)候最好分模塊調(diào)試,sasl2 library和mysql進(jìn)行調(diào)試,courier-authlib和mysql進(jìn)行調(diào)試,這樣就可以把故障點(diǎn)縮小。
1、courier-aulib和mysql的調(diào)試很簡(jiǎn)單,courier-authlib提供了測(cè)試程序authtest
# authtest
Usage: authtest [-s service] userid [ password [ newpassword ] ]
# authtest -s smtp xxx@test.com 123456
Authentication succeeded.
Authenticated: xxx@test.com (uid 1001, gid 1001)
Home Directory: /var/mail/
Maildir: test.com/xxx/Maildir/
Quota: (none)
Encrypted Password: (none)
Cleartext Password: 123456
Options: (none)
出現(xiàn)類似這樣的提示表示courier-authlib已經(jīng)成功了,如不成功,仔細(xì)檢查authmysqlrc,authdaemonrc文件和mysql的socket,包括文件的權(quán)
限。特別要注意authmysqlrc,authdaemonrc里不能有空格,只能是tab。
2、sasl2 library的調(diào)試
sasl2提供了2個(gè)測(cè)試程序sasl2-sample-server、sasl2-sample-client,一個(gè)服務(wù)程序,一個(gè)客戶程序,如果是rpm安裝的,在cyrus-sasl-
devel包中,如果是編譯安裝的,在sample目錄里。postfix smtp認(rèn)證是也是通過類似的辦法,現(xiàn)啟動(dòng)一個(gè)sasl_server,然后在啟動(dòng)一個(gè)
sasl_client連接sasl_server進(jìn)行認(rèn)證。
測(cè)試程序sasl2-sample-server、sasl2-sample-client調(diào)用的是/usr/lib/sasl2/sample.conf,postfix調(diào)用的是smtpd.conf
調(diào)試的時(shí)候拷貝smtpd.conf成sample.conf
然后運(yùn)行服務(wù)程序sasl2-sample-server
# sasl2-sample-server -s smtpd
trying 10, 1, 6
trying 2, 1, 6
bind: Address already in use
運(yùn)行客戶程序sasl2-sample-client
# sasl2-sample-client -s smtpd -m LOGIN localhost
receiving capability list... recv: {11}
PLAIN LOGIN
PLAIN LOGIN
send: {5}
LOGIN
send: {1}
N
recv: {9}
Username:
please enter an authentication id: abc@test.com
Password: 123456
send: {16}
abc@test.com
recv: {9}
Password:
send: {6}
123456
successful authentication
closing connection
服務(wù)端程序應(yīng)為
accepted new connection
send: {11}
PLAIN LOGIN
recv: {5}
LOGIN
recv: {1}
N
send: {9}
Username:
recv: {16}
abc@test.com
send: {9}
Password:
recv: {6}
123456
successful authentication 'abc@test.com'
closing connection
成功之后把sample.conf 拷貝為smtpd.conf,不成功就檢查sasl2的配置。
postfix和sasl2的調(diào)試
網(wǎng)上還有個(gè)腳本叫saslfinger,可以下載下來查查,當(dāng)然配置不一樣出來的結(jié)果也不一樣,可以作為參考。postfix的設(shè)置比較多,一定要心細(xì)
。
如果courier-authlib通過了的話,courier-imap基本不會(huì)出現(xiàn)問題,調(diào)試可以用telnet 110端口,如果出現(xiàn)問題的原因大部分在maildir目錄
,檢查目錄存在,目錄權(quán)限等。
linux系統(tǒng)大部分的出錯(cuò)提示都可以在log中看到,仔細(xì)分析一下log找出錯(cuò)誤的原因。 |
|