選擇自 yjz0065 的 Blog
郵件系統是Linux網絡應用的重要組成,一個完整的郵件系統包括三個部分:底層作業系統(Linux Operation),郵件傳送代理(Mail Transport Agent,MTA),郵件分發代理(Mail Delivery Agent,MDA),郵件使用者代理(Mail User Agent,MUA)。
Postfix是一個非常優秀的MTA,她素以高效、安全的特點而著稱。Postfix是作者在UNIX上所見過的MTA中在反垃圾郵件(Anti-Spam或Anti-UCE)方面做得最好的一個,甚至有很多公司在Postfix代碼的基礎上進行二次開發而推出反垃圾郵件網關産品。MTA的反垃圾郵件功能,實際上就是在MTA處理過程中對會話進行過濾。這個過濾不但過濾了發往自身的垃圾郵件,而且還防止了自身被惡意利用發送垃圾郵件。Postfix實作了目前所有主要的MTA過濾技術。postfix是Wietse Venema在IBM的GPL協定之下開發的MTA(郵件傳輸代理)軟體。和Sendmail相比Postfix更快、更容易管理、更靈活、更安全,同時還與sendmail保持足夠的相容性。Sendmail相比Postfix對比見表1.
表1 Sendmail與Postfix的對比
MTA | 成熟性 | 安全性 | 特色 | 性能 | Sendmail相容性 | 子產品化設計 |
Postfix | 中 | 支援 | 是 | |||
Sendmail | 高 | 低 | 否 |
垃圾郵件(SPAM) 也稱作UCE (Unsolicited Commercial Email,未經許可的商業電子郵件) 或UBE (Unsolicited Bulk Email,未經許可的大量電子郵件) 。中國網際網路協會對垃圾郵件給出了一個正式的定義,隻要是符合下述四條之一的電子郵件都可被稱為垃圾郵件:
(1)收件人事先沒有提出要求或同意接收的廣告、電子刊物、各種形式的宣傳品等宣傳性的電子郵件。
(2)收件人無法拒收的電子郵件。
(3)隐藏發件人身份、位址、标題等資訊的電子郵件;。
(4)含有虛假的資訊源、發件人、路由等資訊的電子郵件。
垃圾電子郵件成為了人們最頭疼的問題之一。在Windows作業系統中也許您已經嘗夠了垃圾郵件給您帶來的苦頭,不要以為在Linux作業系統平台中就能避免垃圾電子郵件給我們帶來的騷擾,反擊和過濾垃圾電子
郵件是一件很重要的工作。下面是一些在Linux中廣泛使用的防垃圾郵件技術。
(1)SMTP使用者認證
目前常見并十分有效的方法是,在郵件傳送代理(Mail Transport Agent,MTA)上對來自本地網絡以外的網際網路的發信使用者進行SMTP認證,僅允許通過認證的使用者進行遠端轉發。這樣既能夠有效避免郵件傳送代理伺服器為垃圾郵件發送者所利用,又為出差在外或在家工作的員工提供了便利。如果不采取SMTP認證,則在不犧牲安全的前提下,設立面向網際網路的Web郵件網關也是可行的。此外,如果SMTP服務和POP3服務內建在同一伺服器上,在使用者試圖發信之前對其進行POP3通路驗證(POP before SMTP)就是一種更加安全的方法,但在應用的時候要考慮到目前支援這種認證方式的郵件用戶端程式還不多。
(2)逆向名字解析
無論哪一種認證,其目的都是避免郵件傳送代理伺服器被垃圾郵件發送者所利用,但對于發送到本地的垃圾郵件仍然無可奈何。要解決這個問題,最簡單有效的方法是對發送者的IP位址進行逆向名字解析。通過DNS查詢來判斷發送者的IP與其聲稱的名字是否一緻,例如,其聲稱的名字為mx.hotmail.com,而其連接配接位址為20.200.200.200,與其DNS記錄不符,則予以拒收。這種方法可以有效過濾掉來自動态IP的垃圾郵件,對于某些使用動态域名的發送者,也可以根據實際情況進行屏蔽。但是上面這種方法對于借助Open Relay的垃圾郵件依然無效。對此,更進一步的技術是假設合法的使用者隻使用本域具有合法網際網路名稱的郵件傳送代理伺服器發送電子郵件。例如,若發件人的郵件位址為[email protected],則其使用的郵件傳送代理伺服器的Internet名字應具有yahoo.com 的字尾。這種限制并不符合SMTP協定,但在多數情況下是切實有效的。需要指出的是,逆向名字解析需要進行大量的DNS查詢。
(3)實時黑名單過濾
以上介紹的防範措施對使用自身合法域名的垃圾郵件仍然無效。對此比較有效的方法就是使用黑名單服務了。黑名單服務是基于使用者投訴和采樣積累而建立的、由域名或IP組成的資料庫,最著名的是RBL、DCC和Razor等,這些資料庫儲存了頻繁發送垃圾郵件的主機名字或IP位址,供MTA進行實時查詢以決定是否拒收相應的郵件。但是,目前各種黑名單資料庫難以保證其正确性和及時性。例如,北美的RBL和DCC包含了我國大量的主機名字和IP位址,其中有些是早期的Open Relay造成的,有些則是由于誤報造成的。但這些遲遲得不到糾正,在一定程度上阻礙了我國與北美地區的郵件聯系,也妨礙了我國的使用者使用這些黑名單服務。其中使用BRL認證過程見圖1.
圖1 使用BRL過濾垃圾郵件的過程
(4)内容過濾
即使使用了前面諸多環節中的技術,仍然會有相當一部分垃圾郵件漏網。對此情況,目前最有效的方法是基于郵件标題或正文的内容過濾。其中比較簡單的方法是,結合内容掃描引擎,根據垃圾郵件的常用标題語、垃圾郵件受益者的姓名、電話号碼、Web位址等資訊進行過濾。更加複雜但同時更具智能性的方法是,基于貝葉斯機率理論的統計方法所進行的内容過濾,該算法最早由Paul Graham提出(http://www.paulgraham.com/spam.html),并使用他自己設計的Arc語言實作。這種方法的理論基礎是通過對大量垃圾郵件中常見關鍵詞進行分析後得出其分布的統計模型,并由此推算目标郵件是垃圾郵件的可能性。這種方法具有一定的自适應、自學習能力,目前已經得到了廣泛的應用。最有名的垃圾郵件内容過濾是Spamassassin,它使用Perl語言實作,內建了以上兩種過濾方法,可以與目前各種主流的MTA內建使用。内容過濾是以上所有各種方法中耗費計算資源最多的,在郵件流量較大的場合,需要配合高性能伺服器使用。 下面以RHEL 4.0為例,介紹上面幾種技術應對安全隐患。
安裝postfix
1、查詢Sendmail是否安裝:
#rpm -qa |grep sendmail
2、強行解除安裝Sendmail
# rpm -e sen
dmail sendmail-cf sendmail-doc –nodeps
3、用以下指令殺死運作中的sendmail程序:
# kill all sendmail
4、下載下傳安裝Posfix
#wget ftp://ftp.midvalleyhosting.com/pub/postfix/official/postfix-2.1.4.t ar.gz /tmp
#tar -vxf postfix-2.1.4.tar.gz
#cd postfix-2.1.4
5.編譯源代碼包
# make
6.建立一個新使用者“postfix”,該使用者必須具有唯一的使用者ID号群組ID号,同時應該讓該使用者不能登入到系統,也即不為該使用者指定可執行的登入外殼程式和可用的使用者宿主目錄。我們可以先用adduser postfix 添加使用者再編輯/etc/passwd檔案中的相關條目如下所示:
# useradd postfix
# postfix:*:12345:12345:postfix:/no/where:/no/shell
#groupadd postdrop
7.确定/etc/aliases檔案中包含如下的條目:
# postfix: root
8. 以root使用者登入,在/tmp/ postfix目錄下執行指令:
# ./INSTALL.sh
9.啟動postfix
# postfix start
postfix的配置檔案位于/etc/postfix下,這四個檔案就是postfix最基本的配置檔案,它們的差別在于:mail.cf:是postfix主要的配置檔案。Install.cf:包含安裝過程中安裝程式産生的postfix初始化設定。master.cf:是postfix的master程序的配置檔案,該檔案中的每一行都是用來配置postfix的元件程序的運作方式。postfix-script:包裝了一些postfix指令,以便我們在linux環境中安全地執行這些postfix指令。
10、使用postfix本身規則拒收垃圾郵件:
1、 使用頭資訊過濾郵件:
通常我們可以使用例如To、From、Subject等這樣标準的郵件頭來拒收垃圾郵件。在mail.cf中加入一行:header_checks = regexp:/etc/postfix/header_checks,它告訴postfix讀取名為/etc/postfix/reject-headers的檔案, 因為預設地,postfix不進行信頭過濾。
格式是:regexp REJECT ;其中regexp是正常表達式,下面是一個标準的/etc/postfix/reject-headers檔案其中一般以下包括内容:
/^To You @xoom.com $/ REJECT
/^From mailer-daemon @myclient.com $ / REJECT
/^Subject: Make menoey fast / REJECT
以上三行分别說明:
1、拒收郵件頭中包括字元串:You @xoom.com 的郵件。
2、拒收來自mailer-daemon @myclient.com的郵件。
3、拒收郵件主題:包括Make menoey fast内容的郵件。
2、 通過阻止IP位址或主機名方式通路郵件伺服器來拒收郵件:
(1)在main.cf配置檔案中使用以下行定義網絡位址“
# mynetwork=192.168.1.0/24
表示除非用戶端的ip位址符合$mynetworks參數定義的範圍則接受該用戶端的連接配接請求,才轉發該郵件。
(2) 添加一行拒絕本地網絡以外的主機通路本地郵件伺服器:
smtpd_client_restrictions = permit_mynetworks, reject_unknown_client
(3)在postfix中添加RBL功能
RBL(Realtime Blackhole List)是實時黑名單。國外有一些機構提供RBL服務,它們把收集到的專發垃圾郵件的IP位址加入他們的黑名單,我們隻要在postfix中加入RBL認證功能,就會使我們的郵件伺服器在每次收信時都自動到RBL伺服器上去查實,如果信件來源于黑名單,則postfix會拒收郵件,進而少受垃圾郵件之苦。通常在mail.cf加入
map_rb1_domains=mail-abuse.org
smtp_client_restrictions=reject_map1_rb1
其中第一行設定需要聯系得到的RBL清單的所有主機,接着設定需要進行應用的限制。然後存盤,從新啟動postfix伺服器。
國外比較有名的RBL是http//www.ordb.org,他們的RBL可免費使用,去年國内的http://anti-spam.org.cn也提供類似的服務,但它必須先注冊才能使用免費。
另外垃圾郵件的防範必須掌握好尺度,postfix本身提供了header_check、body_check、access、classes等方式來拒絕郵件,可以參考如下位址的樣例,結合自己的情況進行修改也能阻止一部分垃圾郵件:
http://www.securitysage.com/guides/postfix_uce_header.html
http://www.securitysage.com/guides/postfix_uce_body.html
http://www.securitysage.com/guides/postfix_uce_access.html
http://www.securitysage.com/guides/postfix_uce_class.html
不過以上配置檔案需要管理者根據自己情況手工進行修改,如果直接采用的話,那麼國内很多郵件你将收不到。
二、安裝IMSS
趨勢科技的IMSS(InterScan Messaging Security Suite)版整合了垃圾郵件防治服務SPS(Spam Prevention Solution)2.0版。一般來說,過濾伺服器上的垃圾郵件主要采取如下兩種方法:一是根據設定的規則直接拒收垃圾郵件;二是将郵件接收下來後再實施過濾。相比來看,前一種方法具有更高的效率,對郵件直接拒收,既節省網絡帶寬,又可減小伺服器的性能開銷。但是,這樣做常常容易“殃及無辜”,使郵件使用者丢失信件。後一種方法盡管效率不高,卻可能減少出錯的頻率。如果伺服器首先對接收下來的郵件進行有效分析,然後再交由使用者進行選擇,那麼使用者就不會為E-mail的無故丢失而煩惱。IMSS屬于後者。
IMSS主要功能:
1. 利用資料庫對比實作垃圾郵件過濾 :提供被動式的垃圾郵件攔阻方式,利用建立垃圾郵件的黑名單資料庫,根據來源的IP位址、網域,寄件人的電子郵件位址或是内容、标頭所含的關鍵詞等做為資料庫的基礎。再将寄達的電子郵件與這已知的垃圾郵件資料庫比對,藉以判别是否為垃圾郵件然後再來做攔阻的動作
2. 智能型判斷過濾垃圾郵件 :提供啟發式(Heuristic)掃描引擎,實作主動式的智能攔阻方式,根據郵件的多項特征,包括内容、标頭、格式等來判斷這封email會不會是封垃圾郵件,再來針對這封電子郵件做處理。可以用來辨識和監測已識别及未識别的新型垃圾郵件。
3. 支援彈性設定垃圾郵件過濾器規則 :為了規避誤判風險,當SPS檢測出垃圾郵件之後,還會依照确信程度的不同分作四種等級,再依據設定進行“隻做标記”、“隔離郵件”及“直接删除”操作。
4. 支援黑名單及白名單功能 :支援黑名單(惡意郵件位址)及白名單(可信郵件位址)功能 。可以針對郵件來源網域,寄件者甚至是電子郵件本身的關鍵詞來做特别處理的動作。這項功能可以實作針對某些網域或是寄件者的信件設定規則,不僅要嚴加看管,必要情況下可以直接列入拒絕往來清單。
5. 實作與IMSS郵件病毒過濾網關內建: 通過産品的深度內建,可以實作多種判别條件的組合,能夠更準确、更高效地進行網關級的郵件過濾,更完善地保護企業内部網絡資源。
6. 多平台支援(Windows 2000/2003、Linux、Unix)。
硬體配置:CPU:Intel Pentium III processor 1 GHz 以上處理器,Memory:1 GB RAM,Disk Space:最小 2 GB 硬碟空間.交換空間2GB。
1. 修改/etc/postfix/main.cf中如下參數,更改為:
myhostname = trendmicro.com.cn
mydomain = trendmicro.com.cn
myorigin = trendmicro.com.cn
inet_interfaces=all
mydestination = trendmicro.com.cn
local_recipient_maps =
//黑色域名部分請填寫對應的domain name.
2. 在 /var/spool/postfix目錄下建立etc目錄,并運作:
# cp /etc/resolv.conf /var/spool/postfix/etc/
3、下載下傳安裝IMSS 5.5
下載下傳之前需要到軟體官方網站,注冊并且得到一個AC—CODE,您需要提供以上激活碼以得到病毒碼及其他安全更新檔的下載下傳.下載下傳連結:http://www.trendmicro.com/ftp/products/interscan/imss55linux1064.tar.gz将下載下傳檔案拷貝到一個臨時目錄/tmp中。
# tar vxf imss55linux1064.tar.gz
#make;make install
#./isinst
系統提供了一個交換式的指令行界面,安裝中請選擇支援postfix,并根據實際情況确定是否安裝集中管理平台(TMCM)。安裝結束系統提示可以打開Web管理的IP位址和端口号:見圖2。
圖2 IMSS 5.5 安裝完成
4、指令行下的參數配置:
1、 1、/etc/postfix/main.cf檔案末尾添加如下内容:
default_process_limit=200
imss_timeout=10m
imss_connect_timeout=1s
content_filter = imss:localhost:10025
imss_destination_recipient_limit=200
imss_destination_concurrency_limit=20
2、在/etc/postfix/master.cf檔案末尾添加以下内容:
#IMSS: content filter smtp transport "imss" for IMSS
imss unix - - n - - smtp
-o disable_dns_lookups=yes
-o smtp_connect_timeout=$imss_connect_timeout
-o smtp_data_done_timeout=$imss_timeout
#IMSS: content filter loop back smtpd
localhost:10026 inet n - n - 20 smtpd
-o content_filter=
-o smtpd_timeout=$imss_timeout
-o local_recipient_maps=
-o myhostname=localhost.$mydomain
3. Relay 控制
a. 允許Relay的Domain設定:
編輯/etc/postfix/main.cf檔案,在如下位置添加允許的任意Relay的Domain,如:
relay_domains = 263.net
b. 允許接受的Domain設定:
編輯/etc/postfix/main.cf檔案,在如下位置添加允許接受的Domain
c. 不受Relay限制的位址設定
mynetworks = 10.11.240.0/24, 127.0.0.1
說明:所謂Relay就是指别人能用這台SMTP郵件伺服器,給任何人發信,這樣别有用心的垃圾發送者可以使用筆者機關的這台郵件伺服器大量發送垃圾郵件,而最後别人投訴的不是垃圾發送者,而是機關的伺服器。
參數relay_domains & mydestination的主要差別在于:
Postfix會轉發目的地符合 $relay_domains及其子域的郵件;
Postfix會接受目的地符合 $mydestination的郵件,并且在沒有smart host的情況下嘗試對這些域進行本地落地處理,因而,為了能正常的接受這些郵件,一定要對齊設定smart host;IMSS UNIX的Relay 控制界面設定中的域,即是$mydestination參數值,因而,一定要在IMSS的Domain-Based Delivery中做相應Deliver設定。
5、重新啟動Postfix伺服器:
#postfix start
重新讓postfix讀取更改後的配置隻需運作“postfix reload”即可。
打開服務
器的8081端口:
# iptables -A FORWARD -i eth0 -p tcp --dport 8081 -j ACCEPT
iptables -A FORWARD -i eth0 -p udp --dport 8081 -j ACCEPT
6、啟用Web方式管理:
伺服器從新啟動完畢,可以進行Web方式管理,開Web浏覽器中輸入:http://yourip:8081/IMSS.html或者http://yourhost:8445/IMSS.html 即可。第一次進入Web界面時系統提示輸入密碼,此時密碼是空的,可以直接用滑鼠點選“Enter”鍵進入Web管理界面後,馬上設定管理者密碼。見圖3。
圖-3 首次登陸界面
點選“Policy Manager”選項,下面就可以制定自己的郵件伺服器郵件管理政策,見圖4。
圖-4 基于Web方式的IMSS 5.5的郵件管理政策界面
5 、軟體更新
可以采取兩種方法Web方式和指令行,這裡筆者喜歡在指令行下操作:
下載下傳更新布丁,連結:http://www.trendmicro.com/ftp/products/
patches/isem522-imss55-linux-patch1.tar.gz
#mv isem522-imss55-linux-patch1.tar.gz /tmp
#cd /tmp
#gunzip isem522-imss55-linux-patch1.tar.gz
#./patchinstall install
軟體更新過程中IMSS5.5服務将暫時中止,更新後系統會自動啟動IMSS 5.5服務。見圖-5。
圖5 更新IMSS資料庫
三、使用專用工具防止垃圾郵件
還可以利用其他的專用工具來防止垃圾郵件,比較著名的有由Matt Sergeant、Craig Hughes和Justin Mason于釋出的SpamAssassin(SA)。目前最新版本是3.0.2,它是較為流行的反垃圾郵件軟體,據SpamAssassin供應商 Deersoft的統計,目前大約有3萬台Unix伺服器上使用了SpamAssassin。SpamAssassin利用Perl語言來對郵件内容進行規則比對,進而達到判斷過濾垃圾郵件的目的。它的判斷方式是基于評分的方式,也就是說如果這封郵件符合某條規則,則給與一定分值;當累計的分值超過了一定限度時,則判定該郵件為垃圾郵件。對Sendmail、Qmail、Postfix和Exim等各種郵件平台都适用。當它被最終使用者或系統管理者調用時,它可以友善地與大多數流行的郵件處理系統進行接口互連。SpamAssassin在對一封信件應用了各項規則之後,生成一個分值來表示其為垃圾郵件的可能性。它可以設定上百條規則,包括對郵件頭的處理、對郵件内容的處理及對郵件結構的處理等。每條規則都對應一個分值(可正、可負),每封信件的分值就是所比對規則的分值之和。如果分值為負,表示這封信件是正常的;相反,如果分值為正,則表示信件有問題。如果超過了某個預設的分值,過濾器就會辨別其可能為垃圾郵件,然後交由使用者做出最終抉擇。SpamAssassin的安裝過程比較簡單。啟動SpamAssassin伺服器:
# service spamassassin start (啟動SpamAssassin伺服器)
Starting spamd: [ 确定 ]
配置過程:
SpamAssassin預設了許多預設規則,可以在/usr/share/spamassassin下找到,使用者想添加自己的規則,可以配置通過/etc/mail/spamassassin/local.cf檔案實作。要在其中添加白名單(即可以确信不會發送垃圾郵件的發件人清單)。設定代碼如下:
whitelist_from_rcvd [email protected]
whitelist_from_rcvd @ people.com
以上兩條規則将[email protected] 郵箱和@ people.com 整個域加入了白名單。下面還要把SpamAssassin與Sendmail(此處以Postfix為例、Qmail略有不同)整合在一起。最簡單的方法是使用procmail來調用SpamAssassin過濾器。procmail來調用SpamAssassin的過程見圖6。
圖6 procmail來調用SpamAssassin的過程
添加以下内容到/etc/procmailrc檔案:
:0fw
| /usr/bin/spamassassin
:0
* X-Spam-Status: Yes
spam
如果希望SpamAssassin不檢查大郵件,可以對其做出限制,添加一行:
:0fw * < 1000000 | /usr/bin/spamassassin
這段代碼表示把郵件檢查的大小限制在1000K位元組以内。SpamAssassin還提供了一個專門的spamd背景守護程式,可以設定為系統啟動時自動啟動它。在Mail-SpamAssassin-3.-0.2/spamd/下有一個redhat-rc-script.sh腳本,将此腳本放入Red Hat的啟動目錄/etc/rc.d/init.d/下即可。同時,還需要對/etc/procmailrc檔案做如下修改:
| /usr/bin/spamc -s 100000
這樣就可以通過控制spamd程序來調整過濾器的運作狀态。配置完成後,可以發郵件進行測試。如果看到在郵件頭出現與spam檢查相關的幾項内容,表示SpamAssassin已經開始發揮作用。
除了設定内部的規則之外,SpamAssassin也可以通路其它外部的垃圾郵件過濾規則集,這樣可以進一步增強其适用性。Chinese_rules.cf是用于垃圾郵件過濾系統SpamAssassin的中文垃圾郵件過濾規則集。由于以前沒有中文的過濾規則集,SpamAssassin對中文郵件過濾的準确性不高。CCERT反垃圾郵件研究小組推出了第一個基于SpamAssassin的中文垃圾郵件過濾規則集Chinese_rules.cf。該規則集每周更新一次。把Chinese_rules.cf複制到/usr/share/spamassassin配置文檔中的指令:
# wget -N -P /usr/share/spamassassin www.ccert.edu.cn/spam/sa/Chinese_rules.cf
自動更新:
CCERT每周更新一次規則集,更新使用CCERT反垃圾郵件服務在6個月内處理過的垃圾郵件為樣本。經常更新Chinese_rules.cf會使過濾效果更好。
Linux有一個稱為crond的守護程式,主要功能是周期性地檢查 /var/spool/cron目錄下的一組指令檔案的内容,并在設定的時間執行這些檔案中的指令。使用者可以通過crontab 指令來建立、修改、删除這些指令檔案。例如用 crontab指令實作每周一08:35自動更新:
首先建立一個檔案,檔案名稱myproject(名稱自己設定):
#crontab -e
檔案内容:
35 08 * * 1 wget -N -P /usr/share/spamassassin www.ccert.edu.cn/spam/sa/Chinese_rules.cf; /etc/init.d/init-script restart
用vi編輯後存盤退出。
(3)使用 crontab指令添加到任務清單中:
#crontab myproject
這樣Linux伺服器會在每星期一的8點35分會自動下載下傳Chinese_rules.cf更新規則。
SpamAssassin使用基于規則的垃圾郵件過濾技術,比分布式黑名單運作得更快,因為分布式黑名單需要查詢網絡伺服器。對大多數使用者而言,它能捕捉幾乎所有的垃圾郵件,而不需要隔離合法郵件。實際上它還提供了無限的調整和定制選項。
四、其他措施
1.隐藏郵件伺服器IP位址
如果網絡中有專門發送郵件的中央郵件伺服器,為許多主機提供通路,那麼必須隐藏郵件位址的主機名部分,(以postfix郵件伺服器為例)例如一條名為:pc-jok.cao.com的主機上有一個jok使用者那麼它的郵件名稱是:[email protected] main.cf加入兩行:
masquerade_domain=$mydomian
masquerade_exceptions=root
第一行通知postfix郵件伺服器對所在德 域允許位址化裝,通過$mydomian變量完成,這樣[email protected]變為[email protected],第二行将root使用者排除,即不對root使用者僞裝。
2.防範DOS攻擊:
DOS(拒絕服務攻擊)一段時間以來成為許多機關郵件伺服器的最大殺手。對于郵件伺服器的拒絕服務攻擊原理很簡單,就是不斷地向郵件伺服器發送大量的郵件,直到超過最大容量而崩潰為止。拒絕服務攻擊有時并非有針對性的黑客行為,現在的病毒常常會利用自身的SMTP引擎,向感染電腦裡的存在的位址狂發大量郵件。如果中小企業認為自己的公司小,不會成為攻擊目标,這種想法已經不現實了。對于中小企業來說,要預防DOS攻擊比大型企業要容易,因為小型企業往往不會有太多的郵件來往,我們可以根據業務量的大小,限制每個連接配接的郵件數,以及每封郵件的收件人數。這樣,使用者對于DOS攻擊就可以做到盡早地發現并采取措施,而不會等到伺服器崩潰的時候才發現被人實施了DOS攻擊。步驟如下:
2. 限制伺服器使用的程序數目
可以通過指定/etc/postfix/main.cf檔案的下列參數來控制使用的并發程序總量:
default_process_limit = 50
這樣伺服器被允許同時允許60個并發程序(例如smtp用戶端、smtp伺服器端和本地分發)。如果希望增加同時接受1000條資訊,可以修改 /etc/postfix/ master.cf檔案,使smtp服務的最大程序達到1000,如下所示:
#=============================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (60)
# ===========================================
smtp inet n - n - 1000 smtpd
3.控制最大郵件尺寸
可以修改/etc/postfix/main.cf如下參數控制郵件尺寸
message_size_limit = 1073741824
這樣伺服器可以處理最大郵件尺寸是1073741824位元組 (10兆).
4. 控制同時發送一個遠端伺服器的郵件數量
同時向遠端伺服器發送太多SMTP連接配接是不合理的,也是危險的(可能會被認為是
發送垃圾郵件)。一些大的ISP站點(AOL、 Yahoo!、 Hotmail)通常要求優
化等到許可才能使用發送并發連接配接。Postfix 也能通過下面參數設定一個站點的最
大并發連接配接數量:
default_destination_concurrency_limit = 20
這樣使到達單一站點的并發連接配接數量不能超過20個。
5.安裝防病毒軟體:
F-Prot Antivirus軟體包安裝和配置過程:軟體包格式: fp-linux-ws.rpm
軟體包的大小(KB):3970KB,下載下傳位址:
http://files.f-prot.com/files/linux-x86/fp-linux-ws.rpm
安裝F-Prot Antivirus軟體包前,請先啟動SpamAssassin伺服器:
Wget http://files.f-prot.com/files/linux-x86/fp-linux-ws.rpm
Wget -ivh fp-linux-ws.rpm
更新的F-Prot Antivirus病毒庫的操作:
# cd /usr/local/f-prot/tools/
# ./check-updates.pl (更新指令)
***************************************
* F-Prot Antivirus Updater *
Nothing to be done...
總結:Postfix是目前比較流行的,擁有相當好的安全性和高效率的郵件系統。
Postfix自身帶了很多反垃圾郵件的功能可以阻止一部分垃圾郵件,但是面對
日益癡狂的垃圾郵件還是需要一些專業軟體的支援