Linux的安全防护离不开各种工具,Linux的开源性也促进了这些优秀的安全防护工具的发展。
目前在Linux环境下的安全工具林林总总,种类繁多。本文精选一些比较常用的、具有代表性的加以介绍,它们包括系统管理工具和网络管理工具。它们基本都是开源的,一般都随着诸如Red Hat Linux、Debian Linux等发行套件而发布,一些发行套件里面没有的,用户可以按照本文所提供的方式下载使用。由于篇幅的关系,本文只对这些工具的用途、原理和使用作指导性的介绍,要了解更加详细的使用情况,读者可以根据文中的介绍去查找和使用。
协议分析工具——Ethereal
Ethereal是一个有名的网络端口探测器,是可以在Linux、Solaris、SGI等各种平台运行的网络监听软件,它主要是针对TCP/IP协议的不安全性对运行该协议的机器进行监听。其功能相当于Windows下的Sniffer,都是在一个共享的网络环境下对数据包进行捕捉和分析,而且还能够自由地为其增加某些插件以实现额外功能。
其最常用的功能是被攻击者用来检测被攻击电脑通过23(telnet)和110(pop3)端口进行的一些明文传输数据,以轻松得到用户的登录口令和邮件账号密码。一般说来,Ethereal基本上是为破坏者所利用的工具,而对于网络管理员来说,也可以通过捕包分析,来确定一些异常的流量和局域网内部的非正常用户与外界的通信,比如说对于现在比较占用网络带宽的诸如Bit Torrent 等P2P应用软件流量,通过使用该软件确定这些流量,网络管理员就可以使用流量控制(TC)的方法来规范、合理的分配带宽资源,提高网络的利用率。
Ethereal极其方便和友好的图形用户界面,并且能够使得用户通过图形界面的配置和选择,针对多块网卡、多个协议进行显示,效果非常好。目前最新版本为:Ethereal 0.10.12。
|
另外,同Tcpdump一样,在编译Ethereal之前应先确定已经安装pcap库(libpcap),这是编译Ethereal时所必需的。如果该库已经安装,就可以执行下面的命令来编译并安装Ethereal:
|
当编译并安装好Ethereal后,就可以执行“ethereal”命令来启动Ethereal。在用 Ethereal截获数据包之前,应该为其设置相应的过滤规则,可以只捕获感兴趣的数据包。Ethereal使用与Tcpdump相似的过滤规则,并且可以很方便地存储已经设置好的过滤规则。
Ethereal和其他的图形化嗅探器使用基本类似的界面,整个窗口被分成三个部分:最上面为数据包列表,用来显示截获的每个数据包的总结性信息;中间为协议树,用来显示选定的数据包所属的协议信息;最下边是以十六进制形式表示的数据包内容,用来显示数据包在物理层上传输时的最终形式。使用Ethereal可以很方便地对截获的数据包进行分析,包括该数据包的源地址、目的地址、所属协议等。
网络端口扫描工具——Nmap
Nmap是用来对一个比较大的网络进行端口扫描的工具,它能检测该服务器有哪些TCP/IP端口目前正处于打开状态。用户可以运行它来确保和查证系统目前打开了哪些端口和外界进行通信,从而禁止掉不该打开的不安全的端口号,比如一些特别占用带宽的P2P端口和一些具有漏洞的应用端口。nmap设计的初衷是系统管理员可以方便地了解自己的网络运行情况,例如有多少台主机在运行、分别提供什么样的服务等。因此,它扫描的速度非常快,尤其适合大型网络。在对网络进行扫描时,Nmap主要利用ICMP echo探测主机是否开启。Nmap目前网上最新版本为: nmap-3.93.tar.bz2,可按照如下步骤进行安装:
|
下面给出一个探测本机的简单例子:
|
上面通过查看本机的端口使用情况,发现该机器打开了22以及2401端口,且都为TCP服务,另外,1540端口也为该软件扫描到,但是该端口的状态为关闭,所以没有列出来。当然,该软件的功能很强大,还有很多复杂和高级的选项,用户可以自己到该软件的主页上学习。
密码分析工具——John the ripper
在Linux中,密码以hash格式被存储,用户不能反向从该hash数据表中分析出密码,因为该hash函数是单向的。但是,用户可以对一组单词进行hash加密,然后和保存的密码进行比较,如相同就说明猜测出密码。所以要选取一个很难被猜测的、非常有效的密码是非常关键的。一般地来说,决不能用字典存在的某个单词作为密码,那是相当容易被猜测出来的。另外也不能用一些常见的有规则性的字母数字排列作为密码。
为了验证用户所选取的密码是否能由较高的安全性,我们可以使用一些Linux下的密码分系统工具来对这些密码进行分析确认,具有一定的指导意义。在这当中,John the ripper是一个经典、高效的易于使用的密码猜测程序,目前最新版本为 John the Ripper 1.6。下面给出其安装步骤:
下载tar.gz格式的Unix版的程序,然后执行如下命令即可:
|
上述命令完成了该软件的解压缩以及编译,使用起来非常方便。在进行密码分析的过程中,有如下几个常用选项:
● Single:破解单一口令文件。
● Worldlist:file:利用该软件使用词典文件破解口令,也叫字典攻击。
● Rules:使用规则库,允许该软件对词典单词做相应变化来破解口令。
● Incremental:根据john-1.6/run目录下的john.ini文件中定义的参数启用递增或者强行模式。
● Restore:file:继续一次被中断的破解过程。
● Session:file:允许定义存储破解信息的文件名。
● Show:显示上次破解过程所破解出来的口令信息。
在实际的密码分析过程中,推荐如下步骤和方法:
(1)首先,运行以下命令看破解了哪些口令:
|
(2)然后,采用字典攻击,破解口令:
|
(3)如果上述字典攻击不成功,则进行强行攻击:
|