TCP_Wrappers安全机制

2017-09-13  本文已影响0人  尛尛大尹

1.TCP_Wrappers介绍

(1)工作在第四层(传输层)的TCP协议
(2)对有状态连接的特定服务进行安全检测并实现访问控制
(3)以库文件形式实现
(4)某进程是否接受libwrap的控制取决于发起此进程的程序在编译时是否针对libwrap进行编译的
(5)判断服务程序是否能够由tcp_wrapper进行访问控制的方法:


Paste_Image.png

如果库文件中有libwrap.so文件,就可以实现访问控制

2.TCP_Wrappers的使用

配置文件:/etc/hosts.allow, /etc/hosts.deny

 帮助参考:man 5 hosts_access,man 5 hosts_options
 检查顺序:hosts.allow,hosts.deny(默认允许)
注意:一旦前面规则匹配,直接生效,将不再继续,若果allow文件条件不匹配,则到deny文件里找条件,如果两者都没有,则默认允许
 基本语法:

Paste_Image.png
(1) Daemon_list@host格式
 单个应用程序的二进制文件名,而非服务名,例如vsftpd
 以逗号或空格分隔的应用程序文件名列表,如:sshd,vsftpd
 ALL表示所有接受tcp_wrapper控制的服务程序
 主机有多个IP,可用@hostIP来实现控制 
   如:in.telnetd@192.168.0.254
(2).客户端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

eg:
 示例:只允许192.168.1.0/24的主机访问sshd
/etc/hosts.allow
sshd:192.168.1.0/24
/etc/hosts.deny
sshd :ALL
 示例:只允许192.168.1.0/24的主机访问telnet和vsftpd服务
/etc/hosts.allow
vsftpd,in.telnetd: 192.168.1.0/24
/etc/host.deny
vsftpd,in.telnetd: ALL

(3)[:options]选项:

帮助:man 5 hosts_options

deny 主要用在/etc/hosts.allow定义“拒绝”规则
如:vsftpd: 172.16. 0.1:deny

allow 主要用在/etc/hosts.deny定义“允许”规则
如:vsftpd:172.16.0.1:allow

spawn 启动一个外部程序完成执行的操作

twist 实际动作是拒绝访问,使用指定的操作替换当前服务,标准I/O和ERROR发送到客户端,默认至/dev/null
vsftpd: 172.16.0.1 :twist /bin/echo “connection prohibited”
即使写在hosts.allow文件里面也是拒绝的

测试工具:

/./tcpdmatch [-d] daemon[@host] client
-d 测试当前目录下的hosts.allow和hosts.deny

示例
sshd: ALL :spawn echo "$(date +%%F) login attempt from %c to %s,%d" >>/var/log/sshd.log

 说明:
 在/etc/hosts.allow中添加,允许登录,并记录日志
 在/etc/hosts.deny中添加,拒绝登录,并记录日志
 %c 客户端信息
 %s 服务器端信息
 %d 服务名
 %p 守护进程的PID
%%或者\%转义,因为%有特殊含义

练习
 仅开放本机两个IP地址中的一个地址172.16.0.8上绑定的sshd和vsftpd服务给172.16.0.0/16网络中除了172.16.0.0/24网络中的主机之外的所有主机,但允许172.16.0.200访问,每次的用户访问都要记录于日志文件中
vim /etc/hosts.allow
sshd,vsftpd@172.16.0.8 : 172.16.0.0/16 EXPECT 172.16.0.0/24 EXPECT 172.16.0.200
有一个我们需要注意:
vim /etc/hosts_allow
yin ALL=(ALL) /bin/cat /var/log/messages*,!/bin/cat /var/log/mesages* *
如果没有!/bin/cat /var/log/mesages* *,(*之间有空格)那么可以的打开其他的文件,所以加上只能打开/var/log/mesages* 下的文件

上一篇 下一篇

猜你喜欢

热点阅读