Hi-Fi優質I.T網:技術文章...
您尚未登入...
帳號:
密碼:

忘記密碼 
 
  訂閱電子報

取消   訂閱
 
2005/4/6-10:42:27
 在postfix設定cyrus-sasl的SMTP認証│作者:│分數:0

 

       全世界範圍內的SMTP伺服器與日俱增,但是這些SMTP伺服器都有一個與生俱來的缺點,那就是沒有任何的認証機製。因為在設計這些SMTP伺服器時,全世界範圍的Internet主機還不是很多,彼此間都有很高的可信任級別,所以沒有全面考慮安全性問題。這種現象也可以在別的Internet協議中看到。

  正是因為SMTP通訊過程缺乏認証機製,以及ip欺騙的容易實現,導致了以下兩個方面的問題︰SMTP伺服器無法確認SMTP客戶機的合法性;SMTP客戶機也無法確認SMTP伺服器的合法性。從而也就導致了用戶可以不經過認証就發送郵件,用戶可以冒名發送郵件,以及垃圾郵件的泛濫。

  Postfix設置了好多選項讓網路管理員來限制伺服器資源的使用,以及確定用戶的合法性。但遺憾的是,這些認証機製都是基于ip位址或者客戶DNS訊息。在客戶ip位址固定的情況下,這些方法或許有一定的作用(雖然還是無法解決冒名發送郵件),但是在客戶ip位址不固定的情況下,就很難透過這種機製來進行限制了。當然,現下也有一些其他的技術,比如POP-before-SMTP(在發信前收信)來解決這個問題,但是這需要營運額外的服務程式。並且用戶在發行之前一定要先收信,這或多或少都會帶來一些不方便。

  好在有簡單認証安全層(SASL),它提供了模塊化的SMTP認証擴展,因此SMTP就可以在SASL之上構建自己的SMTP認証,因為可以透過開放式的機製和協議來建立認証會話。另外,SASL在實現了對PLAIN以及CRAM-MD5加密等協議的基礎上,還提供了多種認証方法,比如透過Kerberos、用戶數據庫、passwd文件、PAM等。這樣,SMTP程式不需要支持這些認証方法就可以實現多種認証模式。並且,SMTP在用戶經過成功認証以後同樣可以定義自己的訪問策略來對用戶訪問進行控制。

  當然,首先我們必須保證該SMTP伺服器能夠提供對SASL的支持:P)

需求︰

  首先要保證您的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:

[root@test bye2000]# 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,然后解開源代碼包︰

[root@test /tmp]# tar xvzf postfix-20010228-pl04.tar.gz

  命令執行完后,會生成postfix-20010228-pl04目錄,然后進入該目錄︰

[root@test /tmp]# cd postfix-20010228-pl04

  接下來,依次執行以下命令編譯postfix︰

[root@test postfix-20010228-pl04]# make tidy
[root@test postfix-20010228-pl04]#make makefiles CCARGS='-DUSE_SASL_AUTH -I/usr/include' AUXLIBS='-L/usr/lib -lsasl'
[root@test postfix-20010228-pl04]# make

  建立一個新用戶“postfix”,該用戶必須具有唯一的用戶id和組id號,同時應該讓該用戶不能登錄到系統,也即不為該用戶指定可執行的登錄外殼程式和可用的用戶宿主目錄。我們可以先用adduser postfix 添加用戶再編輯/etc/passwd文件中的相關條目如下所示︰

postfix:*:12345:12345:postfix:/no/where:/no/shell

  最後執行安裝腳本安裝postfix

[root@test postfix-20010228-pl04]# ./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新建這樣一個文件︰

[root@test sasl]# touch smtpd.conf

  在該文件中加入以下內容︰

[root@test sasl]# more smtpd.conf
pwcheck_method:pam

  也就是指定透過PAM來進行用戶認証。

5.配置PAM

  進入/etc/pam.d/目錄,用touch新建這樣一個文件︰

[root@test pam.d]# touch smtp

  在該文件中加入如下內容︰

[root@test pam.d]# 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︰

[root@test /etc]# chmod 640 /etc/shadow

  然后再將postfix用戶加入root組,採用以下命令︰

[root@test /etc]# usermod -G root postfix

7.啟動postfix

  執行

[root@test /etc]# postfix start

  這樣,一個支持SMTP認証的postfix就開始工作了。


請評分: -3 -2 -1 +1 +2 +3
  
   

Hi-Fi優質I.T網”站內所有文章、圖片除特別加註外均屬本站所有,如有任何問題請來信告知
請支持言論自由,討論區所發表之言論不代表本站立場
Hi-Fi優質I.T網”版權所有2004©
---最佳顯示效果1024*768---