首先,没有哪个程序能做到让你的网络或服务器永久地安全,安全是一个不断改进、评估、再改进的持续过程,幸运的是,在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