FreeBSD连载(77):安全工具
来源: 作者: 出处:综艺读书 2006-10-10安全工具
虽然只使用FreeBSD基本系统提供的功能,就能将计算机系统设置为具有非常高的安全性的系统。
|
|
|||
- 系统工具软件
虽然FreeBSD系统本身提供了对访问的认证、控制和记录,然而由于在Unix系统中,服务程序基本上是独 立的,使用标准的安全控制方式的服务程序能从FreeBSD的认证控制机制中获益,但是有些服务程序并没有使用这些安 全认证方式。对于独立进行认证控制的软件,除了使用其本身的控制能力之外,还有一些独立的软件具备为其他程序服务的控 制访问功能。
还有一些系统工具,能用于自动检查系统,帮助管理员发现系统中存在的问题,这些软件也是非常有用的工具。此外 ,还有一些工具软件属于系统工具,但对于增进系统安全也有很大意义,例如sudo,能在一定程度上增加root口令的 安全性。
- TcpWrapper
tcp_wrapper对于多种服务器软件是非常有用的访问控制工具,它能以统一的方式保护各种不同服务器。对于 没有受防火墙保护的独立主机系统,tcpwrapper的保护更为重要。因为配置了tcp_wrapper之后,任何向inetd发起的 连接首先是连接到tcp_wrapper提供的tcpd上之后,再连接到具体的服务进程上,这样tcpd就有机会查看远程系统是 否被允许访问,并能将连接的情况通过syslog记录下来,包括请求的种类,时间和连接的来源地址。
这个程序事实上代替了系统提供的守护进程,来轻松和高效的监控外部网络与服务器的连接。由于它提供了 详细的日志记录,也是用于抓住入侵者,并提供可靠的证据的一种方法。tcpwrapper的思想与代理型防火墙的思路是 相同的,都是通过替换正常服务器的做法来完成控制任务。
当使用Packages Collection安装了tcpwrapper之后,它的守护进程tcpd就被安装到了/usr/local/libexec目录 下,然后就能使用tcpd来代替原有的守护进程提供网络服务了。
FreeeBSD 3.2-RELEASE之后,tcp_wrapper进入了FreeBSD的基本系统中,而不再需要额外安装。
有几种不同的使用tcpd的办法,最基本的办法是通过更改inetd.conf来启动tcpd。例如要想让tcpd来保护 fingerd,那么就需要将inetd.conf中对应fingerd的设置更改为tcpd:
finger stream tcp nowait/3/10 nobody /usr/local/libexec/tcpd fingerd -s
tcpd能在标准的系统文件目录中查找正确的守护进程以提供服务,如果进程不在标准的目录路径下,就需要在 最后一列中指定所要执行文件的全路径,如/usr/libexec/fingerd。此后,对finger端口的访问,将被记录进系统的日 志文件,具体为syslog.conf中对auth指定的记录文件,例如下面的syslog设置将tcpd的信息发送到/var/log/auth.log 文件中(需要保证auth.log文件已存在)。
auth.* /var/log/auth.log
tcpd使用/usr/local/etc/目录下的hosts.allow和hosts.deny文件来控制对服务器的访问,访问控制是基于IP 地址和域名的。以下为一个hosts.allow控制文件的例子。可以看出设置文件比较简单易懂,tcpwrapper也提供了一个 程序tcpdchk,来检查用户更改过的设置文件是否正确。
ALL: domain.com
telnet: 192.168.3.0/255.255.255.0 EXCEPT 192.168.3.10
此外有着相似功能,但用于替换inetd的软件为xinetd,它能用于代替原有的inetd来启动各种服务程序,但提 供了更详细的日志记录。
- 系统安全检查工具
Internet上针对每个系统均报告了大量的安全相关的问题,如果将这些已知的安全问题有效的组织起来,使 用程序对系统自动进行检查,就能极大的帮助网络管理员查找现有的问题,使得系统更为安全。网络上存在多种这类的工具, 如Satan、cops,就用于这个目的。然而由于它们的强大功能,这些工具也能被企图入侵他人系统的使用者利用,因 此为了避免入侵者,系统管理员应该尽早使用这些软件,以起到预防作用。
cops是一个由系统管理员运行,检查系统内部设置的程序。它针对已知的Unix存在问题进行检查,如检查系 统中是否存在没有口令的帐户,是否有非法SetUID程序,以及是否存在Internet上已经报告过的系统漏洞,是 否存在有问题的软件等等。系统管理员能使用cops来检查系统的配置有无问题。
Satan则与cops不同,Satan是从系统外部进行检查系统是否存在安全问题的程序,它能对网络存在的 脆弱性自动进行搜索、分析并提供安全报告。这种从外部分析系统的软件一般称为扫描器,由于Satan功能强大并提供了 可扩展的框架,因此在Internet上十分流行。它的另一个特点就是它通过Web浏览器工作,使用者只需指明要搜索 的主机以及搜索深度和相近规则的级别,Satan就能自动收集尽可能多的目标信息。
由于Santa是一个安全工具,因此它对扫描目标计算机并没有刻意隐藏,这样就在目标计算机的系统日志中留下 了大量的扫描连接记录,尤其是当目标计算机使用了tcpwrapper的时候。这些日志能用于标识是否遭到扫描攻击。 一些更隐蔽的软件工具能通过不进行完全连接等方式隐藏扫描记录,要发现它们就更为困难,因而对系统安全更为危险。
- 加密数据传输
一般情况下,用户需要从客户机上访问服务器,数据是以透明的方式通过网络传输的,这样数据包经过的网 络中的计算机都有可能截取传送的信息。由于这个问题来源于低层网络的结构,只能通过协议的加密来防止信息泄 露。然而当前大部分网络协议并不支持加密传送,因此使用窥探的方式获取网络上的信息,虽然是一种被动的方式, 却是对网络安全的重要威胁。
- Tcpdump
任何事情都具有两面性,事实上能够获得网络上传输的数据的工具对于维护网络运行也非常重要,网络需要这些工具 软件来帮助分析网络状态、解决各种网络故障,它们是网络工程师的好帮手。在市场上销售的有好几种专用的网络分析设备, 来实现截获数据并进行分析的目的。虽然这些硬件实现的设备虽然功能强大,但价格昂贵,而使用软件通过标准计算机的网络 接口来实现这种功能,相对来讲对于一般使用者还是可以承受的。
tcpdump就是一种免费的网络分析工具,尤其其提供了源代码,公开了接口,因此具备很强的可扩展性,对于 网络维护和入侵者都是非常有用的工具。tcpdump存在于基本的FreeBSD系统中,由于它需要将网络界面设置为 混杂模式,普通用户不能正常执行,但具备root权限的用户可以直接执行它来获取网络上的信息。因此系统中存在网络分 析工具主要不是对本机安全的威胁,而是对网络上的其他计算机的安全存在威胁。
普通情况下,直接启动tcpdump将监视第一个网络界面上所有流过的数据包。
bash-2.02# tcpdump
tcpdump: listening on fxp0
11:58:47.873028 202.102.245.40.netbios-ns > 202.102.245.127.netbios-ns: udp 50
11:58:47.974331 0:10:7b:8:3a:56 > 1:80:c2:0:0:0 802.1d ui/C len=43
0000 0000 0080 0000 1007 cf08 0900 0000
0e80 0000 902b 4695 0980 8701 0014 0002
000f 0000 902b 4695 0008 00
11:58:48.373134 0:0:e8:5b:6d:85 > Broadcast sap e0 ui/C len=97
ffff 0060 0004 ffff ffff ffff ffff ffff
0452 ffff ffff 0000 e85b 6d85 4008 0002
0640 4d41 5354 4552 5f57 4542 0000 0000
0000 00
^C
tcpdump支持相当多的不同参数,如使用-i参数指定tcpdump监听的网络界面,这在计算机具有多个 网络界面时非常有用,使用-c参数指定要监听的数据包数量,使用-w参数指定将监听到的数据包写入文件中保存,等等。
然而更复杂的tcpdump参数是用于过滤目的,这是因为网络中流量很大,如果不加分辨将所有的数据包都截留 下来,数据量太大,反而不容易发现需要的数据包。使用这些参数定义的过滤规则可以截留特定的数据包,以缩小目标,才能 更好的分析网络中存在的问题。tcpdump使用参数指定要监视数据包的类型、地址、端口等,根据具体的网络问题,充 分利用这些过滤规则就能达到迅速定位故障的目的。请使用man tcpdump查看这些过滤规则的具体用法。
显然为了安全起见,不用作网络管理用途的计算机上不应该运行这一类的网络分析软件,为了屏蔽它们,可以屏蔽内 核中的bpfilter伪设备。一般情况下网络硬件和TCP/IP堆栈不支持接收或发送与本计算机无关的数据包,为了 接收这些数据包,就必须使用网卡的混杂模式,并绕过标准的TCP/IP堆栈才行。在FreeBSD下,这就需要内核支 持伪设备bpfilter。因此,在内核中取消bpfilter支持,就能屏蔽tcpdump之类的网络分析工具。
并且当网卡被设置为混杂模式时
更多内容请看Freebsd安全 FreeBSD安全管理技巧 Freebsd频道专题,或进入讨论组讨论。
·系统安全设置 (18567篇文章)
·配置安全的操作系统 (8024篇文章)
·打造安全服务器 (11022篇文章)
·MySQL安全 (8247篇文章)
·电子邮件安全 (6895篇文章)
·SSH安全技术 (6802篇文章)
·数据库安全技术专题 (11074篇文章)
·FreeBSD系统安全管理 (7310篇文章)
·局域网安全管理 (7900篇文章)
·在FreeBSD4.x中制作启动菜单 12-12
·在FREEBSD 5中使用MRTG画图 12-07
·浅谈FreeBSD 5.2常用操作的改变 12-02
·FreeBSD如何通过代理上网更新 11-21
·拿刀砍才能进freebsd系统的修复方法 10-27
·FreeBSD新手建议 10-14
·CERT? Advisory CA-2003-25 Buffer Overflow in Se 10-12
·FREEBSD下使用crunch集成编译程序 10-10
·FreeBSD下配置IPSec:WinXP------FreeBSD 10-10




