TCP_Wrappers防火墙配置

本文详细介绍了如何使用TCP_Wrappers实现防火墙功能,包括查看服务是否使用libwrapped库,配置允许和拒绝策略。在RHEL7中,TCP_Wrappers防火墙通过/etc/hosts.allow和/etc/hosts.deny文件控制访问,但RHEL8已不再支持此方式。配置完成后,策略会立即生效,无需重启。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系统声明: RHEL7

防火墙优先级

  1. iptables优先级最高,是内核级别的
  2. firewalld 防火墙策略次之
  3. tcp_Wrappers防火墙优先级最低
  4. hosts.allowhosts.deny属于tcp_Wrappers防火墙的配置文件

TCP_Wrappers防火墙策略配置文件–从应用层配置防火墙策略

TCP_Wrappers防火墙服务的防火墙策略由两个控制列表文件所控制

  • /etc/hosts.allow允许文件,从这个文件中匹配到策略,就会放行
  • /etc/hosts.deny拒绝文件,从这个文件中匹配到策略,就会拒绝
    TCP_Wrappers防火墙服务可以控制外部IP对本机服务的访问

/etc/hosts.allow/etc/hosts.deny 只对调用了 tcp_wrappers 的程序才起作用,即该服务应用了libwrapped库文件。


1.查看程序/服务是否应用了libwrapped库文件

# 查看应用程序是否支持wrapper
# 用strings程序然后grep字符串hosts_access
strings /usr/sbin/sshd | grep hosts_access

在这里插入图片描述

# 查看某服务(如ssh)是否应用了libwrapped库文件的方法
ldd /usr/sbin/sshd |grep libwrap.so.0
## 没有显示,表示此服务器上安装的SSH没有应用libwrapped库文件,也就不能用tcp_Wrappers防火墙控制访问策略。

在这里插入图片描述


server_name(服务名)

service_name 『必需』i跟你的 xinetd 或者是 /etc/rc.d/init.d/* 里面的程序名称要相同。

service_name就是调用了libwrapped库文件的应用程序。


2.配置允许策略–示例

/etc/hosts.allow控制可以访问本机的IP地址,/etc/hosts.deny控制禁止访问本机的IP。

下面是一个/etc/hosts.allow的示例:

服务进程名主机列表(IP/网段)当规则匹配时可选的命令操作
ALL:ALL
sshd:127.0.0.1:allow(可以省略)
smdb:192.168.10.0/24
sshd:192.168.0. (最末位不写,表示一个网段)
telnetd,sshd:192.168.6. , 192.168.7.:allow
# 允许所有IP来源访问所有服务
ALL:ALL

允许127.0.0.1访问本地所有服务

#允许本机访问本机所有服务进程
ALL:127.0.0.1

允许指定IP访问指定服务

#允许192.168.0.网段的IP访问smbd服务
smbd:192.168.0.0/255.255.255.0

# 或
sshd:192.168.0.  # 最末尾不写,表示一个网段

## 192.168.6.100代表一个主机,192.168.6.代表整个网段。同理,ringkee.com代表一台主机,.ringkee.com代表ringkee.com域内的所有主机。

3.配置拒绝策略-示例

/etc/hosts.deny控制禁止访问本机的IP。

注意看,下方的示例总能:sshd:all:deny表示拒绝了所有sshd远程连接。:deny可以省略。

# 拒绝所有IP访问sshd
sshd:all:deny

# 或
sshd:ALL

拒绝所有IP连接所有服务–白名单模式

# 拒绝所有IP连接所有服务
ALL:ALL

TCP_Wrappers防火墙配置完不需要重启,策略会立即生效

所以:当hosts.allowhost.deny冲突时,以/etc/hosts.allow设置为准

Linux 系统会

  1. 先检查/etc/hosts.deny拒绝规则,
  2. 再检查/etc/hosts.allow允许规则,如果有冲突 按/etc/hosts.allow允许规则处理

RHEL8没有hosts.allow和hosts.deny

RHEL8已经没有这两个文件,即使创建它也不起作用
RHEL8的程序已经不再调用tcp_wrappers,而TCP_Wrappers防火墙是基于tcp_wrappers的,应用不调用tcp_wrappersTCP_Wrappers防火墙就无法管理该程序。

在这里插入图片描述

查看RHEL8的sshd服务是否使用libwrapped库文件

# 查看Centos7的sshd服务是否使用libwrapped库文件
ldd /usr/sbin/sshd | grep libwrap.so

在这里插入图片描述

# 查看RHEL8的sshd服务是否使用libwrapped库文件
ldd /usr/sbin/sshd | grep libwrap.so

# 不调用tcp_wrappers,TCP_Wrappers防火墙就无法管理该程序

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

教Linux的李老师

赞赏是第一生产力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值