FreeBSD下也有“看门人”--浅谈tcpwrapper的基本使用方法( 二 )


telnetd : 192.168.1.0/255.255.255.0 : allow
这条规则放在
telnetd : ALL : deny
规则之上 , 否则允许192.168.1.0/24访问的这条规则就等于“空规则”了 。

OK , 保存退出 。规则配置完成了 。如何得知自己配置的规则群有无逻辑错误(如出现“空规则”等)或其他错误呢?关于这个问题tcpwrapper的作者也考虑到了 , 所以他另外写了两个附带的工具:tcpdchk与tcpdmatch , 默认这两个程序都是在/usr/sbin/目录下的 。tcpdchk是一个检查工具 , 直接运行它就可以查出配置文件中的多种错误问题了 。其经常使用方法为:
alex# tcpdchk

alex# tcpdchk -v
无参数运行tcpdchk可以直接得到该配置文件的错误提示(如果真的有错误存在的话);加上参数-v可以立刻得到所有规则的参数配对列表(这里无论规则是否有误 , 都会一概显示出来的) 。如果我的规则群中有几十、几百、甚至几千条规则呢?哪能知道哪条打哪条啊?嘿嘿 , 还有办法 , 这里就要用到第二个程序----tcpdmatch了 , 它是一个简单的规则数据库查询工具 。使用它进行查询的基本格式是:
alex# tcpdmatch 服务名 访问的客户端地址或者机器名

现在打个比方 , 我们想查看该服务器提供的telnetd服务是否允许IP地址为192.168.1.10的客户端机器访问呢?在SHELL中敲入:
alex# tcpdmatch telnetd 192.168.1.10
clIEnt: address 192.168.1.10 #提示你所查询的客户端机器地址为192.168.1.10
server: process telnetd #查询的服务是telnetd
matched: /etc/hosts.allow line 2 #规则建立在/etc/hosts.allow的第2行
option: allow #管理者设置的行为是“允许”
access: granted #批准该规则

大伙如果觉得规则群中某些规则的设置问题上是比较含糊的话 , 不妨使用一下这两个工具 , 它们可以帮助你很快地整理并建立起属于自己的规则群 。

现在关于规则的设置问题就已经告一段落了 。既然规则设置好了 , 如何能让它们实施起来呢?大家应该知道 , 在FreeBSD中大多数INTERNET网络服务都是通过inetd(超级网络服务进程)来启动与调节的 , 因此我们的tcpwrapper也应该从这里下手 。以前大多数的UNIX系统在使用tcpwrapper时都是通过使用tcpd守护进程来代替其他服务运行从而实现监控其他网络进程的目的的 , 不过在现在的FreeBSD4.x中这个操作问题已经有了新的改良 , 现在我们只需要在启动inetd时加入-w、-W这两个参数就可以启用tcpwrapper功能了 。那关于日志的问题又如何解决呢?如何你经常使用inetd的话也应该清楚-l参数了吧?
alex# inetd -w -W -l

加了-l后我们就可以直接在/var/log/auth.log中找到相关的日志记录了 。FreeBSD的日志比WINDOWS的更加直观 , 大家已经自己找找:)...像这条:
xxx 24 xx:xx:xx alex inetd[255]: refused connection from 218.20.121.161, service telnetd (tcp)
一看就知道是IP为218.20.121.161的客户端机器企图访问本机的telnetd服务 , 被本机拒绝了...

说说预启动的问题吧 。如何在启动机器时使自动执行tcpwrapper呢?使用ee编辑/etc/rc.conf , 写入:
inetd_enable="YES"
inetd_flags="-w -W -l"

保存退出 , 重新启动机器试试:) 。

是时候确认一下实验后的“战果”情况了 , 在服务器的SHELL中敲:
alex# sockstat -4
USER COMMAND PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESS
root inetd 77 4 tcp4 *:23 *:*
root syslogd 70 5 udp4 *:514 *:*

PID为77的inetd进程证明telnetd是在提供正常服务的(如果想再进一步地确认telnetd是否在提供正常的服务的话 , 你可以直接用内网的机器登陆上去看一下) 。现在使用规则“允许”范围以外的其他地址的客户端机器telnet上去 , 看看会如何 , 很快你就会看到:

遗失对主机的连接 。

推荐阅读