SMTP安全手冊(cè)—Sendmail服務器(qì)安全
Sendmail是在Unix環境下(xià)使(shǐ)用(yòng)最廣(guǎng)泛(fàn)的實現郵件發送/接受的(de)郵件傳(chuán)輸代理程序。 由於(yú)Sendmail郵件服務器的特點是功能強大而複雜,因此為保(bǎo)證Sendmail的安全性,需要作以下一(yī)些工作(zuò)。
1、設(shè)置Sendmail使用"smrsh"
smrsh程序的目(mù)的是作為在mailer中為sendmail定義的(de)"/bin/sh"的替代shell。smrsh是一(yī)種受限shell工(gōng)具,它通(tōng)過"/etc/smrsh"目錄來明(míng)確指定(dìng)可執行文件(jiàn)的列(liè)表。簡而言之smrsh限(xiàn)製了攻擊者可以執行的程序集。當(dāng)它(tā)與(yǔ)sendmail程序一起使用的時(shí)候,smrsh有效的將(jiāng)sendmail可以執行(háng)的(de)程序的範圍(wéi)限製在smrsh目錄(lù)之下。
第(dì)一步:
決(jué)定smrsh可以允許(xǔ)sendmail運行的命(mìng)令列(liè)表。缺省情(qíng)況下應(yīng)當包含以下命令,但不局限於這些命令:
"/bin/mail" (如(rú)果在你的(de)係統中安裝了的話)
"/usr/bin/procmail" (如果在你的係統中安裝了(le)的話)
注意:不可在命令列表裏包括命(mìng)令解(jiě)釋程序,例如sh(1),csh(1),perl(1),uudecode(1)及流編輯器sed(1)。
第二步:
在"/etc/smrsh"目錄中創(chuàng)建允許sendmail運行的程序的符號連接。
使用以下命令允許mail程序"/bin/mail"運行:
[root@deep]# cd /etc/smrsh
[root@deep]# ln -s /bin/mail mail
用(yòng)以下(xià)命令(lìng)允許procmail程序"/usr/bin/procmail"運行(háng):
[root@deep]# cd /etc/smrsh
[root@deep]# ln -s /usr/bin/procmail procmail
這將允許位於".forward"和"aliases"中(zhōng)的用戶采用"|program"語法來運行mail及procmail程序。
第三步
配置(zhì)sendmail使之使用受限shell。mailer程序在sendmail的配(pèi)置文(wén)件"/etc/sendmail.cf"中僅(jǐn)有(yǒu)一行。必須修改"sendmail.cf"文(wén)件中"Mprog"定義的那一行。將"/bin/sh"替換為"/usr/sbin/smrsh"。
編輯"sendmail.cf"文件(vi /etc/sendmail.cf)並改動下(xià)麵(miàn)這一行:
例如:
Mprog, P=/bin/sh, F=lsDFMoqeu9, S=10/30, R=20/40, D=$z:/, T=X-Unix, A=sh -c $u
應(yīng)該(gāi)被改為:
Mprog, P=/usr/sbin/smrsh, F=lsDFMoqeu9, S=10/30, R=20/40, D=$z:/, T=X-Unix, A=sh -c $u
現(xiàn)在用以下命令手工重起sendmail進程:
[root@deep]# /etc/rc.d/init.d/sendmail restart
2、"/etc/aliases"文件
如果沒有加以正(zhèng)確和嚴格的(de)管理的話,別名文件被用來獲取特權(quán)。例如,很多發行版本在別名文件中帶有"decode"別名(míng)。現在(zài)這(zhè)種情況越來越少了。
這樣做的(de)目(mù)的是為用戶(hù)提供一個(gè)通過mail傳輸二進製文件的方便的(de)方式。在郵件的發送(sòng)地,用戶把二(èr)進製文(wén)件用"uuencode"轉(zhuǎn)換成ASCII格式(shì),並把(bǎ)結果(guǒ)郵遞(dì)給接收(shōu)地(dì)"decode"別名(míng)。那個別名(míng)通過管道把郵件消(xiāo)息(xī)發送到"/usr/bin/uuencode"程序,由這個程序來完成(chéng)從ASCII轉回到(dào)原始的二進製(zhì)文件(jiàn)的工作。
刪除"decode"別(bié)名。類似的,對於所有用於執(zhí)行沒有被放在smrsh目錄下的程(chéng)序的別名,你都(dōu)要仔細的檢查(chá),可能它們都(dōu)值得懷疑並(bìng)應當刪(shān)除它們。要(yào)想使你的改變生效(xiào),需(xū)要運行(háng):
[root@deep]# /usr/bin/newaliases
編輯別名文(wén)件(vi /etc/aliases)並刪(shān)除以下各行:
# Basic system aliases -- these MUST be present.
MAILER-DAEMON: postmaster
postmaster: root
# General redirections for pseudo accounts.
bin: root
daemon: root
games: root?? 刪除這一行
ingres: root ?? 刪除(chú)這一行
nobody: root
system: root ?? 刪除這一行
toor: root?? 刪除(chú)這一行
uucp: root ?? 刪除這一行
# Well-known aliases.
manager: root ?? 刪除這一行
dumper: root ?? 刪除(chú)這一行
operator: root ?? 刪除這一行
# trap decode to catch security attacks
decode: root ?? 刪(shān)除這一行
# Person who should get root's mail
#root: marc
最後應該運行"/usr/bin/newaliases"程序使改動(dòng)生效(xiào)
3、避(bì)免(miǎn)你(nǐ)的Sendmail被未授(shòu)權的(de)用戶濫用
最新版本的Sendmail (8.9.3)加入(rù)了很強的防止欺騙(piàn)的(de)特性。它們可以防止(zhǐ)你的(de)郵件服務器被未授權的用(yòng)戶濫用。編(biān)輯(jí)你(nǐ)的"/etc/sendmail.cf"文件,修改一下這個配置文件,使你(nǐ)的郵(yóu)件服(fú)務(wù)器(qì)能(néng)夠擋住欺(qī)騙郵件。
編(biān)輯"sendmail.cf"文(wén)件(vi /etc/sendmail.cf)並(bìng)更(gèng)改下麵一行:
O PrivacyOptions=authwarnings
改為:
O PrivacyOptions=authwarnings,noexpn,novrfy
設置"noexpn"使sendmail禁(jìn)止所有SMTP的"EXPN"命(mìng)令,它也使sendmail拒絕所有SMTP的"VERB"命令(lìng)。設置"novrfy"使sendmail禁止所有SMTP的"VRFY "命令。這種更改可以(yǐ)防止(zhǐ)欺騙者(zhě)使用"EXPN"和"VRFY"命令,而這些命令恰恰被那些(xiē)不守規矩的人所濫用。
4、SMTP的問候信息
當 sendmail接受一個SMTP連接的時候,它會向那台機器發送一(yī)個問候信息,這(zhè)些信息作(zuò)為本台主機(jī)的標識,而(ér)且它所做的第一件事就是告訴對方它已經準備(bèi)好了。
編輯"sendmail.cf"文(wén)件(vi /etc/sendmail.cf)並更改(gǎi)下麵一行:
O SmtpGreetingMessage=$j Sendmail $v/$Z; $b
改為:
O SmtpGreetingMessage=$j Sendmail $v/$Z; $b NO UCE C=xx L=xx
現在手工重起一下sendmail進程,使(shǐ)剛才所做的更(gèng)改生效:
[root@deep]# /etc/rc.d/init.d/sendmail restart
以上的更改將影響到Sendmail在接收一個(gè)連(lián)接時所顯(xiǎn)示的(de)標誌信(xìn)息。你應該(gāi)把"`C=xx L=xx"條目中的"xx"換成你所在的國家(jiā)和地區代碼。後麵的更改其實不會影響任何東西。但這是"news.admin.net-abuse.email"新聞組的夥伴們推薦的(de)合法做法。
5、限製(zhì)可以審核(hé)郵件隊列內容(róng)的人員
通常情(qíng)況(kuàng)下,任何人都可以使(shǐ)用"mailq"命令來查看郵(yóu)件隊(duì)列的(de)內容(róng)。為了限製可以(yǐ)審核郵(yóu)件隊列內容(róng)的人(rén)員,隻(zhī)需(xū)要在"/etc/sendmail.cf"文件(jiàn)中指(zhǐ)定(dìng)"restrictmailq"選(xuǎn)項即(jí)可(kě)。在這(zhè)種(zhǒng)情況下,sendmail隻允許與(yǔ)這個隊(duì)列(liè)所在目(mù)錄的組屬主相同的用戶可以查看它的(de)內容。這將允許權限為0700的郵(yóu)件(jiàn)隊列目(mù)錄被完全保護起來(lái),而(ér)我們限(xiàn)定的合法用戶仍然可(kě)以(yǐ)看到它的內(nèi)容。
編輯"sendmail.cf"文(wén)件(vi /etc/sendmail.cf)並更改下麵(miàn)一行:
O PrivacyOptions=authwarnings,noexpn,novrfy
改為:
O PrivacyOptions=authwarnings,noexpn,novrfy,restrictmailq
現在我們(men)更改郵件隊列(liè)目錄的權限(xiàn)使它(tā)被完全保護起來:
[root@deep]# chmod 0700 /var/spool/mqueue
注意:我們已經在sendmail.cf中的"PrivacyOptions="行中添加(jiā)了"noexpn"和(hé)"novrfy"選(xuǎn)項,現在在這一行(háng)中我(wǒ)們接(jiē)著(zhe)添加"restrictmailq"選項。
任何一個沒(méi)有特權的用戶如果試圖查看郵件隊列的內容(róng)會收到下麵的信(xìn)息:
[user@deep]$ /usr/bin/mailq
You are not permitted to see the queue
6、限製(zhì)處(chù)理(lǐ)郵件(jiàn)隊列的權限為"root"
通常,任何人(rén)都可以使用"-q"開關(guān)來處理郵件(jiàn)隊列,為限製隻允許root處理(lǐ)郵件隊列,需(xū)要在"/etc/sendmail.cf"文件中指定"restrictqrun"。
編輯"sendmail.cf"文件(vi /etc/sendmail.cf)並更(gèng)改下麵(miàn)一行:
O PrivacyOptions=authwarnings,noexpn,novrfy,restrictmailq
改為(wéi):
O PrivacyOptions=authwarnings,noexpn,novrfy,restrictmailq,restrictqrun
任何一個沒有特權的(de)用戶如果試圖處理郵件隊列的內容會收到下麵(miàn)的信息:
[user@deep]$ /usr/sbin/sendmail -q
You do not have permission to process the queue
7、在(zài)重要(yào)的(de)sendmail文件上設置(zhì)不可更改位
可(kě)以通過(guò)使用"chattr"命令而使重要的Sendmail文件不會(huì)被擅自更改(gǎi),可以提高係(xì)統的安全性。具有"+i"屬性(xìng)的(de)文(wén)件不能被修改:它不能(néng)被刪除和改名,不能創建到這個(gè)文件的(de)鏈(liàn)接,不能向這個文件寫入數據。隻有超級用(yòng)戶才能(néng)設(shè)置和清除這個屬性。
為"sendmail.cf"文件設置(zhì)不可更改位:
[root@deep]# chattr +i /etc/sendmail.cf
為"sendmail.cw"文件設置不可更(gèng)改位:
[root@deep]# chattr +i /etc/sendmail.cw
為"sendmail.mc"文件設置(zhì)不可更改位:
[root@deep]# chattr +i /etc/sendmail.mc
為"null.mc"文件設置不可更改(gǎi)位:
[root@deep]# chattr +i /etc/null.mc
為"aliases"文件設置不(bú)可更(gèng)改位:
[root@deep]# chattr +i /etc/aliases
為"access"文件設置不可更改(gǎi)位:
[root@deep]# chattr +i /etc/mail/access
8、Sendmail環境下(xià)的防(fáng)止郵件relay
從8.9版本開始,缺(quē)省的是(shì)不允許(xǔ)郵(yóu)件轉發(mail relay)的。最簡單的允許郵件轉發的(de)方法是在文件/etc/mail/relay-domains中進(jìn)行設置。該文件中列出的域名內的信件都允許通過本地服務器進(jìn)行郵件轉(zhuǎn)發。
為了更精確的設置,可以在(zài)sendmail.mc中(zhōng)添加如(rú)下(xià)幾個(gè)參數允許被用(yòng)來設置郵件轉發(fā):
· FEATURE(relay_hosts_only). 通常
關(guān)鍵詞:SMTP安全(quán)手冊,Sendmail服務器安全
閱(yuè)讀本(běn)文後(hòu)您有什麽感(gǎn)想? 已有 人給出評(píng)價!
- 1
- 1
- 2
- 1
- 1
- 1