网络安全 频道

充分利用Linux操作系统安全防护工具

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。

# cp ethereal-0.10.12.tar.bz2 /usr/local/src/
# cd /usr/local/src/
# bzip2 -d ethereal-0.10.12.tar.bz2
# tar xvf ethereal-0.10.12.tar

另外,同Tcpdump一样,在编译Ethereal之前应先确定已经安装pcap库(libpcap),这是编译Ethereal时所必需的。如果该库已经安装,就可以执行下面的命令来编译并安装Ethereal:

# cd ethereal-0.10.12
# ./configure
# make
# make install

当编译并安装好Ethereal后,就可以执行“ethereal”命令来启动Ethereal。在用 Ethereal截获数据包之前,应该为其设置相应的过滤规则,可以只捕获感兴趣的数据包。Ethereal使用与Tcpdump相似的过滤规则,并且可以很方便地存储已经设置好的过滤规则。

Ethereal和其他的图形化嗅探器使用基本类似的界面,整个窗口被分成三个部分:最上面为数据包列表,用来显示截获的每个数据包的总结性信息;中间为协议树,用来显示选定的数据包所属的协议信息;最下边是以十六进制形式表示的数据包内容,用来显示数据包在物理层上传输时的最终形式。使用Ethereal可以很方便地对截获的数据包进行分析,包括该数据包的源地址、目的地址、所属协议等。

网络端口扫描工具——Nmap

Nmap是用来对一个比较大的网络进行端口扫描的工具,它能检测该服务器有哪些TCP/IP端口目前正处于打开状态。用户可以运行它来确保和查证系统目前打开了哪些端口和外界进行通信,从而禁止掉不该打开的不安全的端口号,比如一些特别占用带宽的P2P端口和一些具有漏洞的应用端口。nmap设计的初衷是系统管理员可以方便地了解自己的网络运行情况,例如有多少台主机在运行、分别提供什么样的服务等。因此,它扫描的速度非常快,尤其适合大型网络。在对网络进行扫描时,Nmap主要利用ICMP echo探测主机是否开启。Nmap目前网上最新版本为: nmap-3.93.tar.bz2,可按照如下步骤进行安装:

#bzip2 -cd nmap-3.93.tar.bz2 | tar xvf -
#cd nmap-3.93
#./configure
#make
#make install

下面给出一个探测本机的简单例子:

# nmap 127.0.0.1
Starting nmap V. 2.54BETA22 ( www.insecure.org/nmap/ )
Interesting ports on localhost (127.0.0.1):
(The 1540 ports scanned but not shown below are in state: closed)
Port State Service
22/tcp open ssh
2401/tcp open cvspserver
Nmap run completed -- 1 IP address (1 host up) scanned in 0 seconds

上面通过查看本机的端口使用情况,发现该机器打开了22以及2401端口,且都为TCP服务,另外,1540端口也为该软件扫描到,但是该端口的状态为关闭,所以没有列出来。当然,该软件的功能很强大,还有很多复杂和高级的选项,用户可以自己到该软件的主页上学习。

密码分析工具——John the ripper

在Linux中,密码以hash格式被存储,用户不能反向从该hash数据表中分析出密码,因为该hash函数是单向的。但是,用户可以对一组单词进行hash加密,然后和保存的密码进行比较,如相同就说明猜测出密码。所以要选取一个很难被猜测的、非常有效的密码是非常关键的。一般地来说,决不能用字典存在的某个单词作为密码,那是相当容易被猜测出来的。另外也不能用一些常见的有规则性的字母数字排列作为密码。

为了验证用户所选取的密码是否能由较高的安全性,我们可以使用一些Linux下的密码分系统工具来对这些密码进行分析确认,具有一定的指导意义。在这当中,John the ripper是一个经典、高效的易于使用的密码猜测程序,目前最新版本为 John the Ripper 1.6。下面给出其安装步骤:

下载tar.gz格式的Unix版的程序,然后执行如下命令即可:

#tar xzvf john-1.6.tar.gz
#cd john-1.6/src
#make linux-x86-any-a.out
#cd john-1.6/run

上述命令完成了该软件的解压缩以及编译,使用起来非常方便。在进行密码分析的过程中,有如下几个常用选项:

● Single:破解单一口令文件。

● Worldlist:file:利用该软件使用词典文件破解口令,也叫字典攻击。

● Rules:使用规则库,允许该软件对词典单词做相应变化来破解口令。

● Incremental:根据john-1.6/run目录下的john.ini文件中定义的参数启用递增或者强行模式。

● Restore:file:继续一次被中断的破解过程。

● Session:file:允许定义存储破解信息的文件名。

● Show:显示上次破解过程所破解出来的口令信息。

在实际的密码分析过程中,推荐如下步骤和方法:

(1)首先,运行以下命令看破解了哪些口令:

#john——single 待破解的口令文件名
#john——show

(2)然后,采用字典攻击,破解口令:

#john——w:字典名 待破解的口令文件名
#john——show

(3)如果上述字典攻击不成功,则进行强行攻击:

#john——待破解的口令文件名
#john -show

日志检查工具——Logcheck

Logcheck是用来自动检查系统安全入侵事件和非正常活动记录的工具,它分析各种Linux下的日志文件,比如前文所介绍过的/var/log/messages、/var/log/secure、/var/log/maillog等等,然后生成一个可能有安全问题的问题报告自动发送电子邮件给管理员。能设置它基于每小时或者每天用crond来自动运行。

Logcheck是一个软件包,用来实现自动检查日志文件,以发现安全入侵和不正常的活动。Logcheck用logtail程序来记录读到的日志文件的位置,下一次运行的时候从记录下的位置开始处理新的信息。所有的源代码都是公开的,实现方法也非常简单。

Logcheck SHELL脚本和logtail.c程序用关键字查找的方法进行日志检测。在这儿提到的关键字就是指在日志文件中出现的关键字,会触发向系统管理员发的报警信息。Logcheck的配置文件自带了缺省的关键字,适用于大多数的Unix系统。但是最好还是自己检查一下配置文件,看看自带的关键字是否符合自己的需要。

Logcheck脚本是简单的SHELL程序,logtail.c程序只调用了标准的ANSI C函数。Logcheck要在cron守护进程中配置,至少要每小时运行一次。脚本用简单的grep命令来从日志文件检查不正常的活动,如果发现了就发送电子邮件给管理员。如果没有发现异常活动,就不会收到电子邮件。

用户可以下载Logcheck工具的最新版本: logcheck-1.1.1.tar.gz。下载后用tar xvfz logcheck-1.1.1.tar.gz命令解开到一临时目录下,然后用make linux自动生成相应的文件到/usr/local/etc、/usr/local/bin/等目录下。用户可能需要更改设置,如发送通知到谁的邮件账号等,默认发送到root。

利用Logcheck工具分析所有logfile,避免每天经常手动地检查它们,节省了时间,提高了效率。

后门工具——Rootkit

Rootkit是一种比普通木马后门更为隐秘和危险的木马后门。它主要通过替换系统文件来达到目的,这样就会更加隐蔽,使检测变得比较困难。传统的Rootkit主要针对Unix平台,例如Linux、AIX、SunOs 等操作系统,有些Rootkit可以通过替换DLL文件或更改系统来攻击Windows平台。Rootkit并不能让攻击者直接获得权限,相反它是在用户通过各种方法获得权限后才能使用的一种保护权限的措施,在攻击者获取系统根权限(根权限即root权限,是Unix系统的最高权限)以后,Rootkit 提供了一套工具用来建立后门和隐藏行迹,从而让攻击者保住权限,在任何时候都可以使用root权限登录到系统。

0
相关文章