首先,沒有哪個程序能做到讓你的網絡或服務器永久地安全,安全是一個不斷改進、評估、再改進的持續過程,幸運的是,在linux下有許多好的工具在這個過程中能幫助你,在這篇文章中,我將向你推薦5款我最喜愛的安全工具,它們能幫助你預防,檢查,響應入侵行為。盡管它更容易預防隨時可能發生的問題,但某些時候你遇到問題時,你還是需要檢查和響應的,這就意味著在形式危及你需要它們之前,你得先熟悉它們的用法。
1、Nmap
為了評估一個機器的是否容易遵守攻擊,你需要知道有多少服務是暴露給攻擊者的。有一個優秀的工具就是Fyodor的網絡映射器Nmap,Debian用戶可以通過apt-get;install;nmap來獲取它,務必要運行它檢查服務器上究竟運行了些什麼服務―即使你認為你已經知道了也要運行,很明顯,如果ssh端口已經關閉,那麼通過ssh密碼猜測就對你沒什麼影響。
Nmap最簡單的用法就是在你本地的網絡上探測主機,在這個實例中,我們要求nmap發送ICMP;echo請求包(ping)到某段ip地址范圍內的所有主機:
$Content$nbsp;nmap;-sP;10.0.0.1-254
Starting;nmap;3.81;(;http://www.insecure.org/nmap/;)
at;2006-11-01;14:46
NZDT
Host;10.0.0.25;appears;to;be;up.
MAC;Address:;00:0C:F1:AE:E6:08;(Intel)
Host;10.0.0.51;appears;to;be;up.
MAC;Address:;08:00:09:9A:1A:AA;(Hewlett;Packard)
Host;10.0.0.70;appears;to;be;up.
MAC;Address:;00:0F:EA:64:4E:1E;(Giga-Byte;Tech;Co.)
...
不過nmap最常用的是用來探測哪個服務正在運行。因為TCP建立一個連接使用了3次握手,我們能檢查到無真實連接到它們但又被打開的端口,這就是著名的SYN或半打開掃描,當用root登陸執行時這是默認的模式,如果作為一個正常用戶執行,nmap嘗試全連接來測試是否每個端口是否是打開的。(題外話:在半打開模式下,我們發送初始化SYN數據包並監聽響應,RST表明端口是關閉的,SYN+ACK表示端口是打開的,如果沒有收到響應,nmap標記這個端口是被過濾了,某些防火牆會丟掉不該有的數據包,產生一個過濾狀態標記,其他的將發送RST使得端口看起來是關閉的)典型地,如果一個服務器正在監聽你不希望監聽的端口,你應該仔細檢查一下:
#nmap;-sS;10.0.0.89
Starting;nmap;3.81;(;http://www.insecure.org/nmap/;)
at;2006-11-01;14:52
NZDT
Interesting;ports;on;10.0.0.89:
(The;1637;ports;scanned;but;not;shown
below;are;in;state:;closed)
PORT;;;;;;STATE;SERVICE
21/tcp;;;;open;;ftp
22/tcp;;;;open;;ssh
42/tcp;;;;open;;nameserver
80/tcp;;;;open;;http
110/tcp;;;open;;pop3
...
Fyodor也添加了許多服務的指紋,你可以要求nmap標識出特定的服務,在命令後加上-sV選項即可:
#;nmap;-sV;10.0.0.89
Starting;nmap;3.81;(;http://www.insecure.org/nmap/;)
at;2006-11-01;14:47
NZDT
Interesting;ports;on;10.0.0.89:
(The;1637;ports;scanned;but;not;shown
below;are;in;state:;closed)
PORT;;;;;;STATE;SERVICE;;;VERSION
21/tcp;;;;open;;ftp?
22/tcp;;;;open;;ssh;;;;;;;OpenSSH;3.8.1p1
Debian-8.sarge.4;(protocol;2.0)
42/tcp;;;;open;;nameserver?
80/tcp;;;;open;;http;;;;;;Apache;httpd;1.3.33
((Debian;GNU/Linux);mod_gzip/1.3.26.1a;PHP/4.3.10-16)
110/tcp;;;open;;pop3?
...
其他難以置信的用法是操作系統的探測,在命令後加上-O參數即可,如果這個機器有至少一個端口打開和至少一個端口關閉的話,你就能准確地獲取操作系統的信息:
#;nmap;-O;-sS;10.0.0.89
Starting;nmap;3.81;(;http://www.insecure.org/nmap/;)
at;2006-11-02;09:02
NZDT
Interesting;ports;on;10.0.0.89:
(The;1637;ports;scanned;but;not;shown
below;are;in;state:;closed)
PORT;;;;;;STATE;SERVICE
21/tcp;;;;open;;ftp
...
Device;type:;general;purpose
Running:;Linux;2.4.X|2.5.X|2.6.X
OS;details:;Linux;2.5.25;-;2.6.3;or
Gentoo;1.2;Linux;2.4.19;rc1-rc7),;Linux;2.6.3;-;2.6.8
Uptime;30.906;days;(since;Mon;Oct;;2;11:18:59;2006)
因此,請使用nmap在你的網絡上檢查所有機器,看是否存在有臨時安裝的但又被忘記刪除的服務,你也可以用它從你的網絡范圍之外來檢查你的防火牆是否正確地配置了。