十二、UNIX工具的使用
(一) SATAN的使用
SATAN是当今最流行的扫描工具之一。 SATAN 的英文名为 Security Administrator Tool For Analyzing Networks,翻译成中文为:安全管理员的网络分析工具。SATAN 是一个分析网络的安全管理和测试、报告工具。它用来搜集网络上主机的许多信息,并可以识别且自动报告与网络相关的安全问题。
SATAN 是一个软件包,是为UNIX环境编写的。在发布的时候,它是一个基于XWindows系统的安全程序,具有友好的用户界面。它具有HTML接口,能通过当前系统中的浏览器,如Netscape,进行浏览和操作;能以各种方式选择目标;可以以表格方式显示结果;当发现漏洞时,会出现一些上下文敏感的指导显示。SATAN 是为UNIX操作系统设计的,主要是用C和Perl语言编写,为了用户界面的友好性,还用了一些HTML技术。运行时,除了命令行方式,还可以通过浏览器来操作。它能在许多UNIX平台上运行,有时根本不需要改变代码,而在其他非UNIX平台上也只是略作移植即可。
运行SATAN时如果不带参数,它就会自动运行WWW浏览器。也可以在命令行运行它,后面跟一个想要扫描的主机名。再次要提醒的是,如果要收集信息,必须是以超级用户的身份运行它,普通用户则不能收集这些信息。用户可以同时运行多个SATAN进程,但每个进程必须使用它自己的那个数据库。数据库可以在命令行通过-d参数指定。可以对一个IP地址块,包括256个地址(satan -d x.x.x x.x.x),使用一个数据库。当数据收集完毕,可以使用浏览器来合并数据。在此之后,可以使用浏览器的打印功能打印出结果。大多数文档都可以通过浏览器来阅读。SATAN借助于浏览器,使其使用非常方便,任何使用过浏览器的用户都会驾轻就熟的使用它。
进入SATAN的开始界面后,将出现几个功能项:
SATAN Data Management (SATAN 数据管理)
SATAN Target selection (SATAN 目标选择)
SATAN Reporting & Data Analysis (SATAN 报告和数据分析)
SATAN Configuration Management (SATAN 配置管理)
SATAN Documentation (SATAN 在线文档)
SATAN Troubleshooting (SATAN 疑难问题解答)
就像面对平常的Netscape Nangator 或者 Microsoft Internet Explorer中的超文本链接一样,可以单击任何一个链接。不同的是,此时,所有的文档都是取自本机的一些目录下面,而不是来自某个WWW服务器。当遇到问题时,随时都可以调出在线文档,来寻找问题的解答。
SATAN用于扫描远程主机的许多已知漏洞,下面是它扫描的主要的一些系统漏洞:
* FTPD 脆弱性及FTP目录是否可写
* NFS脆弱性
* NIS脆弱性
* RSH脆弱性
* sendmil服务器脆弱性
具体为:
* 向任何主机调用的NFS文件系统
* NIS口令文件可被任何主机访问
* 旧版本(在8.6.10前)的sendmail
* 从任何主机上的rexd访问
* X 服务器访问控制无效
* 借助FTPD的对任意文件的访问
* 可写匿名FTP根目录
要再次强调的是,这些都是已知的漏洞,SATAN并不能发现新的安全漏洞,也就是说,最终无法通过手工完成的事,SATAN也办不到。但是SATAN可以自动执行这些已知漏洞的检测,而且能以便于使用的方式提供信息。关于这一工具,最后要说的是,尽管SATAN 已经是名满天下,但是,还是有许多系统,包括美国军方的一些网络,被一些年轻的黑客使用这种工具侵入到系统中。因此,国内的网络用户和安全管理员们决不能因为SATAN扫描的是一些众所周知的陈旧的系统缺陷而掉以轻心,以为软件开发商已经修补了这些安全隐患或自己的系统的配置是安全正确的。
(二) TCP_Wrapper
Tcp_wrapper是Wietse Venema开发的一个可用于各种Unix平台的免费软件,Tcp_wrapper随着应用逐渐成为一种标准的Unix安全工具,成为unix守护程序 inetd的一个插件。通过Tcp_wrapper,管理员可以设置对inetd提供的各种服务进行监控和过滤。
我们知道, unix中各种服务的实现是基于inetd这个守护进程的,每当有网络服务请求时,无论是ftp,telnet,rlogin等等,这种请求都被送到处于侦听状态的inetd守护进程,inetd再根据请求启动相应服务.inetd的设置是根据/etc目录下inetd.conf决定的。 inetd.conf中标识了每种服务由什么进程来控制,我们抽取一行如下:
telnet stream tcp nowait root /usr/sbin/in.telnted in.telned
从上面这一行我们可以看到,telnet这个服务,是由/usr/sbin目录下的in.telnetd来控制的,每当有telnet的连接请求时, inetd就指导in.telnetd来启动telnet服务。这是unix默认的连接方式,在这个过程中,没有管理员可以控制的部分,也没有连接纪录。
而在安装了Tcp_wrapper的主机上,管理员可以对上述服务加以控制,当Tcp_wrapper编译安装成功后,会生成一个 tcpd程序,它可以在inetd.conf这个控制文件中取代in.telnetd的位置,这样,每当有telnet的连接请求时,tcpd即会截获,先读取管理员所设置的访问控制文件,合乎要求,则会把这次连接原封不动的转给真正的in.telnetd程序,由in.telnetd完成以后的工作。如果这次连接发起的ip不符合访问控制文件中的设置,则会中断连接请求,拒绝提供telnet服务。除in.telnetd以外,tcpd还可以替代其它各种tcp服务。
Tcp_wrapper访问控制的实现是依靠两个文件:hosts.allow,hosts.deny来实现的。这两个文件的语法是比较简单的,基本语法就是:
服务类型:本服务有效ip范围: 许可或拒绝。
如hosts.allow中为:
in.telnetd : sec.topsec.com.cn : allow
in.ftpd : 10.68.32. : allow
而hosts.deny为:
all : all
这两个文件的意思是对telnet来讲,只允许来自sec.topsec.com.cn的连接,对ftp而言,允许10.68.32这个c类地址的连接。
hosts.deny文件中的all : all表示除了这些以外,拒绝来自任何地方的任何服务.以上只是对访问控制文件的一个简单说明,管理员可以参看Tcp_wrapper的相应说明定制更为复杂的控制策略。
编辑/etc/inetd.conf,将原telnet stream tcp nowait root /usr/sbin/in.telnetd in.telnetd中的/usr/sbin/in.telnetd替换为tcpd及其所在路径,比如:即telnet stream tcp nowait root /sbin/tcpd in.telnetd
其它ftp,tftp,rsh,rlogin等同样操作即可,建议至少替换telnet,ftp,rsh,rlogin这几个守护程序。
编辑结束后,保存文件,ps -ef | grep inetd找出inetd的进程号,kill -HUP 重启inetd进程使改动生效。
接着我们编辑/etc/syslog.conf文件,加入日志纪录功能,在此例中即:
#tcp wrapper log local3.info /var/log/tcplog
编辑结束后,保存文件, 在/var/log下生成tcplog文件,注意这个文件的读写属性, 应该只对root有读写权限。然后ps -ef |
grep syslogd,找出syslogd的进程号,kill -HUP 重启syslogd进程使改动生效。最后一项工作是编辑hosts.deny和hosts.allow文件,按上面的语法编辑即可。至此所有工作完成,我们可以用上述两个文件的设置来试一试,假设主机refuse(IP 11.22.33.44)telnet本机,我们看一看系统的反应。
refuse#telnet www.topsec.com.cn
Trying www.topsec.com.cn ...
Connected to www.topsec.com.cn
Connection closed by foreign host.
我们再看看本机Tcp_wrapper的日志,多了一条:
Apr 2 13:56:20 yiming in.telnetd[1769]: refused connect from 11.22.33.44
更多的使用方法请参考该软件的帮助文件。
共8页: 上一页 [1] [2] [3] [4] [5] [6] [7] 8 |