RHCE(十)Tcp_wrappers详解

介绍

TCP_Wrappers是一个工作在第四层(传输层)的安全工具,对有状态连接的特定服务进行安全检测并实现访问控制,凡是包含有libwrap.so库文件的程序就可以受TCP_Wrappers的安全控制。它的主要功能就是控制谁可以访问,常见的程序有rpcbind、vsftpd、sshd,telnet。

功能

TCP Wrappers 提供防止主机名和主机地址欺骗的保护。欺骗是一种伪装成有效用户或主机以获得对系统进行未经授权的访问的方法。
TCPWrappers使用访问控制列表 (ACL) 来防止欺骗。ACL 是 /etc/hosts.allow 和 /etc/hosts.deny 文件中的系统列表。在配置为验证主机名到 IP 地址映射,以及拒绝使用 IP 源路由的软件包时,TCP Wrappers 提供某些防止 IP 欺骗的保护。

工作原理

TCP_Wrappers有一个TCP的守护进程叫作tcpd。以ssh为例,每当有ssh的连接请求时,tcpd即会截获请求,先读取系统管理员所设置的访问控制文件,符合要求,则会把这次连接原封不动的转给真正的ssh进程,由ssh完成后续工作;如果这次连接发起的ip不符合访问控制文件中的设置,则会中断连接请求,拒绝提供ssh服务。

一个图就很容易理解了:

注意:
优先允许(允许文件里写了,拒绝文件直接不管)
默认允许(允许和拒绝文件都没写,就是允许)

TCP wrapper的使用

TCP wrapper作为客户服务器模型的一部分,依赖/etc/hosts.allow和/etc/hosts.deny文件作为简单访问控制语言的基础,可用于任何包含了libwrap.so的daemon程序使用。访问控制语言限定的规则是:基于客户端地址和客户端试图访问的daemon程序,选择性地允许客户端访问服务器在本地系统上的daemon程序。

hosts.allow和hosts.deny文件中的每行代码都遵循以下格式:

daemon_list  client_list  [command]
服务程序名称   访问者的地址	    命令
  • daemon_list是一个或多个服务器daemon程序(如rpcbind、vsftpd、或sshd)的逗号分隔列表。
  • client_list 是一个或者多个客户端的逗号分隔列表格式如下:
    基于IP地址: 192.168.10.1 192.168.1.1
    基于主机名: www.magedu.com .magedu.com 较少用
    基于网络/掩码: 192.168.0.0/255.255.255.0
  • 命令是可选的,当client_list的客户端试图访问从daemon_list访问服务器daemon程序时指代被执行的命令,EXCEPT——反向

宏定义

内置ACL: ALL, LOCAL, KNOWN, UNKNOWN,PARANOID

ALL:所有主机 
LOCAL:本地主机 
KNOWN:主机名可解析成ip的 
UNKNOWN:主机名无法解析成IP的 
PARANOID:正向解析与反向解析不对应的主机

两个控制文件

/etc/hosts.allow 定义允许的访问
/etc/hosts.deny 定义拒绝的访问

扫描二维码关注公众号,回复: 10941245 查看本文章

特点:配置改变,立即生效

tcp_wrappers的访问控制判断顺序
/etc/hosts.allow——>/etc/hosts.deny——>允许所有

vim /etc/hosts.deny
sshd:172.16.80.0/24 EXCEPT 172.16.80.253
拒绝172.16.80.0/24网段远程登录,除了172.26.80.254(可以远程登录)
vim /etc/hosts.deny
sshd:192.168.40.132 EXCEPT 192.168.40.132
既拒绝又允许,优先允许,所以192.168.40.132主机可以使用ssh命令远程登录本机
发布了97 篇原创文章 · 获赞 99 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_43624033/article/details/105441872