[ 永远的UNIX::UNIX技术资料的宝库 ]

首页 > 网管技术 > 其它 > 正文

网络管理员指南 -9.各种网络应用程序-2>tcpd 访问控制设备

来源:本文出自:http://www.linpus.com.tw 作者: Andrew Anderson (2001-07-13 19:00:00)

    因为打开一台计算机到网络访问,可能产生许多安全风险,应用程序被设计用来防卫若干类型的攻击。
    然而,其中的一些可能有缺陷(大多数彻底地由 RTM 因特网蠕虫论证了),或不在安全的主机间辨别,
    从中一种特别的服务将被接受,并且正确的主机的请求将被拒绝。我们已经简短地讨论了指针和上述
    tftp 服务器。这样,一个人仅仅想要限制存取到这些服务器到“信任的主机”,它不可能使用通常的
    安装, inetd 或者在此提供这种服务到所有的顾客,或者不提供。

    为此的一个有用的工具是 tcpd ,一张所谓的daemon wrapper。对于TCP服务器,你想要监视或保护,
    它引发服务器程序的替代。 tcpd 记载请求到 syslog daemon,  如果远程主机被允许使用那种服务
    就进行检查,并且只有这个成功,它才执行真实的服务器程序。注意,这不与UDP为基础的服务器一
    起工作。

例如,隐蔽指针daemon,你必须在 inetd.conf 中改变相应的线到

# wrap finger daemon
           finger  stream  tcp     nowait  root    /usr/sbin/tcpd
in.fingerd
 
 

没有增加任何访问控制,这将只是作为通常的指针安装出现到顾客面前,但是任何请求都会被记载到 
syslog 的 auth 设备。

    访问控制借助于被称为 /etc/hosts.allow 和/etc/host.deny的两个文件执行。他们分别地包含允许
    和否认存取到某个服务和主机。当 tcpd 从被称为了 biff.foobar.com 的一位客户主机中为象指针一
    样的一种服务处理一个请求时,它扫描 hosts.allow 和 hosts.deny (以这个顺序)为一个入口匹配服
    务和客户主机。如果一个匹配的入口在 hosts.allow被发现,存取被同意,不考虑在 hosts.deny 的任
    何入口。如果一个匹配在 hosts.deny被发现 ,请求被关闭连接所拒绝。如果根本没有匹配被发现,
    请求被接受。

在存取文件中的入口看起来像这样:

   servicelist: hostlist [:shellcmd]
 

    服务列表是从 /etc/services 中的服务名字表,或关键字ALL。除了指针和 tftp 匹配所有的服务,使
    用“ALL EXCEPT finger, tftp ”。

    主机列表是主机名字或IP地址的一张表,或关键字ALL,LOCAL,或UNKNOWN。所有匹配任何主机,当LOCAL
    匹配的主机名字不包含一个点时。UNKNOWN匹配任何主机,它的名字或地址查找失败了。以一个点开始
    的一个名字匹配所有主机,它的域对这个名字是相等的。例如, .foobar.com 匹配 biff.foobar.com 。
    也有为IP网络地址和子网数字的规定。细节请参见 hosts_access ( 5 )手册页。

    否认存取到指针和 tftp服务器除了本地主机的所有,将下面的东西放在 /etc/hosts.deny 中,并且让 
    /etc/hosts.allow 为空:

    当入口被匹配时,可选的 shellcmd 域可以包含一个设定命令行解释器的命令被调用。这对于建立可以
    暴露潜在攻击者的陷井是很有用的:

    % h 和% d 参数通过tcpd分别地扩展到顾客主机名字和服务名字。细节请参见hosts_access ( 5 )手册页。


(http://www.fanqiang.com)



 
 相关文章

★  感谢所有的作者为我们学习技术知识提供了一条捷径  ★
www.fanqiang.com