Tcpwrappers概述
Tcpwrappers: Transmission Control Protocol (TCP) Wrappers 为由 inetd 生成的服务提供了增强的安全性。TCP Wrappers 是一种对使用 /etc/inetd.sec 的替换方法。TCP Wrappers 提供防止主机名和主机地址欺骗的保护。欺骗是一种伪装成有效用户或主机以获得对系统进行未经授权的访问的方法。
TCPWrappers使用访问控制列表 (ACL) 来防止欺骗。ACL 是 /etc/hosts.allow 和 /etc/hosts.deny 文件中的系统列表。在配置为验证主机名到 IP 地址映射,以及拒绝使用 IP 源路由的软件包时,TCP Wrappers 提供某些防止 IP 欺骗的保护。
Tcpwrappers工作原理 :在服务器向外提供的tcp服务商包装一层安全检测机制。外来连接请求首先通过这个安全检测,获得安全认证后才可被系统服务接受。
TCP wrapper作为客户服务器模型的一部分,依赖/etc/hosts.allow和/etc/hosts.deny文件作为简单访问控制语言的基础,可用于任何包含了libwrap.so的daemon程序使用。访问控制语言限定的规则是:基于客户端地址和客户端试图访问的daemon程序,选择性地允许客户端访问服务器在本地系统上的daemon程序。
注:TCPWrappers工作在第四层(传输层)。
操作实验
访问控制策略配置文件
/etc/hosts.allow
/etc/hosts.deny
检查顺序:先检查 hosts.allow若不符合,再使用housts.deny
对白名单进行编辑
允许 134进行远程登录
[root@zhuji /]# vim /etc/hosts.allow
sshd:20.0.0.134 #手敲
验证:
[root@localhost ~]# ssh kh1@20.0.0.132
The authenticity of host '20.0.0.132 (20.0.0.132)' can't be established.
ECDSA key fingerprint is SHA256:k7SljIMiRH+sv0oL3PytOMZOq94U5sbzRkcCXLBxr2M.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '20.0.0.132' (ECDSA) to the list of known hosts.
kh1@20.0.0.132's password:
Last failed login: Sat Jul 11 23:55:45 CST 2020 from 20.0.0.134 on ssh:notty
There was 1 failed login attempt since the last successful login.
Last login: Sat Jul 11 19:20:10 2020
对黑名单进行编辑
禁止 135 进行远程登录
[root@zhuji /]# vim /etc/hosts.deny
sshd:20.0.0.135
验证:
[root@localhost /]# ssh kh1@20.0.0.132
ssh_exchange_identification: read: Connection reset by peer
其他
若需要对多个IP段进行白名单或者黑名单设置,各IP段可以用,隔开
允许使用通配符
若配置网络段 需这样敲:ssh:192.168.10. 最后一段不需要敲