“工欲善其事,必先利其器”。作为一个合格的系统管理员,要应对可能发生的安全事件,掌握Linux下各种必须的安全工具是首要大事。本文主要介绍Linux上常用的安全工具,例如,Nmap、Snort、Nesseu等安装、使用和知识。通过这些工具管理人员能够了解其系统目前存在的安全请看如下
“工欲善其事,必先利其器”。作为一个合格的系统管理员,要应对可能发生的安全事件,掌握Linux下各种必须的安全工具是首要大事。本文主要介绍Linux上常用的安全工具,例如,Nmap、Snort、Nesseu等安装、使用和知识。通过这些工具管理人员能够了解其系统目前存在的安全隐患、入侵者可能利用的漏洞,及时发现入侵,并构造一个坚固的防御体系将入侵拒之门外。
192.168.1.1设置AD:
Linux常用的安全工具
“工欲善其事,必先利其器”。作为一个合格的系统管理员,要应对可能发生的安全事件,掌握Linux下各种必须的安全工具是首要大事。本文主要介绍Linux上常用的安全工具,例如,Nmap、Snort、Nesseu等安装、使用和知识。通过这些工具管理人员能够了解其系统目前存在的安全隐患、入侵者可能利用的漏洞,及时发现入侵,并构造一个坚固的防御体系将入侵拒之门外。一、安全信息收集软件对于系统管理员来说,了解和掌握系统当前的安全状态是做到“知己”的第一个步骤。安全信息收集软件就是用来收集目前系统安全状态的有力工具。端口扫描软件和漏洞扫描软件是常用的信息收集软件。入侵者通常通过端口扫描软件来掌握系统端口,运行服务器软件版本和操作系统版本等相关信息。而对于管理人员,通过这些软件可以让管理人员从入侵者的角度来审视系统,并且能够根据这些信息进行相应的配置和修改来入侵者。漏洞扫描软件能够获得具体的漏洞信息,利用这些漏洞信息,入侵者能够轻易地访问系统、获得非授权信息,甚至是获得整个系统的控制权限。而对于管理人员,通过漏洞扫描软件获得的信息能够帮助自己及时对系统进行加固和防御,让入侵者无机可乘。1、NmapNmap是一个网络探测和安全扫描程序,使用这个软件可以扫描大型的网络,以获取那台主机正在运行及提供什么服务等信息。Nmap支持很多扫描技术,例如UDP、TCPconnect()、TCPSYN(半开扫描)、FTP代理(bounce)、反向标志、ICMP、FIN、ACK扫描、圣诞树(XmasTree)、SYN扫描和null扫描。Nmap还提供了一些高级的特征,例如,通过TCP/IP协议栈特征探测操作系统类型、秘密扫描、动态延时、重传计算和并行扫描,通过并行ping扫描探测关闭的主机、诱饵扫描,避开端口过滤检测,直接RPC扫描(无须端口影射)、碎片扫描,以及灵活的目标和端口设定。(1)安装Nmap的安装很简单,Linux各发行版本上通常都已经安装了Namp。这里首先用“nmap-v”查看当前系统所安装的nmap版本号:#nmap-vStartingnmapV.4.00.(由于目前系统所安装的Nmap为4.00,不是最新版本,因此要首先从下载最新版本的源代码。目前最新版本为Nmap-5.5.tar.bz2,该文件为源代码压缩包,需要用bzip2进行解压缩。我们将该文件下载并保存在/root/nmap下,以root用户进行安装。#bzip2–cdnmap-5.5.tar.bz2∣tarxvf-该命令将Nmap源代码解压缩至目录nmap-5.5。进入该目录进行配置:#./configure配置结束后用make命令进行编译:#make编译结束后用makeinstall进行安装:#makeinstall(2)使用◆各种扫描模式与参数首先需要输入要探测的主机IP地址作为参数。假设一个LAN中有两个节点:192.168.12.1和192.168.12.2#nmap192.168.12.1Startingnmap5.5(:(The1651portsscannedbutnotshownbelowareinstate:closed)PORTSTATESERVICE25/tcpopensmtp80/tcpopenhttp135/tcpopenmsrpc139/tcpopennetbios-ssn443/tcpopenhttps445/tcpopenMicrosoft-ds1025/tcpopenNFS-or-IIS1033/tcpopennetinfo1521/tcpopenoracle2030/tcpopendevice23372/tcpopenmsdtc8080/tcpopenhttp-proxyMACAddress:00:E0:4C:12:FA:4B(RealtekSemiconductor)Nmapruncompleted–1IPaddress(1hostup)Scannedin22.882seconds是对目标主机进行全面TCP扫描的结果,显示了端口的服务情况,这一基本操作不需要任何参数。但是,由于在扫描过程中建立了完整的TCP连接,主机可以很容易地监测到这类扫描。该命令是参数开关-sT的缺省。-sS选项可以进行更加隐蔽地扫描,并防止被目标主机检测到,但此方式需要用户拥有root权限。-sF、-sX和-sN则可以进行一些超常的扫描。假如目标主机安装了过滤和日志软件来检测同步空闲字符SYN,那么-sS的隐蔽作用就失效了,此时可以采用-sF(隐蔽FIN)、-sX(XmasTree)及-sN(Null)方式扫描。这里需要注意的是,由于微软的实现方式不同,对于运行Win2003,Vista等NT的机器FIN、Xmas或Null的扫描结果都是将端口关闭,由此可作为推断目标主机运行Windows操作系统的一种方法。以上命令都需要有root权限。-sU选项是目标主机的UDP,而不是默认的TCP端口。尽管在Linux机器上有时慢一些,比如,输入的例子:#nmap-sU192.168.12.1Startingnmap5.5(∣filterednetbios-ns138/udpopen∣filterednetbios-dgm445/udpopen∣filteredmicrosoft-ds500/udpopen∣filteredisakmp3456/udpopen∣filteredIISrpc-or-vatMACAddress:00:E0:4C:12:FA:44(RealtekSemiconductor)Nmapruncompleted–1IPaddress(1hostup)scannedin4.381seconds◆操作系统探测使用-O选项可推断目标主机的操作系统,既可与上述的命令参数联合使用,也可单独调用。Nmap利用TCP/IP“指纹”技术来推测目标主机的操作系统。还使用前面的例子:#nmap-O192.168.12.1Startingnmap5.5(∣NT/2K/XPOSdetails:MicrosoftWindowsMillenniumEdition(Me),Windows2000ProorAdvancedServer,orWindowsXPNmapruncompleted–1IPaddress(1hostup)scannedin3.398secondsNmap提供了一个OS数据库,上例中检测到了该主机运行的操作系统为Windows系列操作系统,可能为Windows98、Windows2000Pro,或者为Windewsvista/Windows7等。◆更进一步的应用除了一次只扫描一个目标主机外,还可以同时扫描一个主机群,比如“nmap–sT–O203.187.1.1-50”就可以同时扫描并探测IP地址在203.187.1.1到203.187.1.50之间的每一台主机。当然这需要更多的时间,耗费更多的系统资源和网络带宽,输出结果也可能很长。所以,可以使用下面命令将结果重定向输送到一个文件中:#nmap-sT-O-oNtest.txt202.96.1.1-50另外的一些命令参数选项如下:-I进行TCP反向用户认证扫描,可以透露扫描用户信息;-iR进行随机主机扫描;-p扫描特定的端口范围;-v长数据显示,“-v-v”是最长数据显示;-h快捷帮助。下面给一个综合了上述参数的例子:#nmap-sS-p23,80-oNftphttpscan.txt203.187.53.50-100◆Nmap图形用户界面Nmap有一些图形用户前端,比如,NmapFE(GTK界面)网址为;Kmap(Qt/KDE前端)网址为;KNmap(KDE前端)网址为。2.NessusNessus是一个功能强大而又易于使用的远程安全扫描器,它不仅免费,而且更新极快。安全扫描器的功能是对指定网络进行安全检査,找出该网络是否存在有导致对手的安全漏洞。该系统被设计为Client/Sever模式,服务器端负责进行安全检查,客户端用来配置管理服务器端。在服务端还采用了plug-in的体系,允许用户加入执行特定功能的插件,该插件可以进行更快速和更复杂的安全检查。在Nessus中还采用了一个共享的信息接口,称之知识库,其中保存了前面进行检査的结果。检查的结果可以HTML、纯文本、LaTeX(一种文本文件格式)等几种格式保存。在未来的新版本中,Nessus将会支持速度更快的安全检查,而且这种检查将会占用更少的带宽,其中可能会用到集群的技术以提高系统的运行效率。Nessus的主要优点在于其采用了基于多种安全漏洞的扫描,避免了扫描不完整的情况;它是免费的,比起商业的安全扫描工具,如ISS具有价格优势;扩展性强、容易使用、功能强大,可以扫描出多种安全漏洞。Nessus的安全检查完全是由plug-ins的插件完成的。目前Nessus提供的安全检查插件已达18类750个,而且这个数量还会增加。比如,在uselessservices类中,Echoportopen和Chargen插件用来测试主机是否易受到已知的echo-chargen;在backdoors类中,PcAnywhere插件用来检查主机是否运行了BO、PcAnywhere等后台程序。更可喜的是,其中包括了对最近一时的CodeRed及其变种的检测。在Nessus主页中不但详细介绍了各种插件的功能,还提供了解决问题的相关方案。有关plug-in的详细说明,请参看。除了这些插件外,Nessus还为用户提供了描述类型的脚本语言,进行附加的安全测试,这种语言称为Nessus脚本语言(NSSL),用它来完成插件的编写。在客户端,用户可以指定运行Nessus服务的机器、使用的端口扫描器、测试的内容及测试的IP地址范围。Nessus本身是工作在多线程基础上的,所以用户还可以设置系统同时工作的线程数。这样用户在远端就可以设置Nessus的工作配置。安全检测完成后,服务端将检测结果返回到客户端,客户端生成直观的报告。在这个过程当中,由于服务器向客户端传送的内容是系统的安全弱点,为了防止通信内容受到,其传输过程还可以选择加密。(1)安装软件Nessus由客户端和服务器端两部分组成。首先看服务器端的安装。从下载源代码包,其中包括nasl库文件libnasl-2.2.2a.tar.gz、nessus核心文件nessus-core-2.2.2a.tar.gz、nessus库文件nessus-libraries-2.2a.tar.gz和nessus插件文件nessus-plugins-2.2.2a.tar.gz四个文件。首先用“tarxzvfnessus-”将这四个软件包解开。第一个先安装nessus的lib库:#cdnessus-libaries#./configure&make&makeinstall然后以同样的方法按照的顺序安装其它三个软件包。安装完毕后,确认在etc/ld.so.conf文件加入已安装库文件的路径/usr/local/lib。如果没有,则只需在该文件中加入这个路径,然后执行ldconfig,这样nessus运行的时候就可以找到运行库了。◆创建用户Nessus服务端有自己的用户资料库,其中对每个用户都做了约束。用户可以在整个网络范围内通过nessusd服务端进行安全扫描。用nessus-adduser命令创建用户,根据命令提示创建用户。Nessus-adduser是Nessusd的附带工具,安装完毕后,在安装目录下会产生这个程序。◆配置Nessus服务端程序NessusdNessusd的配置文件为nessusd.conf,位于/usr/local/etc/nessus/目录下,一般情况下不需要改动。这里还需要运行nessus-mkcert来生成服务器证书,可以按照默认设置。◆启动nessusd在的准备工作完成后,以root用户身份用下面的命令启动服务端:#netssusd–DLoadingtheplugins...3570(outof5830)载入完所有插件后将以系统服务进程的身份运行。(2)使用按照的方法启动Nessus的服务进程后,就可以执行客户端程序进行安全扫描了。首先提示登录到Nessus服务器,在NessusHost后面输入Nessus服务器所在的Linux机器IP地址,端口号及加密方式不需要做改动。输入用户名,单击“Login”登录。系统会询问是否接受服务器证书,选择第一项,然后单击“YES”接受证书。一旦登录成功,“Login”按钮会变为“Logout”,对话框的旁边还会有connected的提示。登录后就可以进行相应的漏洞扫描了。下面通过选择Plug-in插件来进行相应的安全扫描。下面是插件所能检査的方法,单击每个方弹出一个对话框介绍它的危害性及解决方法。然后选择扫描的目标主机,单击“targetselection”,在窗口中输入目标地址,如所输入的192.168.12.2。这里作者用的是一个内部地址,还可以用192.168.6.0/24的方式指定扫描192.168.6.1到192.168.6.255整个网段。设置完毕后,单击“startscan”开始进行扫描。根据选择的插件数量、扫描的范围扫描时间不等。扫描结束后会有扫描结果。在窗口的中列出了所有被扫描的网络、主机和主机相应的端口,Nessus给出了安全漏洞的严重等级、问题的产生原因及解决方法。最后,扫描结果还能够以XML、ASCⅡ、HTML、NSR等多种格式存盘,做为供以后使用。入侵检测系统(IDS)1、原理入侵检测系统(IntrusionDetectionSystem,IDS)是一种主动自己免受的一种网络安全技术。作为防火墙的合理补充,入侵检测技术能够帮助系统监测行为,扩展了系统管理员的安全管理能力(包括安全审计、、识别和响应),提高了信息安全基础结构的完整性。它从计算机网络系统中的若干关键点收集信息,并分析这些信息。入侵检测被认为是防火墙之后的第二道安全闸门,能够在不影响网络性能的情况下能对网络进行监测,防止或减轻上述的网络。入侵检测系统有很多种,从部署的可以分为以下几种:◆基于网络的系统,它放置于网络之上,靠近被检测的系统,它们监测网络流量并判断是否正常。◆基于主机的系统,其经常运行在被监测的系统之上,用以监测系统上正在运行的进程是否。◆最近出现的一种系统,位于操作系统的内核之中,并监测系统的最底层行为。从检测的技术手段上可以分为以下两种:◆误用检测是将收集到的数据与预先确定的特征知识库里的各种模式进行比较,如果发现有特征,则判断有。特征知识库是将己知的方法和技术的特征提取出来建立的一个知识库。◆异常检测则是对收集到的数据进行统计分析。它首先假定所有的行为与正常行为不同,这样发现与正常行为有不同时,则判断存在。它需要建立正常行为的标准,如登录时错误次数为多少时视为正常。相比而言,误用检测的原理简单,很容易配置,特征知识库也容易扩充。但它存在一个致命的弱点――只能检测到已知的方法和技术。异常检测可以检测出已知的和未知的方法和技术,但是其问题在于正常行为标准只能采用人工智能、机器学习算法等来生成,并且需要大量的数据和时间,同时,由于现在人工智能和机器学习算法仍处于研究阶段。所以现在的入侵检测系统大多采用误用检测的分析方法。下面给介绍的Snort就是一个基于网络的、采用误用分析技术的入侵检测系统。2.Snort的安装、配置和使用Snort是一个源码的网络入侵检测系统。Snort的功能包括采用Libpcap捕获数据链路层的分组,并进行协议栈分析(TCP/IP协议)。Snort在内部使用Misused检测模型进行入侵检测,即通过一个完整的入侵规则库来实时匹配,并探测入侵行为。这个规则库非常全面,包含了探测缓冲区溢出、端口扫描、CGI等,并处于不断更新当中。Snort可以轻易发现使用Nmap或Trin00等进行的。Snort也允许用户方便地编写和加人自己的规则。日志可以存储成Tcpdump二进制格式、ASCⅡ格式或数据库格式(包括MYSQL、PostgreSQL),甚至XML格式。(1)安装在可以下载最新版本的Snort,目前最新稳定版本是2.8.0,下载文件为Snort-2.8.0RC2.tar.gz。安装的方法同介绍的几个软件类似。依次经过解压缩后运行“./configure”、“make”和“makeinstall”。要注意的是,Snort需要libpcap库支持,如果尚未安装可以到下载libpcap源代码进行安装,目前最新版本为0.8.3。执行文件安装完毕后还需要下载最新的规则文件。Snort采用基于误用的检测技术,需要按照预先定义好的规则同网络当中的流量进行比对,特征一致时认为有入侵事件发生,从而釆取相应动作,因此保持最新的特征库对Snort来说尤其重要。将下载到的规则文件解压缩,得到rules目录,其内容为按照类型和目标划分为不同规则文件。(2)配置Snort依靠命令启动时指定的配置文件进行配置,通常是/etc/snort.conf,可以编辑Snort配置文件源文件所在目录下/etc/snort.conf来进行配置。#vi/root/snort/snort-2.8.0RC2/etc/其中需要修改的地方如下:VarHOME_NETyournetworkVarRULE_PATH/etc/snort/rulesPreprocessorhttp_inspect:global\此外还可以根据需要选择规则集合当中的规则文件,例如:iis_unicode_map/etc/snort/rules/Unicode.map1252Include/etc/snort/rules/reference.configInclude/etc/snort/rules/classification.configyournetwork即为所釆用的IP地址段,规则文件所在目录为刚才下载规则文件解压缩所在目录。(3)使用输入下面代码:#snort–D–c/root/snort/snort-2.8.0RC2/etc/snort.conf其中,-D参数表明Snort以后台进程方式运行,-c指名所釆用的配置文件。启动之后可以查看/var/log/snort/alert内容来检査结果。#vialert[][1:469:3]ICMPPINGNMAP[][Classification:AttemptedInformationLeak][Priority:2]01/28-17:30:33.813923192.168.100.122->202.12.37.7ICMPTTL:50TOS:0x0ID:36381IpLen:20Dgmlen:28Type:8Code:0ID:51597Seq:14292ECHO[Xref=>由上可以看到,告警文件中记录了网络当中一次Nmap端口扫描的行为。防火墙系统1、基本原理防火墙适用于用户网络系统的边界,属于用户网络边界的安全设备。所谓网络边界即是釆用不同安全策略的两个网络连接处,比如用户网络和互联网之间连接、跟其它业务往来单位的网络连接及用户内网不同部门之间的连接等。防火墙的目的就是在网络连接之间建立一个安全控制点,通过允许、或重新定向经过防火墙的数据流,实现对进、出内部网络的服务和访问的审计和控制。目前,有很多厂商提供各种类型的防火墙平台,通常有几种常用的分类方法:按照产品形式可分为硬件防火墙和软件防火墙;按照性能可以分为百兆级和千兆级防火墙;按照操作模式可分为透明模式、路由模式和NET(网络地址转换);按照部署可分为边界防火墙和主机/个人防火墙;l按照OSI模型层次可分为包过滤防火墙、状态检测防火墙和应用代理防火墙。其中包过滤防火墙是最基本的防火墙,由一些基本路由设备通过内部的网络访问控制规则实现。它一般是工作在网络层,但在现代网络结构中,为了实现负载均衡/高可用性,也可能在网络第二层实现。包过滤防火墙的访问控制功能由一套规则集组成,这些规则集是基于网络报文的以下信息实现的源地址、目的地址、流量类型、网络会话特征或物理端口。下面介绍的iptables就是一款优秀的网络层防火墙用他能很容易构建一个功能强大、性能优异的防火墙系统。2.iptables的安装、配置和使用Netfilter/iptablesIP数据包过滤系统是一个功能强大的工具,可用于添加、编辑和除去规则,这些规则是在做数据包过滤决策时防火墙所遵循和组成的规则。这些规则存储在专用的数据包过滤表中,而这些表则集成在Linux内核中。Linux2.4内核提供的防火墙系统实际上由netfilter和iptables组成。netfilter组件是内核的一部分,由一些数据包过滤表组成、这些表包含内核用来控制数据包过滤处理的规则集。iptables组件是一种工具,运行在用户空间,它用来存储在内核中的数据包过滤表中的规则。通过iptalbes可以方便地修改、添加和删除规则,也可以构建自己的定制规则。内核根据规则来决定,对来自某些源、前往某些目的地或具有某些协议类型的数据处理,可以是ACCEPT(允许该数据包通过)、DROP(丢弃该数据包),或者是REJECT(阻塞数据包)。根据规则处理的数据包类型,可以将规则分组在不同链中。处理入站数据包的规则被添加到INPUT链中;处理出站数据包的规则被添加到OUTPUT链中;处理正在转发的数据包的规则被添加到FORWARD链中。这三个链是基本数据包过滤表中内置的缺省主链。此外,还有其它许多可用链类型,如PREROUTING和POSTROUTING,以及提供用户定义的链。每个链都可以有一个策略,它定义“缺省目标”,也就是要执行的缺省操作,当数据包与链中的任何规则都不匹配时,执行此操作。建立规则并将链放在适当的之后,就可以开始进行真正的数据包过滤工作。这时内核空间从用户空间接管工作。当数据包到达防火墙时,内核先检查数据包的头信息,尤其是数据包的目的地,这个过程称为路由。如果数据包源自并前往系统,而且防火墙是打开的,那么内核将它传递到内核空间数据包过滤表的INPUT链。如果数据包源自系统内部或系统所连接的内部网上的其它源,并且此数据包要前往另一个外部系统,那么数据包被传递到OUTPUT链。类似的,源自外部系统并前往外部系统的数据包被传递到FORWARD链。接下来,将数据包的头信息与它所传递到的链中的每条规则进行比较,看它是否与某条规则全匹配,如果数据包与某条规则匹配,那么内核就对该数据包执行由该规则的目标指定的操作。但是,如果数据包与这条规则不匹配,那么它将与链中的下一条规则进行比较。最后,如果数据包与链中的任何规则都不匹配,那么内核将参考该链的策略来决定如何处理该数据包。(1)安装通常的Linux发行版本都支持iptalbes,很多情况下它已经随着操作系统而被安装。如果在安装操作系统时没有选择防火墙支持,那么需要重新编译内核才能使用iptables。对于如何重新编译内核,这里就不再赘述。关于iptables的安装可以参看iptables使用手册,或者相应How-to文档配置下面介绍iptalbes的常用参数。◆对规则的操作加入(append)一个新规则到一个链(-A)的最后。在链内某个插入(insert)一个新规则(-I),通常是插在最前面。在链内某个替换(replace)一条规则(-R)。在链内某个删除(delete)一条规则(-D)。删除(delete)链内第一条规则(-D)。◆指定源地址和目的地址通过“――source/--src/-s”可以指定源地址(这里的/表示或者的意思,下同),通过“—destination/--dst/-s”可以指定目的地址。有四种方法可以指定IP地址:使用完整的域名,如;使用IP地址,如192.168.1.1;用X.X.X.X/X.X.X.X指定一个网络地址,如192.168.1.0/255.255.255.0;用X.X.X.X/X指定一个网络地址,如192.168.1.0/24,这里的24表明了子网掩码的有效位数。◆指定网络接口使用”—in-intece/-i”或“—out-intece/-o”来指定网络接口。◆指定协议及端口通过“――protocol/-p”选项来指定协议,如果是UDP和TCP协议,还可使用“—source-port/--sport”和“—destination-port/--dport”来指明端口。关于防火墙的具体应用,这里限于篇幅就不详细介绍,在以后的文章中会以一个具体的例子来说明如何利用iptables的防火墙和网络地址转换(NAT)功能来提供一个安全、稳定、可靠的Internet接入。小结Linux系统以其强大的功能和的平台,为许多安全工具提供支持。除了以上列举到的Nmap、Nessue、Snort、iptables等软件外,还有诸多的安全工具能够在Linux平运行。掌握这些工具的原理、配置和使用对于信息系统的安全性来说是极其重要的。【编辑推荐】
tags:192.168.1.1设