首先,没有哪个程序能做到让你的网络或服务器永久地安全,安全是一个不断改进、评估、再改进的持续过程,幸运的是,在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在你的网络上检查所有机器,看是否存在有临时安装的但又被忘记删除的服务,你也可以用它从你的网络范围之外来检查你的防火墙是否正确地配置了。
标签: linux