linux 服務器必備的常用安全軟件: 作為一個合格的網絡系統管理員,要誰時應對可能發生的安全問題,掌握Linux下各種必須的安全工具設備是很重要的。本文主要介紹Linux上常用的安全工具,例如,Nmap、Snort、Nesseu等安裝、使用和維護知識。通過這些工具管理人員能夠了解其系統目前存在的安全隱患、入侵者可能利用的漏洞,及時發現入侵,並構造一個堅固的防御體系將入侵拒之門外。
一、安全信息收集軟件
對於系統管理員來說,了解和掌握系統當前的安全狀態是做到“知己”的第一個步驟。安全信息收集軟件就是用來收集目前系統安全狀態的有力工具。端口掃描軟件和漏洞掃描軟件是常用的信息收集軟件。入侵者通常通過端口掃描軟件來掌握系統開放端口,運行服務器軟件版本和操作系統版本等相關信息。而對於管理人員,通過這些軟件可以讓管理人員從入侵者的角度來審視系統,並且能夠根據這些信息進行相應的配置和修改來迷惑入侵者。漏洞掃描軟件能夠獲得具體的漏洞信息,利用這些漏洞信息,入侵者能夠輕易地訪問系統、獲得非授權信息,甚至是獲得整個系統的控制權限。而對於管理人員,通過漏洞掃描軟件獲得的信息能夠幫助自己及時對系統進行加固和防御,讓入侵者無機可乘。
1、Nmap
Nmap是一個網絡探測和安全掃描程序,使用這個軟件可以掃描大型的網絡,以獲取那台主機正在運行及提供什麼服務等信息。Nmap支持很多掃描技術,例如UDP、TCPconnect()、TCP SYN(半開掃描)、FTP代理(bounce攻擊)、反向標志、ICMP、FIN、ACK掃描、聖誕樹(Xmas Tree)、SYN掃描和null掃描。Nmap還提供了一些高級的特征,例如,通過TCP/IP協議棧特征探測操作系統類型、秘密掃描、動態延時、重傳計算和並行掃描,通過並行ping掃描探測關閉的主機、誘餌掃描,避開端口過濾檢測,直接RPC掃描(無須端口影射)、碎片掃描,以及靈活的目標和端口設定。
(1)安裝
Nmap的安裝很簡單,Linux各發行版本上通常都已經安裝了Namp。這裡首先用“nmap-v”查看當前系統所安裝的nmap版本號:
# nmap -v
Starting nmap V. 4.00.(www.insecure.org/nmap/)
……
由於目前系統所安裝的Nmap為4.00,不是最新版本,因此要首先從http://www.insecure.org/nmap/下載最新版本的源代碼。目前最新版本為Nmap-5.5.tar.bz2,該文件為源代碼壓縮包,需要用bzip2進行解壓縮。我們將該文件下載並保存在/root/nmap下,以root用戶進行安裝。
# bzip2 –cd nmap-5.5.tar.bz2∣tar xvf-
該命令將Nmap源代碼解壓縮至目錄nmap-5.5。
進入該目錄進行配置:
# ./configure
配置結束後用make命令進行編譯:
# make
編譯結束後用make install進行安裝:
# make install
(2)使用
◆各種掃描模式與參數
首先需要輸入要探測的主機IP地址作為參數。假設一個LAN中有兩個節點: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)
PORT STATE SERVICE
25/tcp open smtp
80/tcp open 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
上面是對目標主機進行全面TCP掃描的結果,顯示了監聽端口的服務情況,這一基本操作不需要任何參數。但是, 由於在掃描過程中建立了完整的TCP連接,主機可以很容易地監測到這類掃描。該命令是參數開關-sT的缺省。
-sS選項可以進行更加隱蔽地掃描,並防止被目標主機檢測到,但此方式需要用戶擁有root權限。-sF、-sX和-sN則可以進行一些超常的掃描。假如目標主機安裝了過濾和日志軟件來檢測同步空閒字符SYN,那麼-sS的隱蔽作用就失效了,此時可以采用-sF(隱蔽FIN)、-sX(Xmas Tree)及-sN(Null)方式掃描。
這裡需要注意的是,由於微軟的實現方式不同,對於運行Win 2003,Vista等NT的機器FIN 、Xmas或Null的掃描結果都是將端口關閉,由此可作為推斷目標主機運行Windows操作系統的一種方法。以上命令都需要有root權限。-sU選項是監聽目標主機的UDP,而不是默認的TCP端口。盡管在Linux機器上有時慢一些,比如,輸入上面的例子:
# 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)
PORT STATE SERVICE
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
◆操作系統探測
使用-O選項可推斷目標主機的操作系統,既可與上述的命令參數聯合使用,也可單獨調用。Nmap利用TCP/IP“指紋”技術來推測目標主機的操作系統。還使用前面的例子:
#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)
PORT STATE SERVICE
25/tcp open smtp
80/tcp open 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提供了一個OS數據庫,上例中檢測到了該主機運行的操作系統為Windows系列操作系統,可能為Windows 98、Windows 2000 Pro,或者為Windews vista/Windows 7等。
◆更進一步的應用
除了一次只掃描一個目標主機外,還可以同時掃描一個主機群,比如“nmap –sT –O 203.187.1.1-50”就可以同時掃描並探測IP地址在203.187.1.1到203.187.1.50之間的每一台主機。當然這需要更多的時間,耗費更多的系統資源和網絡帶寬,輸出結果也可能很長。所以,可以使用下面命令將結果重定向輸送到一個文件中:
#nmap -sT -O -oN test.txt 202.96.1.1-50
另外的一些命令參數選項如下:
-I 進行TCP反向用戶認證掃描,可以透露掃描用戶信息;
-iR 進行隨機主機掃描;
-p 掃描特定的端口范圍;
-v 長數據顯示,“-v -v”是最長數據顯示;
-h 快捷幫助。
下面給一個綜合了上述參數的例子:
#nmap -sS -p 23,80 -oN ftphttpscan.txt 203.187.53.50-100
◆Nmap圖形用戶界面
Nmap有一些圖形用戶前端,比如,NmapFE(GTK界面)網址為
http://codebox.net/nmapfe.html;Kmap(Qt/KDE前端)網址為
http://www.edotorg.org/kde/kmap/;KNmap(KDE前端)網址為
http://pages.infinit.net/rewind/。
2.Nessus
Nessus是一個功能強大而又易於使用的遠程安全掃描器,它不僅免費,而且更新極快。安全掃描器的功能是對指定網絡進行安全檢査,找出該網絡是否存在有導致對手攻擊的安全漏洞。該系統被設計為Client/Sever模式,服務器端負責進行安全檢查,客戶端用來配置管理服務器端。在服務端還采用了plug-in的體系,允許用戶加入執行特定功能的插件,該插件可以進行更快速和更復雜的安全檢查。在Nessus中還采用了一個共享的信息接口,稱之知識庫,其中保存了前面進行檢査的結果。檢查的結果可以HTML、純文本、LaTeX(一種文本文件格式)等幾種格式保存。在未來的新版本中,Nessus將會支持速度更快的安全檢查,而且這種檢查將會占用更少的帶寬,其中可能會用到集群的技術以提高系統的運行效率。
Nessus的主要優點在於其采用了基於多種安全漏洞的掃描,避免了掃描不完整的情況;它是免費的,比起商業的安全掃描工具,如ISS具有價格優勢;擴展性強、容易使用、功能強大,可以掃描出多種安全漏洞。
Nessus的安全檢查完全是由plug-ins的插件完成的。