鸭梨山大!

Linux常用的安全工具

2012年5月9日 操作系统 没有评论
“工欲善其事,必先利其器”。作为一个合格的系统管理员,要应对可能发生的安全事件,掌握Linux下各种必须的安全工具是首要大事。本文主要介绍Linux上常用的安全工具,例如,Nmap、Snort、Nesseu等安装、使用和维护知识。通过这些工具管理人员能够了解其系统目前存在的安全隐患、入侵者可能利用的漏洞,及时发现入侵,并构造一个坚固的防御体系将入侵拒之门外。
一、安全信息收集软件
对于系统管理员来说,了解和掌握系统当前的安全状态是做到“知己”的第一个步骤。安全信息收集软件就是用来收集目前系统安全状态的有力工具。端口扫描软件和漏洞扫描软件是常用的信息收集软件。入侵者通常通过端口扫描软件来掌握系统开放端口,运行服务器软件版本和操作系统版本等相关信息。而对于管理人员,通过这些软件可以让管理人员从入侵者的角度来审视系统,并且能够根据这些信息进行相应的配置和修改来迷惑入侵者。漏洞扫描软件能够获得具体的漏洞信息,利用这些漏洞信息,入侵者能够轻易地访问系统、获得非授权信息,甚至是获得整个系统的控制权限。而对于管理人员,通过漏洞扫描软件获得的信息能够帮助自己及时对系统进行加固和防御,让入侵者无机可乘。
1、Nmap
Nmap是一个网络探测和安全扫描程序,使用这个软件可以扫描大型的网络,以获取那台主机正在运行及提供什么服务等信息。Nmap支持很多扫描技术,例如UDP、TCPconnect()、TCP SYN(半开扫描)、FTP代理(bounce攻击)、反向标志、ICMP、FIN、ACK扫描、圣诞树(Xmas Tree)、SYN扫描和null扫描。Nmap还提供了一些高级的特征,例如,通过TCP/IP协议栈特征探测操作系统类型、秘密扫描、动态延时、重传计算和并行扫描,通过并行ping扫描探测关闭的主机、诱饵扫描,避开端口过滤检测,直接RPC扫描(无须端口影射)、碎片扫描,以及灵活的目标和端口设定。
(1)安装
Nmap的安装很简单,Linux各发行版本上通常都已经安装了Namp。这里首先用“nmap-v”查看当前系统所安装的nmap版本号:
# nmap -v
Starting nmap V. 4.00.(www.insecure.org/nmap/)
……
由于目前系统所安装的Nmap为4.00,不是最新版本,因此要首先从http://www.insecure.org/nmap/下载最新版本的源代码。目前最新版本为Nmap-5.5.tar.bz2,该文件为源代码压缩包,需要用bzip2进行解压缩。我们将该文件下载并保存在/root/nmap下,以root用户进行安装。
# bzip2 –cd nmap-5.5.tar.bz2∣tar xvf-
该命令将Nmap源代码解压缩至目录nmap-5.5。
进入该目录进行配置:
# ./configure
配置结束后用make命令进行编译:
# make
编译结束后用make install进行安装:
# make install
(2)使用
◆各种扫描模式与参数
首先需要输入要探测的主机IP地址作为参数。假设一个LAN中有两个节点:192.168.12.1和192.168.12.2
# nmap 192.168.12. 1
Starting nmap 5.5(http://www.insecure.org/nmap/) at 2010-01-24 15:24 CST
Interesting ports on 192.168.12. 1: (The 1651 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE
25/tcp open smtp
80/tcp open http
135/tcp open msrpc
139/tcp open netbios-ssn
443/tcp open https
445/tcp open Microsoft-ds
1025/tcp open NFS-or-IIS
1033/tcp open netinfo
1521/tcp open oracle
2030/tcp open device2
3372/tcp open msdtc
8080/tcp open http-proxy
MAC Address: 00:E0:4C:12:FA:4B (Realtek Semiconductor)
Nmap run completed – 1 IP address (1 host up)
Scanned in 22.882 seconds
上面是对目标主机进行全面TCP扫描的结果,显示了监听端口的服务情况,这一基本操作不需要任何参数。但是, 由于在扫描过程中建立了完整的TCP连接,主机可以很容易地监测到这类扫描。该命令是参数开关-sT的缺省。
-sS选项可以进行更加隐蔽地扫描,并防止被目标主机检测到,但此方式需要用户拥有root权限。-sF、-sX和-sN则可以进行一些超常的扫描。假如目标主机安装了过滤和日志软件来检测同步空闲字符SYN,那么-sS的隐蔽作用就失效了,此时可以采用-sF(隐蔽FIN)、-sX(Xmas Tree)及-sN(Null)方式扫描。
这里需要注意的是,由于微软的实现方式不同,对于运行Win 2003,Vista等NT的机器FIN 、Xmas或Null的扫描结果都是将端口关闭,由此可作为推断目标主机运行Windows操作系统的一种方法。以上命令都需要有root权限。-sU选项是监听目标主机的UDP,而不是默认的TCP端口。尽管在Linux机器上有时慢一些,比如,输入上面的例子:
# nmap -sU 192.168.12.1
Starting nmap 5.5 (http://www.insecure.org/nmap/) at 2010-01-24 15:28 CST
Interesting ports on 192.168.12.1:
(The 1472 ports scanned but not shown below are in state:closed)
PORT STATE SERVICE
135/udp open msrpc
137/udp open∣filtered netbios-ns
138/udp open∣filtered netbios-dgm
445/udp open∣filtered microsoft-ds
500/udp open∣filtered isakmp
3456/udp open∣filtered IISrpc-or-vat
MAC Address: 00:E0:4C:12:FA:44 (Realtek Semiconductor)
Nmap run completed – 1 IP address (1 host up) scanned in 4.381 seconds
◆操作系统探测
使用-O选项可推断目标主机的操作系统,既可与上述的命令参数联合使用,也可单独调用。Nmap利用TCP/IP“指纹”技术来推测目标主机的操作系统。还使用前面的例子:
#nmap -O 192.168.12. 1
Starting nmap 5.5(http://www.insecure.org/nmap/)at 2010-01-24 16:03 CST
Interesting ports on 192.168.12. 1:
(The 1651 ports scanned but not shown below are in state:closed)
PORT STATE SERVICE
25/tcp open smtp
80/tcp open http
135/tcp open msrpc
139/tcp open netbios-ssn
443/tcp open https
445/tcp open Microsoft-ds
1025/tcp open NFS-or-IIS
1033/tcp open netinfo
1521/tcp open oracle
2030/tcp open device2
3372/tcp open msdtc
8080/tcp open http-proxy
MAC Address: 00:E0:4C:12:FA:44 (Realtek Semiconductor)
Device type: general purpose
Running:Microsoft Windows 95/98/ME∣NT/2K/XP
OS details:Microsoft Windows Millennium Edition(Me),Windows 2000 Pro or Advanced Server,or Windows XP
Nmap run completed – 1 IP address(1 host up) scanned in 3.398 seconds
Nmap提供了一个OS数据库,上例中检测到了该主机运行的操作系统为Windows系列操作系统,可能为Windows 98、Windows 2000 Pro,或者为Windews vista/Windows 7等。
◆更进一步的应用
除了一次只扫描一个目标主机外,还可以同时扫描一个主机群,比如“nmap –sT –O 203.187.1.1-50”就可以同时扫描并探测IP地址在203.187.1.1到203.187.1.50之间的每一台主机。当然这需要更多的时间,耗费更多的系统资源和网络带宽,输出结果也可能很长。所以,可以使用下面命令将结果重定向输送到一个文件中:
#nmap -sT -O -oN test.txt 202.96.1.1-50
另外的一些命令参数选项如下:
-I 进行TCP反向用户认证扫描,可以透露扫描用户信息;
-iR 进行随机主机扫描;
-p 扫描特定的端口范围;
-v 长数据显示,“-v -v”是最长数据显示;
-h 快捷帮助。
下面给一个综合了上述参数的例子:
#nmap -sS -p 23,80 -oN ftphttpscan.txt 203.187.53.50-100
◆Nmap图形用户界面
Nmap有一些图形用户前端,比如,NmapFE(GTK界面)网址为
http://codebox.net/nmapfe.html;Kmap(Qt/KDE前端)网址为
http://www.edotorg.org/kde/kmap/;KNmap(KDE前端)网址为
http://pages.infinit.net/rewind/。
2.Nessus
Nessus是一个功能强大而又易于使用的远程安全扫描器,它不仅免费,而且更新极快。安全扫描器的功能是对指定网络进行安全检査,找出该网络是否存在有导致对手攻击的安全漏洞。该系统被设计为Client/Sever模式,服务器端负责进行安全检查,客户端用来配置管理服务器端。在服务端还采用了plug-in的体系,允许用户加入执行特定功能的插件,该插件可以进行更快速和更复杂的安全检查。在Nessus中还采用了一个共享的信息接口,称之知识库,其中保存了前面进行检査的结果。检查的结果可以HTML、纯文本、LaTeX(一种文本文件格式)等几种格式保存。在未来的新版本中,Nessus将会支持速度更快的安全检查,而且这种检查将会占用更少的带宽,其中可能会用到集群的技术以提高系统的运行效率。
Nessus的主要优点在于其采用了基于多种安全漏洞的扫描,避免了扫描不完整的情况;它是免费的,比起商业的安全扫描工具,如ISS具有价格优势;扩展性强、容易使用、功能强大,可以扫描出多种安全漏洞。
Nessus的安全检查完全是由plug-ins的插件完成的。目前Nessus提供的安全检查插件已达18类750个,而且这个数量还会增加。比如,在useless services类中,Echo port open和Chargen插件用来测试主机是否易受到已知的echo-chargen攻击;在backdoors类中,PcAnywhere插件用来检查主机是否运行了BO、PcAnywhere等后台程序。更可喜的是,其中包括了对最近肆虐一时的CodeRed及其变种的检测。
在Nessus主页中不但详细介绍了各种插件的功能,还提供了解决问题的相关方案。有关plug-in的详细说明,请参看http://cgi.nessus.org/plugins/dump.php3?viewby=family。
除了这些插件外,Nessus还为用户提供了描述攻击类型的脚本语言,进行附加的安全测试,这种语言称为Nessus攻击脚本语言(NSSL),用它来完成插件的编写。在客户端,用户可以指定运行Nessus服务的机器、使用的端口扫描器、测试的内容及测试的IP地址范围。Nessus本身是工作在多线程基础上的,所以用户还可以设置系统同时工作的线程数。这样用户在远端就可以设置Nessus的工作配置。安全检测完成后,服务端将检测结果返回到客户端,客户端生成直观的报告。在这个过程当中,由于服务器向客户端传送的内容是系统的安全弱点,为了防止通信内容受到监听,其传输过程还可以选择加密。
(1)安装软件
Nessus由客户端和服务器端两部分组成。首先看服务器端的安装。从http://ftp.nessus.org/nessus/nessus-2.2.2a/src/下载源代码包,其中包括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 四个文件。
首先用“tar xzvf nessus-*”将这四个软件包解开。第一个先安装nessus的lib库:
#cd nessus-libaries
#./configure & make &make install
然后以同样的方法按照上面的顺序安装其它三个软件包。安装完毕后,确认在etc/ld.so.conf文件加入已安装库文件的路径/usr/local/lib。如果没有,则只需在该文件中加入这个路径,然后执行ldconfig,这样nessus运行的时候就可以找到运行库了。
◆创建用户
Nessus服务端有自己的用户资料库,其中对每个用户都做了约束。用户可以在整个网络范围内通过nessusd服务端进行安全扫描。用nessus-adduser命令创建用户,根据命令提示创建用户。
Nessus-adduser是Nessusd的附带工具,安装完毕后,在安装目录下会产生这个程序。
◆配置Nessus服务端程序Nessusd
Nessusd的配置文件为nessusd.conf,位于/usr/local/etc/nessus/目录下,一般情况下不需要改动。这里还需要运行nessus-mkcert来生成服务器证书,可以按照默认设置。
◆启动nessusd
在上面的准备工作完成后,以root用户身份用下面的命令启动服务端:
# netssusd –D
Loading the plugins…3570(out of 5830)
载入完所有插件后将以系统服务进程的身份运行。
(2)使用
按照上面的方法启动Nessus的服务进程后,就可以执行客户端程序进行安全扫描了。
首先提示登录到Nessus服务器,在Nessus Host后面输入Nessus服务器所在的Linux机器IP地址,端口号及加密方式不需要做改动。输入用户名,单击 “Log in”登录。系统会询问是否接受服务器证书,选择第一项,然后单击“YES”接受证书。
一旦登录成功,“Log in”按钮会变为“Log out”,对话框的旁边还会有connected的提示。登录后就可以进行相应的漏洞扫描了。下面通过选择Plug-in插件来进行相应的安全扫描。下面是插件所能检査的攻击方法,单击每个攻击方法会弹出一个对话框介绍它的危害性及解决方法。然后选择扫描的目标主机,单击“target selection”,在窗口中输入目标地址,如上面所输入的192.168.12. 2。这里作者用的是一个内部地址,还可以用192.168.6.0/24的方式指定扫描192.168.6.1到192.168.6.255整个网段。
设置完毕后,单击“start scan”开始进行扫描。根据选择的插件数量、扫描的范围扫描时间不等。扫描结束后会有扫描结果。
在窗口的中列出了所有被扫描的网络、主机和主机相 应的端口,Nessus给出了安全漏洞的严重等级、问题的产生原因及解决方法。最后,扫描结果还能够以XML、ASCⅡ、HTML、NSR等多种格式存盘,做为参考资料供以后使用。
入侵检测系统(IDS)
1、原理
入侵检测系统(Intrusion Detection System,IDS)是一种主动保护自己免受攻击的一种网络安全技术。作为防火墙的合理补充,入侵检测技术能够帮助系统监测攻击行为,扩展了系统管理员的安全管理能力(包括安全审计、监视、攻击识别和响应),提高了信息安全基础结构的完整性。它从计算机网络系统中的若干关键点收集信息,并分析这些信息。 入侵检测被认为是防火墙之后的第二道安全闸门,能够在不影响网络性能的情况下能对网络进行监测,防止或减轻上述的网络威胁。
入侵检测系统有很多种,从部署的位置可以分为以下几种:
◆基于网络的系统,它放置于网络之上,靠近被检测的系统,它们监测网络流量并判断是否正常。
◆基于主机的系统,其经常运行在被监测的系统之上,用以监测系统上正在运行的进程是否合法。
◆最近出现的一种系统,位于操作系统的内核之中,并监测系统的最底层行为。
从检测的技术手段上可以分为以下两种:
◆误用检测是将收集到的数据与预先确定的特征知识库里的各种攻击模式进行比较,如果发现有攻击特征,则判断有攻击。特征知识库是将己知的攻击方法和技术的特征提取出来建立的一个知识库。
◆异常检测则是对收集到的数据进行统计分析。它首先假定所有的攻击行为与正常行为不同,这样发现与正常行为有不同时,则判断存在攻击。它需要建立正常行为的标准,如登录时错误次数为多少时视为正常。
相比而言,误用检测的原理简单,很容易配置,特征知识库也容易扩充。但它存在一个致命的弱点――只能检测到已知的攻击方法和技术。异常检测可以检测出已知的和未知的攻击方法和技术,但是其问题在于正常行为标准只能采用人工智能、机器学习算法等来生成,并且需要大量的数据和时间,同时,由于现在人工智能和机器学习算法仍处于研究阶段。所以现在的入侵检测系统大多采用误用检测的分析方法。
下面给介绍的Snort就是一个基于网络的、采用误用分析技术的入侵检测系统。
2.Snort的安装、配置和使用
Snort是一个开放源码的网络入侵检测系统。Snort的功能包括采用Libpcap捕获数据链路层的分组,并进行协议栈分析(TCP/IP协议)。Snort在内部使用Misused检测模型进行入侵检测,即通过一个完整的入侵规则库来实时匹配,并探测入侵行为。这个规则库非常全面,包含了探测缓冲区溢出、端口扫描、CGI攻击等,并处于不断更新当中。Snort可以轻易发现使用Nmap或Trin00等进行的攻击。Snort也允许用户方便地编写和加人自己的规则。日志可以存储成Tcpdump二进制格式、ASCⅡ格式或数据库格式(包括 MYSQL、PostgreSQL),甚至XML格式。
(1)安装
在http://www.snort.org/可以下载最新版本的Snort,目前最新稳定版本是2.8.0,下载文件为Snort-2.8.0RC2.tar.gz。安装的方法同上面介绍的几个软件类似。依次经过解压缩后运行“./configure”、“make”和“make install”。要注意的是,Snort需要libpcap库支持,如果尚未安装可以到http://www.tcpdump.org/下载libpcap源代码进行安装,目前最新版本为0.8.3。
执行文件安装完毕后还需要下载最新的规则文件。Snort采用基于误用的检测技术,需要按照预先定义好的规则同网络当中的流量进行比对,特征一致时认为有入侵事件发生,从而釆取相应动作,因此保持最新的特征库对Snort来说尤其重要。将下载到的规则文件解压缩,得到rules目录,其内容为按照攻击类型和攻击目标划分为不同规则文件。
(2)配置
Snort依靠命令启动时指定的配置文件进行配置,通常是/etc/snort.conf,可以编辑Snort配置文件源文件所在目录下/etc/snort.conf来进行配置。
# vi /root/snort/snort-2.8.0RC2/etc/
其中需要修改的地方如下:
Var HOME_NET yournetwork
Var RULE_PATH /etc/snort/rules
Preprocessor http_inspect:global\
此外还可以根据需要选择规则集合当中的规则文件,例如:
iis_unicode_map /etc/snort/rules/Unicode.map 1252
Include /etc/snort/rules/reference.config
Include /etc/snort/rules/classification.config
yournetwork即为所釆用的IP地址段,规则文件所在目录为刚才下载规则文件解压缩所在目录。
(3)使用
输入下面代码:
#snort –D –c /root/snort/snort-2.8.0RC2/etc/snort.conf
其中,-D参数表明Snort以后台进程方式运行,-c指名所釆用的配置文件位置。启动之后可以查看/var/log/snort/alert内容来检査结果。
#vi alert
[**][1:469:3]ICMP PING NMAP [**]
[Classification:Attempted Information Leak][Priority:2]
01/28-17:30:33.813923 192.168.100.122 ->202.12.37.7
ICMP TTL:50 TOS:0×0 ID:36381 IpLen:20 Dgmlen:28
Type:8 Code:0 ID:51597 Seq:14292 ECHO
[Xref=>http://www.whitehats.com/info/IDS162]
[**][122:1:0](portscan)TCP Portscan[**]
01/28-17:30:33.916752 192.168.12.1 ->202.12.37.7
PROTO255 TTL:0 TOS:0×0 ID:0 iplen:20 Dgmlen:182 DF
由上可以看到,告警文件中记录了网络当中一次Nmap端口扫描的行为。
 
防火墙系统
1、基本原理
防火墙适用于用户网络系统的边界,属于用户网络边界的安全保护设备。所谓网络边界即是釆用不同安全策略的两个网络连接处,比如用户网络和互联网之间连接、跟其它业务往来单位的网络连接及用户内网不同部门之间的连接等。防火墙的目的就是在网络连接之间建立一个安全控制点,通过允许、拒绝或重新定向经过防火墙的数据流,实现对进、出内部网络的服务和访问的审计和控制。
目前,有很多厂商提供各种类型的防火墙平台,通常有几种常用的分类方法:
按照产品形式可分为硬件防火墙和软件防火墙;
按照性能可以分为百兆级和千兆级防火墙;
按照操作模式可分为透明模式、路由模式和NET(网络地址转换);
按照部署位置可分为边界防火墙和主机/个人防火墙;
l按照OSI模型层次可分为包过滤防火墙、状态检测 防火墙和应用代理防火墙。
其中包过滤防火墙是最基本的防火墙,由一些基本路由设备通过内部的网络访问控制规则实现。它一般是工作在网络层,但在现代网络结构中,为了实现负载均衡/高可用性,也可能在网络第二层实现。包过滤防火墙的访问控制功能由一套规则集组成,这些规则集是基于网络报文的以下信息实现的源地址、目的地址、流量类型、网络会话特征或物理端口。
下面介绍的iptables就是一款优秀的网络层防火墙用他能很容易构建一个功能强大、性能优异的防火墙系统。
2.iptables的安装、配置和使用
Netfilter/iptables IP数据包过滤系统是一个功能强大的工具,可用于添加、编辑和除去规则,这些规则是在做数据包过滤决策时防火墙所遵循和组成的规则。这些规则存储在专用的数据包过滤表中,而这些表则集成在Linux内核中。Linux 2.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文档http://www.linuxguruz.com/iptables/howto/iptables-HOWTO.html
(2)配置
下面介绍iptalbes的常用参数。
◆对规则的操作
加入(append)一个新规则到一个链(-A)的最后。
在链内某个位置插入(insert)一个新规则(-I),通常是插在最前面。
在链内某个位置替换(replace)一条规则(-R)。
在链内某个位置删除(delete)一条规则(-D)。
删除(delete)链内第一条规则(-D)。
◆指定源地址和目的地址
通过“――source/–src/-s”可以指定源地址(这里的/表示或者的意思,下同),通过“—destination/–dst/-s”可以指定目的地址。有四种方法可以指定IP地址:使用完整的域名,如www.buaa.educn;使用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-interface/-i”或“—out-interface/-o”来指定网络接口。
◆指定协议及端口
通过“――protocol/-p”选项来指定协议,如果是UDP和TCP协议,还可使用“—source-port/–sport”和“—destination-port/–dport”来指明端 口。
关于防火墙的具体应用,这里限于篇幅就不详细介绍,在以后的文章中会以一个具体的例子来说明如何利用iptables的防火墙和网络地址转换(NAT)功能来提供一个安全、稳定、可靠的Internet接入。
小结
Linux系统以其强大的功能和开放的平台,为许多安全工具提供支持。除了以上列举到的Nmap、Nessue、Snort、iptables等软件外,还有诸多的安全工具能够在Linux平台下运行。掌握这些工具的原理、配置和使用对于维护信息系统的安全性来说是极其重要的。
 
本文出自 “李晨光原创技术博客” 博客!

不要”玩 Linux”

几点忠告

不要”玩 Linux”

很多人用 Linux 的时候会感觉很迷茫,该用哪个发行呢?是不是我少装了什么?怎么升级这么快啊!怎么这么不稳定!每当遇到新的软件他就想试用,每当新的版本出现,他就更新,然后用鼠标在新的菜单里选择从来没见过的程序来用用。

其实你是为了Linux而使用Linux,而没有找到正确的理由来利用 Linux。你首先要明确用电脑的目的,你用它是为了解决你的实际问题,而不是为了学习安装操作系统,不是为了测试哪个版本好用,不是为了”赶上潮流”,更不是因为你硬盘太大了,你想多占点空间。

如果你启动了电脑之后不知道应该干什么,那么最好先不要用电脑,因为你可能有更重要的事情需要做。

不用挑剔发行版本

很多人刚开始用 Linux 的时候,总是在怀疑别的发行版本是否比自己正在用的这个好,总是怀疑自己以后时候会失去支持,不得不换用别的发行。所以很多人今天是 Redhat,明天又换成了 debian, 一会儿又是 gentoo, …… 甚至有的人在一台机器上装了两个版本的 Linux,然后比较哪一个好。

其实你完全没有必要这样做,任何发行,只要你熟悉了,你在上面的工作方式几乎是不会受到任何影响的。你常常听说 Debian 的更新比 Redhat 快,包比 Redhat 多,但是你可以比 Debian 更新还要快,直接到你需要的程序的主站点下载源码来编译就是了。

Debian, TurboLinux, SuSE, Redhat, Gentoo, … 任何一个版本都是不错的。

不要当”传教士”

很多人在讨论区不断的引起 “Linux vs. Windows” 之类的讨论,甚至争的面红耳赤,这是没有必要的。因为各人的需要不同,生活的环境不同,你不可能得到一个定论。我们需要尊重别人的选择,这是你在进行任何对工具的讨论前需要提醒自己的事情。面对一些容易引起争论的东西:Word 和 TeX;Emacs 和 VIM;MAXIMA,Mathematica 和 Maple;Gnome,FVWM 和 KDE;Mutt 和 Pine …… 一定要冷静。

你需要关心的不是你的工具是什么,而是你用它做了什么。精通 Linux 并不说明任何问题,因为它只是一个工具而已。如果你用 Windows 能很好的完成你的任务,那你就没有必要费时间去熟悉 Linux。直到有一天你发现一项任务只有 Linux 才能完成的时候再换也不迟,因为你身边的 Linux 的爱好者一定会很乐意的帮助你。

并不是喜欢一种东西就必须反对其它的。世界需要多样性,人们都需要FUN。用自己的兴趣去压制别人的,就会毁掉所有的兴趣。个人喜欢什么就用什么,完全没必要为这个争论。

不要做”传教士”!你说我现在就是在”传教”?冤枉啊~

直接从源码安装程序

很多人放着最新的源码不用,等着有人帮他做出 rpm, deb, 才能安装。我说你为什么不用源码编译,这样版本比 rpm 高的多,有很多新功能,而没有烦人的依赖关系。可是他说:”要是我用源码编译安装,卸载的时候就不方便了,会留下很多垃圾。”

为什么程序还没有安装你就想到卸载?难道你不知道这个程序是用来做什么的?你应该改变到处找程序来试用的作法,而应该先了解一下到底那些程序有同样的功能,听听别人的意见,看看它们各有什么长处和短处,然后挑一个最适合你的程序来用。

从源码编译安装程序,不但比你装rpm更适合自己的机器设置,而且它们一般会装到 /usr/local 目录,这样你以后如果换硬盘重装系统,也可以把以前 /usr/local 下的程序原封不动拷贝过去用。我的 /usr/local 下有 2G 之多的程序,你想要是我有一台新机器要重新安装,然后配置,得花费多少时间?实际上我曾经通过网络把它们传到一台新机器上,然后就出去吃晚饭,回来时我就得到了另一台一摸一样的 Linux 机器。

确实要卸载 make install 的程序怎么办呢?答案是直接删掉。别以为直接删掉程序会留下垃圾,引起”系统不稳定”。(btw: 这是谁教你的啊?呵呵。) make install 无非就是把可执行程序放在 /usr/local/bin, 把某些函数库放在 /usr/local/lib,把数据文件放在 /usr/local/share 下一个它自己的目录,你把这些东西都删掉就行了,不会留下垃圾,即使真的留下一点文件没有删掉也占不了多少空间,更不可能引起系统不稳定。UNIX 就是这么简单

但是有几个程序不建议从源码安装,它们是 Mozilla, Open Office, … 它们编译时会占用你几个G的空间和好几个小时的时间,这种花费我觉得是不值得的,因为你不能从编译得到更多好处,不如直接安装编译好的版本。

不要盲目升级

不知道这是心理作用还是什么,有的人看到比较大的版本号,就会很想换成那个。很多人的 Redhat 本来配置的很舒服了,可是一旦 Redhat 发行新的版本,他们就会尽快下载过来,然后选择升级安装。结果很多时候把自己原来修改得很好的配置文件给冲掉了。新的软件又带来了新的问题,比如有一次我的 rxvt 升级到 2.7.8 就跟 miniChinput 冲突了,升级到 Redhat 8.0,发现 xmms 居然缺省不能放mp3了,XFree86 的 xtt 模块在 I810 上有新的 bug,会导致 Mozilla 突然退出。

如果你已经配置好了一切,千万别再整体升级了,这会浪费你很多很多时间的,不值得。如果需要的话,你可以只把某些部件升级,比如内核,glibc, gcc, XFree86,…

使用 UNIX 的经典程序

好的程序一般都是可以很方便的在很多种 UNIX 上移植的,bash, VIM, Emacs, Mutt, FVWM, xterm, 都是这样。如果你用这些程序,你就可以在 Sun, HP, … 等工作站上也装上,这样你在各种机型上的工作环境就几乎完全一样了!你不需要在 Sun 上面用 CDE,在PC上又换成 KDE,在它们上面都装一个 FVWM,使用相同的配置文件,就能得到一致的界面。

这些程序大部分都是久经考验的,是经过很多人多年开发的结果。它们功能完善,各种情况都考虑周全,绝对是你的好助手。

不要配置你不需要的东西

如果你只想做一个像我这样的普通用户,主要目的是用 Linux 来完成自己的科研任务和日常工作,那就可以不用系统管理员或者网络管理员的标准来要求自己,因为当一个系统和网络管理员确实很辛苦。普通用户学习那些不经常用到的复杂的维护系统的工具,其实是浪费时间,学了不用是会很快忘记的!

我不是一个合格的网络管理员,我的服务器都只设置了我自己需要的功能,设置好 ssh, ftp 已经足够了,那样可以省去我很多麻烦。我从来不过度考虑”安全”,因为 Linux 缺省已经很安全了。我没有磁带机,就不用管 tar 的那些稀奇古怪的参数了,czf, xzf, ztf 已经可以满足我所有的需要。sed, awk, … 我也只会几种常用的命令行。

不用忙着看内核源码

除非你想研究操作系统,否则还是先把怎么使用 Linux 掌握好再说吧。我以前看了那么多内核源代码,写了驱动程序,结果最后发现我还是一只很多事情不能用 Linux 解决的菜鸟 吸取我的教训吧,你应该首先掌握 shell,Xwindow 的使用和原理,它们可不比内核简单。

程序员眼中的女人

有的女人就像Windows 虽然很优秀,但是安全隐患太大。
有的女人就像UNIX  她条件很好,然而不是谁都能玩的起。
有的女人就像C# 长的很漂亮,但是家务活不行。
有的女人就像C++,她会默默的为你做很多的事情。
有的女人就像JAVA,只需一点付出她就会为你到处服务。
有的女人就像JAVA script,虽然对她处处小心但最终还是没有结果。

有的女人就像汇编 虽然很麻烦,但是有的时候还得求它。
有的女人就像 SQL,她会为你的发展带来莫大的帮助。
爱情就是死循环,一旦执行就陷进去了。
爱上一个人,就是内存泄露,你永远释放不了。
真正爱上一个人的时候,那就是常量限定,永远不会改变。
女朋友就是私有变量,只有我这个类才能调用。
情人就是指针用的时候一定要注意,要不然就带来巨大的灾难

 

春晚人人上的那些神吐糟完结篇

2012年1月27日 其他 没有评论

2011密码门数据库下载 天涯|猫|CSDN|多玩|人人 等全套

2011年12月27日 其他 19 条评论

Merry Christmas!

2011年12月25日 其他 1 条评论

iPad 2屏幕又爆背光门 缺陷或成苹果产品遗传基因

笔记本又坏了。

2011年11月6日 其他, 校园生活 1 条评论

阅读乔布斯:一个人留下的世界

2011年10月29日 计算机资讯 1 条评论

iPhone5流产 4S横空出世