linux firewalld二

firewalld的开启

systemctl stop iptables 
systemctl disable iptables
systemctl mask iptables 
systemctl unmask firewalld
systemctl enable --now firewalld

为什么要使用mask呢?iptables可能是其他服务的依赖性,如果其他服务需要开启iptables时,iptables也会开启。
在这里插入图片描述
补充: 在rehl7中可以使用图形化工具firewall-config进行配置,而rehl8中没有这个工具,它把这个工具集成到了cockpit中,但是在cockpit中只能进行简单的设置。
在这里插入图片描述
在rehl8中安装cockpit
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

firewalld的域

在这里插入图片描述
trusted:接受所有的网络连接
home:用于家庭网络,允许接受ssh、mdns、ipp-client samba-client、dhcp-client
work:工作网络 ssh、ipp-client、dhcp-client
public:公共网络 ssh、dhcp-client
dmz:军级网络 ssh
block:拒绝所有
drop:丢弃,所有数据全部丢弃无任何回复
internal:内部网络 ssh、mdns、ipp-client、samba-client dhcp-client
external:ipv4网络地址伪装转发 sshd
这里注意:libvirt是安装完虚拟化才有的
实验步骤:
(1)查看虚拟机1(192.168.9.100)的默认域
默认域为public,public支持ping。
在这里插入图片描述
在这里插入图片描述
(2)在虚拟机3(172.25.254.101)中ping虚拟机1
发现可以ping通
在这里插入图片描述
(3)更改虚拟机1的默认域为block
在这里插入图片描述
(4)在虚拟机3中ping虚拟机1
发现失败
在这里插入图片描述
(5)更改虚拟机1的默认域为drop
在这里插入图片描述
(6)在虚拟机2中查看效果
在这里插入图片描述

firewalld的设定原理及数据存储

/etc/firewalld:火墙配置目录
/lib/firewalld:火墙模块目录
知识点:
1.查看/etc/firewalld/firewalld.conf文件
注意我们之前使用set-default-zone的方式,其实是修改了/etc/fiewalld/firewalld.conf主配置文件。
在这里插入图片描述
在这里插入图片描述
2.深入理解以下命令
firewall-cmd --add-service=http
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
(1)我们使用firewall-cmd --add-service=http命令
发现更改之后立即生效,但重启服务后又没有http了,这是因为这个命令只是更改缓存信息。
在这里插入图片描述
在这里插入图片描述
(2)如果要永久更改,需要修改/etc/firewalld/ zones .p ublic .xml文件中的信息,这个过程就是firewall-cmd --permanent --add-service=http命令的含义。
在这里插入图片描述
在这里插入图片描述
我们使用firewall-cmd --permanent --add-service=http之后查看效果
在这里插入图片描述
(3)firewall-cmd --reload命令就是将刚才修改好的/etc/firewalld/zones/public.xml文件重新加载
在这里插入图片描述
3.如何将自己写的服务加上去呢?
(1)要注意不能直接添加,必须新建服务的.xml文件(xml将数据封装成一个文件)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)修改/etc/firewalld/zones/public.xml文件
在这里插入图片描述
(3)重载firewall
发现服务成功添加
在这里插入图片描述

firewalld的管理命令

firewall-cmd --state								#查看火墙状态
firewall-cmd --get-active-zones 					#查看当前防火墙中生效的域
firewall-cmd --get-default-zone						#查看默认域
firewall-cmd --list-all								#查看默认域中的防火墙策略
firewall-cmd --list-all --zone=work					#查看指定域的防火墙策略
firewall-cmd --set-default-zone=trusted				#设定默认域
firewall-cmd --get-services							#查看所有可以设定的服务
firewall-cmd --permanent --remove-service=cockpit	#移除服务
firewall-cmd --reload 
firewall-cmd --permanent --add-source=172.25.254.0/24 --zone=block#指定数据来源访问指定域
firewall-cmd --permanent --remove-source=172.25.254.0/24 --zone=block#删除指定域中的数据来源
firewall-cmd --permanent --remove-interface=ens224 --zone=public#删除指定域的网络接口
firewall-cmd --permanent --add-interface=ens224 --zone=block#添加指定域的网络接口
firewall-cmd --permanent --change-interface=ens224 --zone=public#更改网络接口到指定域

命令展示:
(1)state、get-active-zones、get-default-zone、list-all、list-all --zone、set-default-zone
在这里插入图片描述
在这里插入图片描述
(2)get-services、remove-service、reload在这里插入图片描述
在这里插入图片描述
(3)add-source、remove-source
设定之前虚拟机3(172.25.254.101)可以ping通虚拟机1
在这里插入图片描述
设定虚拟机1
在这里插入图片描述
发现虚拟机3不能ping通虚拟机1
在这里插入图片描述
而虚拟机2(192.168.9.101)仍可以正常ping虚拟机1
在这里插入图片描述
现在删除指定域的数据来源
在这里插入图片描述
(4)remove-interface、add-interface、change-interface
在这里插入图片描述
在这里插入图片描述
发现在虚拟机2中可以正常ping通虚拟机1
在这里插入图片描述
在虚拟机3中无法ping通虚拟机1的172网段,因此也无法ping通虚拟机1的192网段。
在这里插入图片描述
现在将ens224移回去
在这里插入图片描述
补充: systemctl reload firewalld和firewall-cmd --reload的区别,第一个命令使用后会生成一个kill的进程,而第二个命令是firewall的内部命令,不会生成kill的进程,响应速度更快,但这两个命令的作用是一样的。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

firewalld的高级规则

firewall-cmd --direct --get-all-rules	#查看高级规则
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -s 172.25.254.0/24 -p tcp --dport 22 -j ACCEPT

实验步骤:
(1)设置之前,发现虚拟机2(192网段)可以ssh连接虚拟机1
在这里插入图片描述
(2)在虚拟机1中设置规则
注意链INPUT后必须加数字
在这里插入图片描述
(3)测试
发现虚拟机2不能ssh连接虚拟机1,而虚拟机3可以正常连接。
在这里插入图片描述
在这里插入图片描述

firewalld中的NAT

SNAT
firewall-cmd --permanent --add-masquerade
firewall-cmd --reload 
DNAT
firewall-cmd --permanent --add-forward-port=port=22:proto=tcp:toaddr=172.25.254.101
firewall-cmd --reload

实验步骤:
1.SNAT
(1)在开启masquerade之前,在虚拟机2中ping虚拟机1(172网段)无法ping通,ping虚拟机1(192网段)可以ping通。
在这里插入图片描述
在这里插入图片描述
(2)在虚拟机1中添加masquerade之后
在这里插入图片描述
(3)在虚拟机2中测试
发现在虚拟机2中可以ping通虚拟机1的172网段和192网段
在这里插入图片描述
2.DNAT
当访问我的22端口时,转发至172.25.254.101。
(1)在设置DNAT之前,在虚拟机2中连接虚拟机1,会真的连接上虚拟机1。
在这里插入图片描述
(2)在虚拟机1中设置DNAT之后
在这里插入图片描述
(3)在虚拟机2中测试
在虚拟机2中连接虚拟机1,发现实际连接上的是虚拟机3。
在这里插入图片描述
🌱

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值