Chinaunix首页 | 论坛 | 博客
  • 博客访问: 111596
  • 博文数量: 12
  • 博客积分: 1581
  • 博客等级: 上尉
  • 技术积分: 280
  • 用 户 组: 普通用户
  • 注册时间: 2006-11-12 14:10
文章分类

全部博文(12)

文章存档

2011年(1)

2010年(6)

2008年(5)

分类: BSD

2008-06-11 17:17:11

TCPWRAPPER

  tcpwrapper又称TCPD, 是网络服务的访问控制工具,也就是能过滤客户端的各种server的一个前台程序。不过有一个不好的地方就是:不适合用于UDP服务!

  TCPD有两个访问控制文件:

    /etc/hosts.allow
    /etc/hosts.deny

  /etc/hosts.allow决定谁有资格使用哪些服务。
  /etc/hosts.den则决定哪些客户端应该被阻挡在外。

  每当有客户端试图访问TCPD所代理的服务,它会优先评估/etc/hosts.allow所设定的条件,如果符合,则开放访问;若客户端不符合/etc/hosts.allow所描述的任何条件,则以/etc/hosts.deny来审核客户端的资格。若客户端符合/etc/hosts.deny所描述的资格,则会被拒绝访问。反之,客户端依然可以访问被保护的网络服务。
 
  /etc/hosts.allow and /ec/hosts.deny的文件格式:

  /etc/hosts.allow and /ec/hosts.deny有着相同的文件格式:
      servicelist : hostlist [:shellcmd]

  其中,servicelist是/etc/service文件里的一栏服务名称或关键字ALL。hostlist是一系列的主机名称。IP address或关键字ALL。 LOCAL代表主机名称中不包含 . 符号的任何客户端。 UNKNOW代表任何查不出其主机名称的客户端。PAEANOID代表任何主机名称不能被反解为IP address的客户端。第一个字母为 . 的名称 (exmaple : .M-gtuiw.com)表示该域下的任何子域与主机都不符合条件 (example: OS.M-gtuiw.com, bbs.M-gtuiw.com ...). 末端为 . 的不完整 IP address 代表一段范围内的所有IP address。如 172.16.代表172.16.0.0到172.16.255.255的这一段范围。或172.16.0.0/255.255.0.0也可表示同样的范围。最后,任何以/字符开始的模式,一律解释为含有名称列表或IP address列表的文件的绝对路径。example: /var/access/trustedhosts将使得tcpd daemon读取该文件,检查客户端的主机名称或IP address是否列在文件中。

  用 telnet 为例:
  假设局域网的地址为192.168.10.0/24,则/etc/hosts.allow应该有以下内容:

             telnet : 192.168.10.

  这样做可让192.168.10网段的所有IP要用telnet访问本机。
  而/etc/hosts.deny的内容又该如下:

             telnet : ALL
         or
             ALL : ALL

  这样的话除了上面的192.168.10网段的IP可telnet本机外,再也不会让其它服务进入本机。
  访问控制文件的第三个字段shellcmd,顾名思义,它可包含有一个shell命令,当遇到符合该行所描述的客户端时,则执行shellcmd.

  example:
  
             ftp : ALL EXCEPT LOCAL, .M-gtuiw.com \
                   echo "request from %d@%h:" >> /var/log/ftp.log;  \
                   if [ %h != "OS.M-gtuiw.com:" ] ; then  \
                      finge -l @%h >> /var/log/ftp.log  \
                   fi

   这样就可将一个shell 脚本作为一个shell commend来输出。
   这也表示若有LOACL与.M-gtuiw.com之外的客户端试图访问ftp服务的时候,它们的finger信息将被记录在/var/log/ftp.log日志文件中。tcpd会将%h 与 %d 宏扩展成客户端的主机名称与服务名称。

阅读(1866) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~