IT源码网

TCP Wrapper&xinetd讲解

itxm 2021年05月16日 程序员 209 0

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/目录下
这里写图片描述


发布评论
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

httpd-YUM安装配置讲解
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。