第一节 概述
redhat 7.2 的系统服务存取控制机制主要有两种:一种是以ipchains或iptables为具体实现的firewall机制,另一种是以tcp wrapper为具体实现的x.netd机制。本文档主要论述后一种机制的具体实现。
1 关于tcp wrapper
象te.net、ssh、ftp、pop和smtp等很多网络服务都会用到tcp wrapper,它被设计为一个介于外来服务请求和系统服务回应的中间处理软件。它的基本过程是这样的:当系统接收到一个外来服务请求的时候,先由tcp wrapper处理这个请求,tcp wrapper根据这个请求所请求的服务和针对这个服务所定制的存取控制规则来判断对方是否有使用这个服务的权限,如果有,tcp wrapper将该请求按照配置文件定义的规则转交给相应的守护进程去处理同时记录这个请求动作,然后自己就等待下一个请求的处理。
tcp wrapper机制的主要目的在于,来自客户端的请求只被允许同一个独立的守护进程(x.netd)直接通信,而它请求的目标服务被tcp wrapper包裹起来,这样就提高了系统的安全性和系统管理的方便性。
一方面,tcp wrapper 提高了系统的安全性。系统安全性的具体体现主要有两点,一个是获取访问权限前的控制,一个是获取访问后的处理。获取权限前,它会根据/etc/hosts.allow和/etc/hosts.deny定制的规则来判断对方是否有权限;获取权限后,通过bind、redirect等属性的设置,可能已经由另一台主机或者另一个服务在处理了对方的请求,而对方并不会感知中间经过了这样的处理。
另一方面,tcp wrapper更加方便了系统管理。一方面可以抽取系统所有服务共有的属性放到/etc/x.netd.conf中,另一方面,将每一个服务具体的配置放到/etc/.netd.d目录下,而每个配置文件都遵循同样的语法和规则。
tcp wrapper的功能来自于libwrap.a,它是一个网络服务库,象x.netd、sshd和portmap等许多系统服务编译时都依赖于它,其他的网路服务程序甚至你自己编写的网络服务程序都可以加上这个编译选项来提供tcp wrapper的功能。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器