linux 服務(wù)器必備的常用安全軟件: 作為一個(gè)合格的網(wǎng)絡(luò)系統(tǒng)管理員,要誰時(shí)應(yīng)對(duì)可能發(fā)生的安全問題,掌握Linux下各種必須的安全工具設(shè)備是很重要的。本文主要介紹Linux上常用的安全工具,例如,Nmap、Snort、Nesseu等安裝、使用和維護(hù)知識(shí)。通過這些工具管理人員能夠了解其系統(tǒng)目前存在的安全隱患、入侵者可能利用的漏洞,及時(shí)發(fā)現(xiàn)入侵,并構(gòu)造一個(gè)堅(jiān)固的防御體系將入侵拒之門外。
一、安全信息收集軟件
對(duì)于系統(tǒng)管理員來說,了解和掌握系統(tǒng)當(dāng)前的安全狀態(tài)是做到知己的第一個(gè)步驟。安全信息收集軟件就是用來收集目前系統(tǒng)安全狀態(tài)的有力工具。端口掃描軟件和漏洞掃描軟件是常用的信息收集軟件。入侵者通常通過端口掃描軟件來掌握系統(tǒng)開放端口,運(yùn)行服務(wù)器軟件版本和操作系統(tǒng)版本等相關(guān)信息。而對(duì)于管理人員,通過這些軟件可以讓管理人員從入侵者的角度來審視系統(tǒng),并且能夠根據(jù)這些信息進(jìn)行相應(yīng)的配置和修改來迷惑入侵者。漏洞掃描軟件能夠獲得具體的漏洞信息,利用這些漏洞信息,入侵者能夠輕易地訪問系統(tǒng)、獲得非授權(quán)信息,甚至是獲得整個(gè)系統(tǒng)的控制權(quán)限。而對(duì)于管理人員,通過漏洞掃描軟件獲得的信息能夠幫助自己及時(shí)對(duì)系統(tǒng)進(jìn)行加固和防御,讓入侵者無機(jī)可乘。
1、Nmap
Nmap是一個(gè)網(wǎng)絡(luò)探測(cè)和安全掃描程序,使用這個(gè)軟件可以掃描大型的網(wǎng)絡(luò),以獲取那臺(tái)主機(jī)正在運(yùn)行及提供什么服務(wù)等信息。Nmap支持很多掃描技術(shù),例如UDP、TCPconnect()、TCP SYN(半開掃描)、FTP代理(bounce攻擊)、反向標(biāo)志、ICMP、FIN、ACK掃描、圣誕樹(Xmas Tree)、SYN掃描和null掃描。Nmap還提供了一些高級(jí)的特征,例如,通過TCP/IP協(xié)議棧特征探測(cè)操作系統(tǒng)類型、秘密掃描、動(dòng)態(tài)延時(shí)、重傳計(jì)算和并行掃描,通過并行ping掃描探測(cè)關(guān)閉的主機(jī)、誘餌掃描,避開端口過濾檢測(cè),直接RPC掃描(無須端口影射)、碎片掃描,以及靈活的目標(biāo)和端口設(shè)定。
?。?)安裝
Nmap的安裝很簡(jiǎn)單,Linux各發(fā)行版本上通常都已經(jīng)安裝了Namp。這里首先用nmap-v查看當(dāng)前系統(tǒng)所安裝的nmap版本號(hào):
# nmap -v
Starting nmap V. 4.00.(www.insecure.org/nmap/)
由于目前系統(tǒng)所安裝的Nmap為4.00,不是最新版本,因此要首先從http://www.insecure.org/nmap/下載最新版本的源代碼。目前最新版本為Nmap-5.5.tar.bz2,該文件為源代碼壓縮包,需要用bzip2進(jìn)行解壓縮。我們將該文件下載并保存在/root/nmap下,以root用戶進(jìn)行安裝。
# bzip2 –cd nmap-5.5.tar.bz2∣tar xvf-
該命令將Nmap源代碼解壓縮至目錄nmap-5.5。
進(jìn)入該目錄進(jìn)行配置:
# ./configure
配置結(jié)束后用make命令進(jìn)行編譯:
# make
編譯結(jié)束后用make install進(jìn)行安裝:
# make install
(2)使用
◆各種掃描模式與參數(shù)
首先需要輸入要探測(cè)的主機(jī)IP地址作為參數(shù)。假設(shè)一個(gè)LAN中有兩個(gè)節(jié)點(diǎn):192.168.12.1和192.168.12.2
# nmap 192.168.12. 1
Starting nmap 5.5(http://www.insecure.org/nmap/) at 2010-01-24 15:24 CST
Interesting ports on 192.168.12. 1: (The 1651 ports scanned but not shown below are in state: closed)
PORTSTATE SERVICE
25/tcpopen smtp
80/tcpopen http
135/tcp open msrpc
139/tcp open netbios-ssn
443/tcp open https
445/tcp open Microsoft-ds
1025/tcp open NFS-or-IIS
1033/tcp open netinfo
1521/tcp open oracle
2030/tcp open device2
3372/tcp open msdtc
8080/tcp open http-proxy
MAC Address: 00:E0:4C:12:FA:4B (Realtek Semiconductor)
Nmap run completed – 1 IP address (1 host up)
Scanned in 22.882 seconds
上面是對(duì)目標(biāo)主機(jī)進(jìn)行全面TCP掃描的結(jié)果,顯示了監(jiān)聽端口的服務(wù)情況,這一基本操作不需要任何參數(shù)。但是, 由于在掃描過程中建立了完整的TCP連接,主機(jī)可以很容易地監(jiān)測(cè)到這類掃描。該命令是參數(shù)開關(guān)-sT的缺省。
-sS選項(xiàng)可以進(jìn)行更加隱蔽地掃描,并防止被目標(biāo)主機(jī)檢測(cè)到,但此方式需要用戶擁有root權(quán)限。-sF、-sX和-sN則可以進(jìn)行一些超常的掃描。假如目標(biāo)主機(jī)安裝了過濾和日志軟件來檢測(cè)同步空閑字符SYN,那么-sS的隱蔽作用就失效了,此時(shí)可以采用-sF(隱蔽FIN)、-sX(Xmas Tree)及-sN(Null)方式掃描。
這里需要注意的是,由于微軟的實(shí)現(xiàn)方式不同,對(duì)于運(yùn)行Win 2003,Vista等NT的機(jī)器FIN 、Xmas或Null的掃描結(jié)果都是將端口關(guān)閉,由此可作為推斷目標(biāo)主機(jī)運(yùn)行Windows操作系統(tǒng)的一種方法。以上命令都需要有root權(quán)限。-sU選項(xiàng)是監(jiān)聽目標(biāo)主機(jī)的UDP,而不是默認(rèn)的TCP端口。盡管在Linux機(jī)器上有時(shí)慢一些,比如,輸入上面的例子:
# nmap -sU 192.168.12.1
Starting nmap 5.5 (http://www.insecure.org/nmap/) at 2010-01-24 15:28 CST
Interesting ports on 192.168.12.1:
(The 1472 ports scanned but not shown below are in state:closed)
PORTSTATESERVICE
135/udp open msrpc
137/udp open∣filtered netbios-ns
138/udp open∣filtered netbios-dgm
445/udp open∣filtered microsoft-ds
500/udp open∣filtered isakmp
3456/udp open∣filtered IISrpc-or-vat
MAC Address: 00:E0:4C:12:FA:44 (Realtek Semiconductor)
Nmap run completed – 1 IP address (1 host up) scanned in 4.381 seconds
◆操作系統(tǒng)探測(cè)
使用-O選項(xiàng)可推斷目標(biāo)主機(jī)的操作系統(tǒng),既可與上述的命令參數(shù)聯(lián)合使用,也可單獨(dú)調(diào)用。Nmap利用TCP/IP指紋技術(shù)來推測(cè)目標(biāo)主機(jī)的操作系統(tǒng)。還使用前面的例子:
#nmap -O 192.168.12. 1
Starting nmap 5.5(http://www.insecure.org/nmap/)at 2010-01-24 16:03 CST
Interesting ports on 192.168.12. 1:
(The 1651 ports scanned but not shown below are in state:closed)
PORTSTATE SERVICE
25/tcpopen smtp
80/tcpopen http
135/tcp open msrpc
139/tcp open netbios-ssn
443/tcp open https
445/tcp open Microsoft-ds
1025/tcp open NFS-or-IIS
1033/tcp open netinfo
1521/tcp open oracle
2030/tcp open device2
3372/tcp open msdtc
8080/tcp open http-proxy
MAC Address: 00:E0:4C:12:FA:44 (Realtek Semiconductor)
Device type: general purpose
Running:Microsoft Windows 95/98/ME∣NT/2K/XP
OS details:Microsoft Windows Millennium Edition(Me),Windows 2000 Pro or Advanced Server,or Windows XP
Nmap run completed – 1 IP address(1 host up) scanned in 3.398 seconds
Nmap提供了一個(gè)OS數(shù)據(jù)庫,上例中檢測(cè)到了該主機(jī)運(yùn)行的操作系統(tǒng)為Windows系列操作系統(tǒng),可能為Windows 98、Windows 2000 Pro,或者為Windews vista/Windows 7等。
◆更進(jìn)一步的應(yīng)用
除了一次只掃描一個(gè)目標(biāo)主機(jī)外,還可以同時(shí)掃描一個(gè)主機(jī)群,比如nmap –sT –O 203.187.1.1-50就可以同時(shí)掃描并探測(cè)IP地址在203.187.1.1到203.187.1.50之間的每一臺(tái)主機(jī)。當(dāng)然這需要更多的時(shí)間,耗費(fèi)更多的系統(tǒng)資源和網(wǎng)絡(luò)帶寬,輸出結(jié)果也可能很長(zhǎng)。所以,可以使用下面命令將結(jié)果重定向輸送到一個(gè)文件中:
#nmap -sT -O -oN test.txt 202.96.1.1-50
另外的一些命令參數(shù)選項(xiàng)如下:
-I 進(jìn)行TCP反向用戶認(rèn)證掃描,可以透露掃描用戶信息;
-iR 進(jìn)行隨機(jī)主機(jī)掃描;
-p 掃描特定的端口范圍;
-v 長(zhǎng)數(shù)據(jù)顯示,-v -v是最長(zhǎng)數(shù)據(jù)顯示;
-h 快捷幫助。
下面給一個(gè)綜合了上述參數(shù)的例子:
#nmap -sS -p 23,80 -oN ftphttpscan.txt 203.187.53.50-100
◆Nmap圖形用戶界面
Nmap有一些圖形用戶前端,比如,NmapFE(GTK界面)網(wǎng)址為
http://codebox.net/nmapfe.html;Kmap(Qt/KDE前端)網(wǎng)址為
http://www.edotorg.org/kde/kmap/;KNmap(KDE前端)網(wǎng)址為
http://pages.infinit.net/rewind/。
2.Nessus
Nessus是一個(gè)功能強(qiáng)大而又易于使用的遠(yuǎn)程安全掃描器,它不僅免費(fèi),而且更新極快。安全掃描器的功能是對(duì)指定網(wǎng)絡(luò)進(jìn)行安全檢査,找出該網(wǎng)絡(luò)是否存在有導(dǎo)致對(duì)手攻擊的安全漏洞。該系統(tǒng)被設(shè)計(jì)為Client/Sever模式,服務(wù)器端負(fù)責(zé)進(jìn)行安全檢查,客戶端用來配置管理服務(wù)器端。在服務(wù)端還采用了plug-in的體系,允許用戶加入執(zhí)行特定功能的插件,該插件可以進(jìn)行更快速和更復(fù)雜的安全檢查。在Nessus中還采用了一個(gè)共享的信息接口,稱之知識(shí)庫,其中保存了前面進(jìn)行檢査的結(jié)果。檢查的結(jié)果可以HTML、純文本、LaTeX(一種文本文件格式)等幾種格式保存。在未來的新版本中,Nessus將會(huì)支持速度更快的安全檢查,而且這種檢查將會(huì)占用更少的帶寬,其中可能會(huì)用到集群的技術(shù)以提高系統(tǒng)的運(yùn)行效率。
Nessus的主要優(yōu)點(diǎn)在于其采用了基于多種安全漏洞的掃描,避免了掃描不完整的情況;它是免費(fèi)的,比起商業(yè)的安全掃描工具,如ISS具有價(jià)格優(yōu)勢(shì);擴(kuò)展性強(qiáng)、容易使用、功能強(qiáng)大,可以掃描出多種安全漏洞。
Nessus的安全檢查完全是由plug-ins的插件完成的。目前Nessus提供的安全檢查插件已達(dá)18類750個(gè),而且這個(gè)數(shù)量還會(huì)增加。比如,在useless services類中,Echo port open和Chargen插件用來測(cè)試主機(jī)是否易受到已知的echo-chargen攻擊;在backdoors類中,PcAnywhere插件用來檢查主機(jī)是否運(yùn)行了BO、PcAnywhere等后臺(tái)程序。更可喜的是,其中包括了對(duì)最近肆虐一時(shí)的CodeRed及其變種的檢測(cè)。
在Nessus主頁中不但詳細(xì)介紹了各種插件的功能,還提供了解決問題的相關(guān)方案。有關(guān)plug-in的詳細(xì)說明,請(qǐng)參看http://cgi.nessus.org/plugins/dump.php3?viewby=family。
除了這些插件外,Nessus還為用戶提供了描述攻擊類型的腳本語言,進(jìn)行附加的安全測(cè)試,這種語言稱為Nessus攻擊腳本語言(NSSL),用它來完成插件的編寫。在客戶端,用戶可以指定運(yùn)行Nessus服務(wù)的機(jī)器、使用的端口掃描器、測(cè)試的內(nèi)容及測(cè)試的IP地址范圍。Nessus本身是工作在多線程基礎(chǔ)上的,所以用戶還可以設(shè)置系統(tǒng)同時(shí)工作的線程數(shù)。這樣用戶在遠(yuǎn)端就可以設(shè)置Nessus的工作配置。安全檢測(cè)完成后,服務(wù)端將檢測(cè)結(jié)果返回到客戶端,客戶端生成直觀的報(bào)告。在這個(gè)過程當(dāng)中,由于服務(wù)器向客戶端傳送的內(nèi)容是系統(tǒng)的安全弱點(diǎn),為了防止通信內(nèi)容受到監(jiān)聽,其傳輸過程還可以選擇加密。19寸顯示器最佳分辨率
(1)安裝軟件
Nessus由客戶端和服務(wù)器端兩部分組成。首先看服務(wù)器端的安裝。從http://ftp.nessus.org/nessus/nessus-2.2.2a/src/下載源代碼包,其中包括nasl庫文件libnasl-2.2.2a.tar.gz、nessus核心文件nessus-core-2.2.2a.tar.gz、nessus庫文件nessus-libraries-2.2a.tar.gz和nessus插件文件nessus-plugins-2.2.2a.tar.gz 四個(gè)文件。
首先用tar xzvf nessus-*將這四個(gè)軟件包解開。第一個(gè)先安裝nessus的lib庫:
#cd nessus-libaries
#./configure & make &make install
然后以同樣的方法按照上面的順序安裝其它三個(gè)軟件包。安裝完畢后,確認(rèn)在etc/ld.so.conf文件加入已安裝庫文件的路徑/usr/local/lib。如果沒有,則只需在該文件中加入這個(gè)路徑,然后執(zhí)行l(wèi)dconfig,這樣nessus運(yùn)行的時(shí)候就可以找到運(yùn)行庫了。
◆創(chuàng)建用戶
Nessus服務(wù)端有自己的用戶資料庫,其中對(duì)每個(gè)用戶都做了約束。用戶可以在整個(gè)網(wǎng)絡(luò)范圍內(nèi)通過nessusd服務(wù)端進(jìn)行安全掃描。用nessus-adduser命令創(chuàng)建用戶,根據(jù)命令提示創(chuàng)建用戶。
Nessus-adduser是Nessusd的附帶工具,安裝完畢后,在安裝目錄下會(huì)產(chǎn)生這個(gè)程序。
◆配置Nessus服務(wù)端程序Nessusd
Nessusd的配置文件為nessusd.conf,位于/usr/local/etc/nessus/目錄下,一般情況下不需要改動(dòng)。這里還需要運(yùn)行nessus-mkcert來生成服務(wù)器證書,可以按照默認(rèn)設(shè)置。
◆啟動(dòng)nessusd
在上面的準(zhǔn)備工作完成后,以root用戶身份用下面的命令啟動(dòng)服務(wù)端:
# netssusd –D
Loading the plugins…3570(out of 5830)
載入完所有插件后將以系統(tǒng)服務(wù)進(jìn)程的身份運(yùn)行。
(2)使用
按照上面的方法啟動(dòng)Nessus的服務(wù)進(jìn)程后,就可以執(zhí)行客戶端程序進(jìn)行安全掃描了。
首先提示登錄到Nessus服務(wù)器,在Nessus Host后面輸入Nessus服務(wù)器所在的Linux機(jī)器IP地址,端口號(hào)及加密方式不需要做改動(dòng)。輸入用戶名,單擊 Log in登錄。系統(tǒng)會(huì)詢問是否接受服務(wù)器證書,選擇第一項(xiàng),然后單擊YES接受證書。
一旦登錄成功,Log in按鈕會(huì)變?yōu)長(zhǎng)og out,對(duì)話框的旁邊還會(huì)有connected的提示。登錄后就可以進(jìn)行相應(yīng)的漏洞掃描了。下面通過選擇Plug-in插件來進(jìn)行相應(yīng)的安全掃描。下面是插件所能檢査的攻擊方法,單擊每個(gè)攻擊方法會(huì)彈出一個(gè)對(duì)話框介紹它的危害性及解決方法。然后選擇掃描的目標(biāo)主機(jī),單擊target selection,在窗口中輸入目標(biāo)地址,如上面所輸入的192.168.12. 2。這里作者用的是一個(gè)內(nèi)部地址,還可以用192.168.6.0/24的方式指定掃描192.168.6.1到192.168.6.255整個(gè)網(wǎng)段。
設(shè)置完畢后,單擊start scan開始進(jìn)行掃描。根據(jù)選擇的插件數(shù)量、掃描的范圍掃描時(shí)間不等。掃描結(jié)束后會(huì)有掃描結(jié)果。
在窗口的中列出了所有被掃描的網(wǎng)絡(luò)、主機(jī)和主機(jī)相 應(yīng)的端口,Nessus給出了安全漏洞的嚴(yán)重等級(jí)、問題的產(chǎn)生原因及解決方法。最后,掃描結(jié)果還能夠以XML、ASCⅡ、HTML、NSR等多種格式存盤,做為參考資料供以后使用。
入侵檢測(cè)系統(tǒng)(IDS)
1、原理
入侵檢測(cè)系統(tǒng)(Intrusion Detection System,IDS)是一種主動(dòng)保護(hù)自己免受攻擊的一種網(wǎng)絡(luò)安全技術(shù)。作為防火墻的合理補(bǔ)充,入侵檢測(cè)技術(shù)能夠幫助系統(tǒng)監(jiān)測(cè)攻擊行為,擴(kuò)展了系統(tǒng)管理員的安全管理能力(包括安全審計(jì)、監(jiān)視、攻擊識(shí)別和響應(yīng)),提高了信息安全基礎(chǔ)結(jié)構(gòu)的完整性。它從計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)中的若干關(guān)鍵點(diǎn)收集信息,并分析這些信息。 入侵檢測(cè)被認(rèn)為是防火墻之后的第二道安全閘門,能夠在不影響網(wǎng)絡(luò)性能的情況下能對(duì)網(wǎng)絡(luò)進(jìn)行監(jiān)測(cè),防止或減輕上述的網(wǎng)絡(luò)威脅。
入侵檢測(cè)系統(tǒng)有很多種,從部署的位置可以分為以下幾種:
◆基于網(wǎng)絡(luò)的系統(tǒng),它放置于網(wǎng)絡(luò)之上,靠近被檢測(cè)的系統(tǒng),它們監(jiān)測(cè)網(wǎng)絡(luò)流量并判斷是否正常。
◆基于主機(jī)的系統(tǒng),其經(jīng)常運(yùn)行在被監(jiān)測(cè)的系統(tǒng)之上,用以監(jiān)測(cè)系統(tǒng)上正在運(yùn)行的進(jìn)程是否合法。
◆最近出現(xiàn)的一種系統(tǒng),位于操作系統(tǒng)的內(nèi)核之中,并監(jiān)測(cè)系統(tǒng)的最底層行為。
從檢測(cè)的技術(shù)手段上可以分為以下兩種:
◆誤用檢測(cè)是將收集到的數(shù)據(jù)與預(yù)先確定的特征知識(shí)庫里的各種攻擊模式進(jìn)行比較,如果發(fā)現(xiàn)有攻擊特征,則判斷有攻擊。特征知識(shí)庫是將己知的攻擊方法和技術(shù)的特征提取出來建立的一個(gè)知識(shí)庫。
◆異常檢測(cè)則是對(duì)收集到的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析。它首先假定所有的攻擊行為與正常行為不同,這樣發(fā)現(xiàn)與正常行為有不同時(shí),則判斷存在攻擊。它需要建立正常行為的標(biāo)準(zhǔn),如登錄時(shí)錯(cuò)誤次數(shù)為多少時(shí)視為正常。
相比而言,誤用檢測(cè)的原理簡(jiǎn)單,很容易配置,特征知識(shí)庫也容易擴(kuò)充。但它存在一個(gè)致命的弱點(diǎn)――只能檢測(cè)到已知的攻擊方法和技術(shù)。異常檢測(cè)可以檢測(cè)出已知的和未知的攻擊方法和技術(shù),但是其問題在于正常行為標(biāo)準(zhǔn)只能采用人工智能、機(jī)器學(xué)習(xí)算法等來生成,并且需要大量的數(shù)據(jù)和時(shí)間,同時(shí),由于現(xiàn)在人工智能和機(jī)器學(xué)習(xí)算法仍處于研究階段。所以現(xiàn)在的入侵檢測(cè)系統(tǒng)大多采用誤用檢測(cè)的分析方法。
下面給介紹的Snort就是一個(gè)基于網(wǎng)絡(luò)的、采用誤用分析技術(shù)的入侵檢測(cè)系統(tǒng)。
2.Snort的安裝、配置和使用
Snort是一個(gè)開放源碼的網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)。Snort的功能包括采用Libpcap捕獲數(shù)據(jù)鏈路層的分組,并進(jìn)行協(xié)議棧分析(TCP/IP協(xié)議)。Snort在內(nèi)部使用Misused檢測(cè)模型進(jìn)行入侵檢測(cè),即通過一個(gè)完整的入侵規(guī)則庫來實(shí)時(shí)匹配,并探測(cè)入侵行為。這個(gè)規(guī)則庫非常全面,包含了探測(cè)緩沖區(qū)溢出、端口掃描、CGI攻擊等,并處于不斷更新當(dāng)中。Snort可以輕易發(fā)現(xiàn)使用Nmap或Trin00等進(jìn)行的攻擊。Snort也允許用戶方便地編寫和加人自己的規(guī)則。日志可以存儲(chǔ)成Tcpdump二進(jìn)制格式、ASCⅡ格式或數(shù)據(jù)庫格式(包括 MYSQL、PostgreSQL),甚至XML格式。
(1)安裝
在http://www.snort.org/可以下載最新版本的Snort,目前最新穩(wěn)定版本是2.8.0,下載文件為Snort-2.8.0RC2.tar.gz。安裝的方法同上面介紹的幾個(gè)軟件類似。依次經(jīng)過解壓縮后運(yùn)行./configure、make和make install。要注意的是,Snort需要libpcap庫支持,如果尚未安裝可以到http://www.tcpdump.org/下載libpcap源代碼進(jìn)行安裝,目前最新版本為0.8.3。
執(zhí)行文件安裝完畢后還需要下載最新的規(guī)則文件。Snort采用基于誤用的檢測(cè)技術(shù),需要按照預(yù)先定義好的規(guī)則同網(wǎng)絡(luò)當(dāng)中的流量進(jìn)行比對(duì),特征一致時(shí)認(rèn)為有入侵事件發(fā)生,從而釆取相應(yīng)動(dòng)作,因此保持最新的特征庫對(duì)Snort來說尤其重要。將下載到的規(guī)則文件解壓縮,得到rules目錄,其內(nèi)容為按照攻擊類型和攻擊目標(biāo)劃分為不同規(guī)則文件。
(2)配置
Snort依靠命令啟動(dòng)時(shí)指定的配置文件進(jìn)行配置,通常是/etc/snort.conf,可以編輯Snort配置文件源文件所在目錄下/etc/snort.conf來進(jìn)行配置。
# vi /root/snort/snort-2.8.0RC2/etc/
其中需要修改的地方如下:
Var HOME_NET yournetwork
Var RULE_PATH /etc/snort/rules
Preprocessor http_inspect:global
此外還可以根據(jù)需要選擇規(guī)則集合當(dāng)中的規(guī)則文件,例如:
iis_unicode_map /etc/snort/rules/Unicode.map 1252
Include /etc/snort/rules/reference.config
Include /etc/snort/rules/classification.config
yournetwork即為所釆用的IP地址段,規(guī)則文件所在目錄為剛才下載規(guī)則文件解壓縮所在目錄。
(3)使用
輸入下面代碼:
#snort –D –c /root/snort/snort-2.8.0RC2/etc/snort.conf
其中,-D參數(shù)表明Snort以后臺(tái)進(jìn)程方式運(yùn)行,-c指名所釆用的配置文件位置。啟動(dòng)之后可以查看/var/log/snort/alert內(nèi)容來檢査結(jié)果。
#vi alert
[**][1:469:3]ICMP PING NMAP [**]
[Classification:Attempted Information Leak][Priority:2]
01/28-17:30:33.813923 192.168.100.122 ->202.12.37.7
ICMP TTL:50 TOS:0x0 ID:36381 IpLen:20 Dgmlen:28
Type:8 Code:0 ID:51597 Seq:14292 ECHO
[Xref=>http://www.whitehats.com/info/IDS162]
[**][122:1:0](portscan)TCP Portscan[**]
01/28-17:30:33.916752 192.168.12.1 ->202.12.37.7
PROTO255 TTL:0 TOS:0x0 ID:0 iplen:20 Dgmlen:182 DF
由上可以看到,告警文件中記錄了網(wǎng)絡(luò)當(dāng)中一次Nmap端口掃描的行為。
防火墻系統(tǒng)
1、基本原理
防火墻適用于用戶網(wǎng)絡(luò)系統(tǒng)的邊界,屬于用戶網(wǎng)絡(luò)邊界的安全保護(hù)設(shè)備。所謂網(wǎng)絡(luò)邊界即是釆用不同安全策略的兩個(gè)網(wǎng)絡(luò)連接處,比如用戶網(wǎng)絡(luò)和互聯(lián)網(wǎng)之間連接、跟其它業(yè)務(wù)往來單位的網(wǎng)絡(luò)連接及用戶內(nèi)網(wǎng)不同部門之間的連接等。防火墻的目的就是在網(wǎng)絡(luò)連接之間建立一個(gè)安全控制點(diǎn),通過允許、拒絕或重新定向經(jīng)過防火墻的數(shù)據(jù)流,實(shí)現(xiàn)對(duì)進(jìn)、出內(nèi)部網(wǎng)絡(luò)的服務(wù)和訪問的審計(jì)和控制。
目前,有很多廠商提供各種類型的防火墻平臺(tái),通常有幾種常用的分類方法:
按照產(chǎn)品形式可分為硬件防火墻和軟件防火墻;
按照性能可以分為百兆級(jí)和千兆級(jí)防火墻;
按照操作模式可分為透明模式、路由模式和NET(網(wǎng)絡(luò)地址轉(zhuǎn)換);
按照部署位置可分為邊界防火墻和主機(jī)/個(gè)人防火墻;
l按照OSI模型層次可分為包過濾防火墻、狀態(tài)檢測(cè) 防火墻和應(yīng)用代理防火墻。
其中包過濾防火墻是最基本的防火墻,由一些基本路由設(shè)備通過內(nèi)部的網(wǎng)絡(luò)訪問控制規(guī)則實(shí)現(xiàn)。它一般是工作在網(wǎng)絡(luò)層,但在現(xiàn)代網(wǎng)絡(luò)結(jié)構(gòu)中,為了實(shí)現(xiàn)負(fù)載均衡/高可用性,也可能在網(wǎng)絡(luò)第二層實(shí)現(xiàn)。包過濾防火墻的訪問控制功能由一套規(guī)則集組成,這些規(guī)則集是基于網(wǎng)絡(luò)報(bào)文的以下信息實(shí)現(xiàn)的源地址、目的地址、流量類型、網(wǎng)絡(luò)會(huì)話特征或物理端口。
下面介紹的iptables就是一款優(yōu)秀的網(wǎng)絡(luò)層防火墻用他能很容易構(gòu)建一個(gè)功能強(qiáng)大、性能優(yōu)異的防火墻系統(tǒng)。
2.iptables的安裝、配置和使用
Netfilter/iptables IP數(shù)據(jù)包過濾系統(tǒng)是一個(gè)功能強(qiáng)大的工具,可用于添加、編輯和除去規(guī)則,這些規(guī)則是在做數(shù)據(jù)包過濾決策時(shí)防火墻所遵循和組成的規(guī)則。這些規(guī)則存儲(chǔ)在專用的數(shù)據(jù)包過濾表中,而這些表則集成在Linux內(nèi)核中。Linux 2.4內(nèi)核提供的防火墻系統(tǒng)實(shí)際上由netfilter和iptables組成。netfilter組件是內(nèi)核的一部分,由一些數(shù)據(jù)包過濾表組成、這些表包含內(nèi)核用來控制數(shù)據(jù)包過濾處理的規(guī)則集。iptables組件是一種工具,運(yùn)行在用戶空間, 它用來維護(hù)存儲(chǔ)在內(nèi)核中的數(shù)據(jù)包過濾表中的規(guī)則。通過 iptalbes可以方便地修改、添加和刪除規(guī)則,也可以構(gòu)建自己的定制規(guī)則。內(nèi)核根據(jù)規(guī)則來決定,對(duì)來自某些源、前往某些目的地或具有某些協(xié)議類型的數(shù)據(jù)處理,可以是 ACCEPT(允許該數(shù)據(jù)包通過)、DROP(丟棄該數(shù)據(jù)包),或者是REJECT(阻塞數(shù)據(jù)包)。
根據(jù)規(guī)則處理的數(shù)據(jù)包類型,可以將規(guī)則分組在不同鏈中。處理入站數(shù)據(jù)包的規(guī)則被添加到INPUT鏈中;處理出站數(shù)據(jù)包的規(guī)則被添加到OUTPUT鏈中;處理正在轉(zhuǎn)發(fā)的數(shù)據(jù)包的規(guī)則被添加到FORWARD鏈中。這三個(gè)鏈?zhǔn)腔緮?shù)據(jù)包過濾表中內(nèi)置的缺省主鏈。
此外,還有其它許多可用鏈類型,如PREROUTING和POSTROUTING,以及提供用戶定義的鏈。每個(gè)鏈都可以有一個(gè)策略,它定義缺省目標(biāo),也就是要執(zhí)行的缺省操作,當(dāng)數(shù)據(jù)包與鏈中的任何規(guī)則都不匹配時(shí),執(zhí)行此操作。
建立規(guī)則并將鏈放在適當(dāng)?shù)奈恢弥?,就可以開始進(jìn)行真正的數(shù)據(jù)包過濾工作。這時(shí)內(nèi)核空間從用戶空間接管工作。當(dāng)數(shù)據(jù)包到達(dá)防火墻時(shí),內(nèi)核先檢查數(shù)據(jù)包的頭信息,尤其是數(shù)據(jù)包的目的地,這個(gè)過程稱為路由。
如果數(shù)據(jù)包源自外界并前往系統(tǒng),而且防火墻是打開的,那么內(nèi)核將它傳遞到內(nèi)核空間數(shù)據(jù)包過濾表的INPUT鏈。如果數(shù)據(jù)包源自系統(tǒng)內(nèi)部或系統(tǒng)所連接的內(nèi)部網(wǎng)上的其它源,并且此數(shù)據(jù)包要前往另一個(gè)外部系統(tǒng),那么數(shù)據(jù)包被傳遞到OUTPUT鏈。類似的,源自外部系統(tǒng)并前往外部系統(tǒng)的數(shù)據(jù)包被傳遞到FORWARD鏈。接下來,將數(shù)據(jù)包的頭信息與它所傳遞到的鏈中的每條規(guī)則進(jìn)行比較,看它是否與某條規(guī)則全匹配,如果數(shù)據(jù)包與某條規(guī)則匹配,那么內(nèi)核就對(duì)該數(shù)據(jù)包執(zhí)行由該規(guī)則的目標(biāo)指定的操作。但是,如果數(shù)據(jù)包與這條規(guī)則不匹配,那么它將與鏈中的下一條規(guī)則進(jìn)行比較。最后,如果數(shù)據(jù)包與鏈中的任何規(guī)則都不匹配,那么內(nèi)核將參考該鏈的策略來決定如何處理該數(shù)據(jù)包。
(1)安裝
通常的Linux發(fā)行版本都支持iptalbes,很多情況下它已經(jīng)隨著操作系統(tǒng)而被安裝。如果在安裝操作系統(tǒng)時(shí)沒有選擇防火墻支持,那么需要重新編譯內(nèi)核才能使用iptables。對(duì)于如何重新編譯內(nèi)核,這里就不再贅述。關(guān)于iptables的安裝可以參看iptables使用手冊(cè),或者相應(yīng)How-to文檔http://www.linuxguruz.com/iptables/howto/iptables-HOWTO.html
(2)配置
下面介紹iptalbes的常用參數(shù)。
◆對(duì)規(guī)則的操作
加入(append)一個(gè)新規(guī)則到一個(gè)鏈(-A)的最后。
在鏈內(nèi)某個(gè)位置插入(insert)一個(gè)新規(guī)則(-I),通常是插在最前面。
在鏈內(nèi)某個(gè)位置替換(replace)一條規(guī)則(-R)。
在鏈內(nèi)某個(gè)位置刪除(delete)一條規(guī)則(-D)。
刪除(delete)鏈內(nèi)第一條規(guī)則(-D)。
◆指定源地址和目的地址
通過――source/–src/-s可以指定源地址(這里的/表示或者的意思,下同),通過destination/–dst/-s可以指定目的地址。有四種方法可以指定IP地址:使用完整的域名,如www.buaa.educn;使用IP地址,如192.168.1.1;用X.X.X.X/X.X.X.X指定一個(gè)網(wǎng)絡(luò)地址,如192.168.1.0/255.255.255.0;
用X.X.X.X/X指定一個(gè)網(wǎng)絡(luò)地址,如192.168.1.0/24,這里的24表明了子網(wǎng)掩碼的有效位數(shù)。
◆指定網(wǎng)絡(luò)接口
使用in-interface/-i或out-interface/-o來指定網(wǎng)絡(luò)接口。
◆指定協(xié)議及端口
通過――protocol/-p選項(xiàng)來指定協(xié)議,如果是UDP和TCP協(xié)議,還可使用source-port/–sport和destination-port/–dport來指明端 口。
關(guān)于防火墻的具體應(yīng)用,這里限于篇幅就不詳細(xì)介紹,在以后的文章中會(huì)以一個(gè)具體的例子來說明如何利用iptables的防火墻和網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)功能來提供一個(gè)安全、穩(wěn)定、可靠的Internet接入。
小結(jié)
Linux系統(tǒng)以其強(qiáng)大的功能和開放的平臺(tái),為許多安全工具提供支持。除了以上列舉到的Nmap、Nessue、Snort、iptables等軟件外,還有諸多的安全工具能夠在Linux平臺(tái)下運(yùn)行。掌握這些工具的原理、配置和使用對(duì)于維護(hù)信息系統(tǒng)的安全性來說是極其重要的。