TCP_Wrappers

TCP_Wrappers 介绍

	作者:Wieste Venema ,IBM ,Google
	
	工作在第四层(传输层)的TCP 协议
	
	对有状态连接的特定服务进行安全检测并实现访问控制
	
	以库文件形式实现
	
	某进程是否接受libwrap的控制取决于发起此进程的程序在编译时是否针对libwrap 进行编译的
	
	判断服务程序是否能够由tcp_wrapper进行访问控制的方法:
		ldd /PATH/TO/PROGRAM|grep libwrap.so
		strings PATH/TO/PROGRAM|grep libwrap.so

TCP_Wrappers 的配置

	配置文件:/etc/hosts.allow, /etc/hosts.deny
	
	帮助参考:man 5 hosts_access ,man 5 hosts_options
	
	检查顺序:hosts.allow ,hosts.deny,( 默认 允许)
		注意:一旦前面规则匹配,直接生效,将不再继续
	
	基本语法:
		daemon_list@host: client_list [ :options :option… ]
	
	daemon_list@host 格式
		单个应用程序的二进制文件名,而非服务名 , 例如vsftpd
		以逗号或空格分隔的应用程序文件名列表 ,如:sshd,vsftpd
		ALL 表示所有接受tcp_wrapper 控制的服务程序
		主机有多个IP ,可用@hostIP 来实现控制
		如:in.telnetd@192.168.0.254
	
	客户端Client_list 格式
		以逗号或空格分隔的客户端列表
		基于IP地址:192.168.10.1  192.168.1.
		基于主机名:www.magedu.com .magedu.com 较少用
		基于网络/掩码:192.168.0.0/255.255.255.0
		基于net/prefixlen: 192.168.1.0/24 (CentOS7)
		基于网络组(NIS域):@mynetwork
		内置ACL :ALL ,LOCAL ,KNOWN ,UNKNOWN, PARANOID
	
	EXCEPT(除了)用法 :
		示例: vsftpd: 172.16. EXCEPT 172.16.100.0/24 EXCEPT  172.16.100.1
		
	示例
		只允许192.168.1.0/24 的主机访问sshd
			/etc/hosts.allow
				sshd: 192.168.1.
			/etc/hosts.deny
				sshd :ALL
		只允许192.168.1.0/24 的主机访问telnet 和vsftpd服务
			/etc/hosts.allow
				vsftpd,in.telnetd: 192.168.1.
			/etc/host.deny
				vsftpd,in.telnetd: ALL

TCP_Wrappers 的使用

	[:options] 选项:
	帮助:man 5 hosts_options
		deny:主要用在/etc/hosts.allow 定义“拒绝”规则
			如:vsftpd: 172.16. :deny
		allow:主要用在/etc/hosts.deny 定义 “允许” 规则
			如:vsftpd:172.16. :allow
		spawn:启动一个外部程序完成执行的操作
		twist:实际动作是拒绝访问, 使用指定的操作替换当前服务, 标准I/O 和ERROR 发送到客户端, 默认至/dev/null
	
	测试工具:
		tcpdmatch [-d] daemon[@host] client
		 -d  测试当前目录下的hosts.allow 和hosts.deny
原文地址:https://www.cnblogs.com/shenxm/p/8451513.html