Sendmail的安全篇之Smrsh
Sendmail是最重要的郵件傳輸代理程序。那Sendmail的安全靠什么,靠Smrsh。
設置Sendmail使用"smrsh"
smrsh程序的目的是作為在mailer中為sendmail定義的"/bin/sh"的替代shell。smrsh是一種受限shell工具,它通過"/etc/smrsh"目錄來明確指定可執行文件的列表。簡而言之smrsh限制了攻擊者可以執行的程序集。當它與sendmail程序一起使用的時候,smrsh有效的將sendmail可以執行的程序的范圍限制在smrsh目錄之下。
第一步:
決定smrsh可以允許sendmail運行的命令列表。缺省情況下應當包含以下命令,但不局限于這些命令:
"/bin/mail" (如果在你的系統中安裝了的話)
"/usr/bin/procmail" (如果在你的系統中安裝了的話)
注意:不可在命令列表里包括命令解釋程序,例如sh(1),csh(1),perl(1),uudecode(1)及流編輯器sed(1)。
第二步:
在"/etc/smrsh"目錄中創建允許sendmail運行的程序的符號連接。
使用以下命令允許mail程序"/bin/mail"運行:
[root@deep]# cd /etc/smrsh
[root@deep]# ln -s /bin/mail mail
用以下命令允許procmail程序"/usr/bin/procmail"運行:
[root@deep]# cd /etc/smrsh
[root@deep]# ln -s /usr/bin/procmail procmail
這將允許位于".forward"和"aliases"中的用戶采用"|program"語法來運行mail及procmail程序。
第三步
配置sendmail使之使用受限shell。mailer程序在sendmail的配置文件"/etc/sendmail.cf"中僅有一行。必須修改"sendmail.cf"文件中"Mprog"定義的那一行。將"/bin/sh"替換為"/usr/sbin/smrsh"。
編輯"sendmail.cf"文件(vi /etc/sendmail.cf)并改動下面這一行:
例如:
Mprog, P=/bin/sh, F=lsDFMoqeu9, S=10/30, R=20/40, D=$z:/, T=X-Unix, A=sh -c $u
應該被改為:
Mprog, P=/usr/sbin/smrsh, F=lsDFMoqeu9, S=10/30, R=20/40, D=$z:/, T=X-Unix, A=sh -c $u
現在用以下命令手工重起sendmail進程:
[root@deep]# /etc/rc.d/init.d/sendmail restart
通過文章,我們可以大概知道其實Sendmail的安全性不能忽視,而且使用Smrsh會幫助你加強Sendmail的安全性。
【編輯推薦】
- 如何在Sendmail里設置虛擬域
- Sendmail簡單介紹
- 圖文并茂 講解Sendmail工作環境
- 深入了解 Linux下安裝DNS+Sendmail服務
- 如何在Linux下安裝Sendmail服務器
- Linux Sendmail配置攻略
- sendmail啟動慢的解決辦法