linux firewalld一

防火墙介绍

netfilter是规则表的容器,iptables是防火墙的核心模块,负责维护防火墙的规则表,iptables和firewalld都是Linux上管理防火墙规则的工具。
在这里插入图片描述

防火墙管理工具切换

在rhel8中默认使用的是firewalld
1.firewalld ----->iptables
yum install iptables-services -y
systemctl stop firewalld
systemctl disable firewalld 
systemctl mask firewalld		    #冻结firewalld(冻结后无法开启firewalld)
systemctl enable --now iptables
2.iptales -----> fiewalld 
systemctl stop iptables
systemctl disable iptables
systemctl mask iptables
systemctl enable --now firewalld

(1)在克隆虚拟机1中安装iptables
在这里插入图片描述
(2)进行切换
在这里插入图片描述

iptables的使用

/etc/sysconfig/iptables			#iptables策略记录文件(每次重启服务后都会读取该文件)
永久保存策略必须修改上述文件
iptales-save > /etc/sysconfig/iptables
或
service iptables save

(1)清除iptables所有规则后重启服务发现规则又出现了
-L:列出所有规则
-F:清除所有规则
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)将iptables信息导入/etc/sysconfig/iptables文件
我们自己写文件还是比较困难的,因此我们选择导入的方式。
在这里插入图片描述
(3)重启服务进行测试
发现生效了
在这里插入图片描述

防火墙默认策略

在这里插入图片描述
1.默认策略中的5条链
input:输入
output:输出
forward:转发
postrouting:路由之后
prerouting:路由之前
2.默认策略中的3张表
filter:经过本机内核的数据(input,output,forward)
nat:不经过内核的数据(postrouting,prerouting ,input , output)
mangle:当filter和nat表不够用时使用(input,output,forward,postrouting,prerouting)
3.iptables命令

iptables
		 -t 				#指定表名称
		 -n 				#不做解析(不将主机名转换成ip)
		 -L 				#查看 
		 -A 				#添加策略
		 -p 				#协议
			--dport 		#目的地端口
		 -s 				#来源
		 -j 				#动作
		 ACCEPT 			#允许
		 DROP 				#丢弃
		 REJECT 			#拒绝
		 SNAT 				#源地址转换
		 DNAT 				#目的地地址转换
		 -N 				#新建链 
		 -E 				#更改链名称
		 -X 				#删除链 
		 -D 				#删除规则
		 -I 				#插入规则
		 -R 				#更改规则
		 -P 				#更改默认规则

命令展示:
(1)-t、-L、-n
在这里插入图片描述
(2)-A、-j、REJECT
先建立一个监控
在这里插入图片描述
在这里插入图片描述
在克隆虚拟机2(192.168.9.101)中连接克隆虚拟机1(192.168.9.100)失败
在这里插入图片描述
(3)-D
在这里插入图片描述
发现可以在虚拟机2中正常连接虚拟机1
在这里插入图片描述
(4)-A、-j、DROP
REJECT是直接拒绝,远程的主机不会再发送数据,而DROP会将数据包丢弃,远程主机会一直尝试发送数据而卡在那儿。
在这里插入图片描述
虚拟机2会卡在那儿
在这里插入图片描述
(5)-s、ACCEPT
发现ACCEPT这条规则加到了第二条
在这里插入图片描述
在虚拟机2中ping虚拟机1失败,发现刚才加上去的ACCEPT这条命令不生效。系统会从上到下读取防火墙策略,当资源和策略达到匹配时就执行这个策略,不会再向下匹配(即使后面有匹配的也不会读了)。
在这里插入图片描述
(6)-I插入
INPUT后面可以跟数字,默认是第一条。
在这里插入图片描述
在虚拟机2中ping虚拟机1,发现可以ping通。
在这里插入图片描述
(7)-p、–dport
只允许虚拟机2连接22端口(ssh)
在这里插入图片描述
发现虚拟机2可以ssh连接虚拟机1,但是不能ping通虚拟机1。
在这里插入图片描述
(8)-R
注意使用-R是必须在INPUT后面加数字,否则会报错。在这里插入图片描述在这里插入图片描述
(9)-P(只能跟DROP和RECEPT)
先来看一下没有策略时会怎么样,没有策略时会执行默认策略,默认策略是ACCEPT。
在这里插入图片描述
虚拟机2可以随意连接虚拟机1
在这里插入图片描述
更改默认规则为DROP后
在这里插入图片描述
发现虚拟机2无法连接虚拟机1
在这里插入图片描述
(10)-N、-E、-X
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4.数据包状态
RELATED:建立过连接的
ESTABLISHED:正在连接的
NEW:建立新的连接
实验步骤:
如果我们只允许虚拟机2使用虚拟机1的dns和apache服务该怎么配置呢?
首先应该允许使用自己的回环接口lo,然后设定指定端口允许,最后拒绝所有数据包。
这样出现一个问题,当防火墙策略非常多的时候,由于它会一条条匹配,这样就造成了非常大的网络延迟,我们应该记录数据包的状态,只检测新建立连接的数据包,让已经建立过和正在建立连接的数据包直接通过。
-m:使用扩展
–state:状态
-i:指定入口网卡
! -s 192.168.9.101:除了192.168.9.101以外的主机
在这里插入图片描述
在虚拟机2中测试,发现无法ping通(使用ICMP协议),无法使用ssh(使用22端口)。
在这里插入图片描述
而在虚拟机3(192.168.9.7)中发现依然不能ping通虚拟机1,但是可以使用ssh连接虚拟机1。
在这里插入图片描述
5.nat表中的dnat和snat
虚拟机1:双网卡主机
ip1:192.168.9.100
ip2:172.25.254.2
虚拟机2:192网段
ip:192.168.9.101
gateway:192.168.9.100(虚拟机1ip1)
虚拟机3:172网段
ip:172.25.254.101
gateway:172.25.254.2(虚拟机1ip2)
目的:虚拟机3连接虚拟机2
实验步骤:
(1)清空虚拟机1防火墙策略
在这里插入图片描述
(2)在虚拟机3中可以ping通虚拟机1,无法ping通虚拟机2。
在这里插入图片描述
(3)查看虚拟机1的内核路由功能是否开启
发现该功能开启
在这里插入图片描述
(4)编写虚拟机1的nat表
prerouting指数据进入网卡经过路由之前,postrouting指数据经过路由后从网卡出去之前。
-o:从虚拟机1ens160网卡出去的数据
–to-source:都伪装成虚拟机1ens160网卡的ip
在这里插入图片描述
发现虚拟机3可以ping通虚拟机2,也可以ssh连接虚拟机2。
在这里插入图片描述
我们在虚拟机2中使用 w -i (w命令查看登录者的信息及他们的行为,-i显示ip地址而不显示主机名)命令,发现虽然是虚拟机3ssh连接的虚拟机2,显示的却是虚拟机1在连接虚拟机2。
在这里插入图片描述
(5)在虚拟机2中ping虚拟机3
发现ping不通
在这里插入图片描述
(6)修改虚拟机1iptables
从虚拟机1ens160网卡进去的数据都伪装成172.25.254.101。
在这里插入图片描述
(7)在虚拟机2中测试
连接虚拟机1时发现连接到的是虚拟机3(172.25.254.101)
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值