最后,这篇文章不是一篇\"如何使你的网络或主机安全\"的文章,而是一篇关于你能够(必须)用来提高一个网络或机器安全性的各种工具的介绍.简单地说,我们可以把防火墙看作包过滤工具,工作最重要的部分是关心防火墙的配置.
四、嗅探系统
有些工具能发现端口扫描或入侵.标准的系统管理不能没有这种工具(这有点偏执!).
第一套工具集来自算盘工程.你可以从
http://www.psionic.com获得这些工具.其中包含三个工具:
logcheck,portsentry和hostsentry. Logcheck版本是1.1.1,portsentry版本是1.0,hostsentry版本是0.0.2alpha.
Portsentry是一个端口扫描发现工具,就象名字所说的那样,如果端口被某处扫描,portsentrt就会立即堵赛主机,要么就是使用防火墙扔掉路由(或者是一个不用的ip地址),或者只要TCPWrapper安装在你机器上,就把骇客的ip地址写进文件/etc/hosts.deny中,反应相当有效率! Portsentry依赖一个主要的配置文件和一些特殊的文件,这些特殊文件是用来忽视一些主机(也就是不堵塞它们),或者是堵塞某些主机的某些端口。通过配置文件,你可以定义portsentry的工作方式。
首先,你要选择梆定到portsentry上的端口,是TCP还是UDP(或者两者都是),注意,如果你使用X11,就不能绑定到端口6000上!
按照你使用的unix系统,你有两种不同的操作方式来监视端口,现在只有linux支持先进模式。
下一步是堵塞选项,要么堵塞要么不堵塞扫描,或着运行外部命令。
接着选择扔掉路由,或者把攻击者重定向到一个网络上不使用的ip地址或者是防火墙上。
下一步是与TCPWrapper有关,那就是你得决定是不是写一个拒绝条目进文件/etc/hosts.deny中。
接下来你可以定义一个外部命令来运行,最后,你可以为扫描选一个触发器值,(缺省为0)。
以上就是你必须做的,我们假设你懂得关于日志记录的一切东西。因为,显而易见,所有的警告被记录下来。这意味着,如果你想把最终的警告放到/var/log/messages或var/log/syslog或/var/adm/messages等文件
之外的某个地方,你可以修改你的syslog.conf文件。
你可以选择在后台运行portsentry,这个选项取决于你得系统,在大多数unix版本上可以使用-tcp,-udp选项,在linux机器上可以用-atcp,-audp选项.(a代表先进)
让我们来看一看扫描一台运行有portsentry的机器时的结果.
如果你是一个每个星期看一次日志的系统管理员(你应该换个工作了),算盘工程提供了另外一个工具:logcheck.如果在日志中发现异常的现象时,这个工具通过cron任务和发邮件给管理员.
这个套件中最新的工具叫作hostsentry,看起来相当有趣,但我没有测试过.
如果你想要一个伟大,简单和高效的工具时,选portsentry!
谢谢Rowland先生,他的工作非常伟大,顺便说一下,我喜欢他的幽默.
另外一个系统管理员真的不可少的工具叫snort.
snort是一个IDS(入侵检测系统)并且非常精确的轻量级的工具.你能从
http://www.snort.org网站上下载1.6.3版本的snort.据说可以在任何能和libpcap工作的平台上运行.最好使用最新版的libpcap.顺便说一下,你可以得到win32版的snort.
snort可以分析ip数据流,提供非常健壮的日志功能.snort依赖规则脚本,你可以监视你想要监视的东西.
甚至提供给你一个规则数据库,这样,你就得做一个重要的决定:把探测器放在何处,或者你会提出,啦种流量要监控?今,出,在防火墙外还是内部?
我们宁愿建议在任何一个地方!!!这对我而言,是个严肃的问题,如果你是一个"标准"的系统管理员,探测器越多越好.
现在你决定监听某处,你必须选择应用的规则.snort带有许多基本的规则,后门,ddos,finger,ftp...这些规则被放在snort-lib文件中,你可以从snort的网站上得到新的和升级的规则.
你只要把snort设置好选项作为后台任务运行就可以了,如果要把snort当做守护进程运行,选项就是-D因为你可以重定向日志,所以你也能定义日志记录在哪里,甚至是另外一台机器.
在这篇文章中提到snort的所有功能是不可能的,这篇文章只能告诉你一部份.不管这么说。
nort是另外一个你必不可少的工具.snort是非常伟大的工具.多谢Roesch先生.
一些免费工具:比方说
http://www.cs.tut.fi/~rammer/aide.html介绍的AIDE。
五、加密在这个领域有许多工具,我们不能全部说到它们,不管怎样,我们至少要说一说SSH,特别是免费版本的openSSH.从
http://www.openssh.com上能得到它.现在版本是2.3.0,这个伟大的产品原先是在openbsd上开发的,现在可以运行在许多unix版本上.
openssh是telnet和其它远程命令如rsh,rlogin等的替代品.它包含scp这一ftp和rcp的替代品.openssh可以对网络上传输的数据进行加密.telnet,rsh等用明文传输,当然包含口令的传输!
所以,你不应该再使用上述工具,而应改用openssh.这有点强迫,就让我们少少法西斯吧!
问题是这种工具和加密法有关,有些国家非常严格,不容许这类软件.事情正在发生了变化,但是在许多国家你还是不能自由使用这些软件。举个例子来说,一段时间以前,如果你在象法国这类国家中使用ssh,你就被当作一个间谍,(根据国家人权法)幸运的是现在不是这样了,不管怎么说, 我建议在使用这类工具时先读一下有关
规定。你可以在
http://www2.epic.org/reports/crypto2000/countries.html 网页上找到不同国家关于这种情况的报告。
毕竟,加密是一个非常关注的话题,有许多工具可供考虑,让我们提一下
http://www.openssl.org上的openssl(安全套接层),或者是
http://www.strongcrypto.com上的Strong Crypto,一个公开原码的linux上的VPN工具。
vpn是另外一种解决方案,值得用另外一篇文章来详细介绍。(象上面题及的大多数工具)因此,我们不想在这里多说什么。
显而易见地,我们不会忘记提一下在
http://www.ietf.org/html.charters/openpgp-charter.html网页上的
openPGP和网站
http://www.gnupg.org中的GNUpg.