2、TCP Wrappers(简单防火墙)

TCP Wrappers 简介

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

查看对应服务命令所在位置
	[root@test1 ~]# which sshd
	/usr/sbin/sshd
查看指定命令执行时是否调用 libwrap.so 文件
	[root@test1 ~]# ldd /usr/sbin/sshd | grep libwrap.so
		libwrap.so.0 => /lib64/libwrap.so.0 (0x00007fbdd494d000)

TCP Wrappers 工作原理

以 ssh 为例,每当 ssh 的连接请求时,先读取系统管理员所设置的访问控制文件,符合要求,则会把这次连接原封不动的转给 ssh 进程,由 ssh 完成后续工作,如果这次连接发起的 IP 不符合访问控制文件中的设置,则会中断连接请求。拒绝 ssh 服务。
在这里插入图片描述

  • 优先查看 hosts.allow 文件,匹配访问控制策略
  • 允许个别拒绝所有:hosts.allow 文件添加单个允许的策略,hosts.deny 文件添加 all
  • 拒绝个别允许所有:hosts.deny 文件添加单个拒绝的策略,hosts.allow 文件为空

TCP Wrappers 的使用

TCP_Wrappers 的使用主要依靠两个配置文件 /etc/hosts/allow,/etc/hosts/deny;以此实现访问控制,默认情况下,这两个文件什么都没有添加,所以没有限制。
配置文件编写规则:
service_list@host:client_list
- service_list:是服务(程序)的列表,可以是多个,使用 “ , ” 隔开
- @host:设置允许或禁止他人从自己的哪个网口进入,这一项不写就代表全部
- client_list:是访问者的地址,如果需要控制的用户较多,可以使用空格或 “ , ” 隔开

格式如下:
- 基于IP地址:192.168.117.130 192.168.117.131
- 基于主机名:www.baidu.com www.aliyun.com
- 基于网络/掩码:192.168.0.0/255.255.255.0
- 内置 ACL:ALL(所有主机)、LOCAL(本地主机)

实验案例

准备好两台 Linux 操作系统的主机,配置好相关网络参数,实现可以正常通信。

主机名服务IP
test~1ssh 客户端192.168.117.130
test~2ssh 服务端192.168.117.131

1、拒绝 192.168.117.130 使用 ssh 远程连接本机

#test2 添加拒绝策略
	[root@test2 ~]# vim /etc/hosts.deny 
	sshd:192.168.117.130
#test1 ssh 远程连接 test2 失败
	[root@test1 ~]# ssh root@192.168.117.131
	catssh_exchange_identification: read: Connection reset by peer

2、拒绝某一网段使用 ssh 远程连接本地

#test2 添加拒绝策略
	[root@test2 ~]# vim /etc/hosts.deny 
	sshd:192.168.117.
#test1 ssh 远程连接 test2 失败
	[root@test1 ~]# ssh root@192.168.117.131
	ssh_exchange_identification: read: Connection reset by peer

3、只允许192.168.117.130 使用 ssh 远程连接本机

#test2 添加允许策略
	[root@test2 ~]# vim /etc/hosts.allow 
	sshd:192.168.117.130
#test1 ssh 远程连接 test2 成功
	[root@test1 ~]# ssh root@192.168.117.131
	root@192.168.117.131's password: 
	# test2 root 密码:123
	Last login: Mon Oct 12 22:04:30 2020 from 192.168.117.130
	[root@test2 ~]# 
TCP Wrappers,也称为hosts.allow和hosts.deny,是一种网络安全工具,它限制了特定IP地址对服务的访问。如果你想要将TCP Wrappers镜像源添加到你的系统上,特别是在Docker环境中,通常不需要直接添加镜像源,因为TCP Wrappers本身不是作为容器镜像发布的。然而,如果你想在运行的Docker容器中使用TCP Wrappers,你可以这样做: 1. **安装基础依赖**: 对于Linux主机,你首先需要安装`tcpd`包,它是TCP Wrappers的主要实现。对于Debian系列的系统如Ubuntu,可以使用以下命令: ``` sudo apt-get update sudo apt-get install tcpd ``` 或者使用其他包管理器替换apt-get。 2. **配置hosts.allow或hosts.deny文件**: TCP Wrappers的配置文件通常位于`/etc/tcpd/`目录下,比如`/etc/tcpd/allow`(允许列表)和`/etc/tcpd/deny`(禁止列表)。根据你的安全策略编辑这些文件。 3. **在Docker容器内使用**: 如果你想在容器内部使用TCP Wrappers,你需要确保它们的路径对容器可见,并且容器有足够的权限去读取和修改这些文件。你可以在Dockerfile中通过VOLUME挂载host目录到容器中: ```dockerfile RUN mkdir -p /etc/tcpd VOLUME /etc/tcpd ``` 4. **启动容器时挂载配置**: 当你构建并启动容器时,使用`-v`选项来指定主机上的TCP Wrappers目录: ``` docker run -it --rm -v /path/on/host:/etc/tcpd my-container ``` 请注意,这种方法适用于你在容器内手动控制并应用TCP Wrappers规则的情况。如果你需要自动化或者更复杂的网络策略,你可能会考虑使用更专业的防火墙工具或Docker的安全特性。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值