您的位置:首页 > 理论基础 > 计算机网络

TCP Wrapper&xinetd

2015-07-23 09:54 459 查看
TCP Wrapper通过/etc/hosts.allow,/etc/hosts.deny这两个配置文件来管理一个类似于防火墙的机制,/etc/hosts.{allow|deny}是/usr/sbin/tcpd的配置文件,而/usr/sbin/tcpd是用来分析进入系统的TCP网络数据包的一个软件,所以使用TCP Wrapper来控管的就是1.源IP或整个域的IP网段2.服务

基本上由supper daemon(xinetd)所管理的服务,或者该服务的程序支持TCP Wrappers函数的功能时,那么该服务就能通过/etc/hosts.{allow|deny}这两个文件来管理防火墙规则

查询系统有没有安装xinetd及xinetd所管理的服务



早期的super daemon是inetd这一个,后来经过改良被xinetd所替代。Super daemon负责唤起服务,当没有client端请求时,各项服务都未启动,等到有client端请求时,super daemon才唤醒相对应的服务,当请求结束,被唤醒的服务也会关闭并释放系统资源。

Stand alone是一直存在内存内持续的提供服务,因此对于client端的请求,响应速度较快,而super daemon因为有client端请求才会唤醒相应的服务,会产生加载到内存的时间,因此服务的反应时间较慢,但不会一直占用系统资源

由于支持TCP Wrappers的服务必定包含libwrap这一个动态函数库,因此可以使用ldd命令(library dependency discovery查询某个程序的动态函数库支持状态)



/etc/hosts.{allow|deny}文件与规则的顺序优先级

先以/etc/hosts.allow进行优先级比对,该rule符合就给予放行

再以/etc/hosts.deny比对,rule符合就给予抵挡

若没有被这两个文件内的rule匹配到,最终给予放行

[root@wrapper ~]# chkconfig telnet on


启动telnet服务进行测试



定义10.33.100.200可以允许访问telnet服务并记录日志追加到/var/log/tcpwrapper

第一字段为服务启动的文件名,可使用以下命令查看

(由于tcpd是服务器程序的外挂,其主要是通过分析服务器程序来管理,因此与启动的端口无关,只与程序的名称有关)



从10.33.100.200测试登录



查看是否有日志记录



定义不允许10.33.100.200访问telnet服务并记录日志(注:TCP Wrapper理论上不支持10.33.0.0.16这种通过bit数值来定义的网络,之支持netmask的地址显示方式即10.33.0.0/255.255.0.0)



spawn action可以利用后续的shell来进行额外的工作,且具有变量功能,主要的变量内容为:%h(client hostname),%a(address),%c(client information)

%s(service information)可通过以下命令查看更多宏定义

[root@wrapper ~]# man 5 hosts_access


测试登录失败查看日志记录



解析superdaemon的配置文件

[root@wrapper xinetd.d]# vim /etc/xinetd.conf




disabled      = [yes|no]启动与否(chkconfig on|off修改的就是该值)
server        = /usr/bin/rsync指定服务的启动程序文件名
server_args   = --daemon程序参数(例如rsync需要加入--daemon)
instances     = 50设置服务最大连接数
per_source    = 10设定同一IP的最大并发连接数
only_from     = 10.33.0.0/16  只允许该网段访问
no_access     = 10.33.1.143   不允许该IP访问
bind          = 10.33.1.117 服务接口锁定
access_time   = 12:00-15:00 设定可访问时间
cps           = 50 10
第一个数字为每秒最多能够接受的新连接请求,第二个数字为超过第一个数字的限制后暂时关闭该服务的秒数
cps设置值是为了避免短时间内大量的连接请求而导致系统出现忙碌状态


更详细的attribute可查看帮助文件

[root@wrapper ~]# man xinetd.conf


更多的服务参数文件都在/etc/xinetd.d/目录下

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息