Linux下防火墙管理之firewalld

1.firewalld的开启

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

在这里插入图片描述

2.关于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

在这里插入图片描述
我们指定一个域以后,它很多东西就在拒绝或允许范围之内,就像windows一样,windows第一次接入一个陌生的网络里面,会弹出一个对话框,这个对话框会询问你接入的这个网络类型是家庭网络、公共网络、工作网络、不可信网络中的哪一个,然后你选择哪一个,Windows火墙会做相应的设定
注意:firewalld默认域是public

3.关于firewalld的设定原理及数据存储

/etc/firewalld ##火墙配置目录 
/usr/lib/firewalld ##火墙模块目录

更改默认域public为block
在这里插入图片描述
测试效果:更改默认域public为block之前,可以ping通,更改后ping不通
在这里插入图片描述
更改回默认域为publc需要去更改火墙配置文件中的信息

vim /etc/firewalld/firewalld.conf
DefaultZone=public

在这里插入图片描述
在这里插入图片描述
需求:在火墙中添加自定义服务westos
实验:

vim /etc/firewalld/zones/public.xml	## 编辑此文件
firewall-cmd --reload	## 设定完成后需要加载此文件中的内容

在这里插入图片描述
在这里插入图片描述
westos服务加到火墙配置目录文件后,需要对westos服务进行描述,在火墙模块目录文件中进行服务描述
将火墙模块目录中的服务目录下的文件复制出一份westos.xml类型文件(注意文件属性,文件属性没有什么特殊的地方,直接复制就可以)
更改文件中信息内容为westos服务信息
保存退出,westos服务就加进去了
最后需要重启火墙,让火墙可以识别到加进来的westos服务

.xml信息封装方式:主要用来对数据进行封装的,就是把数据封装成一个文件
firewalld火墙管理方式:它把所有的东西都封装好,你只需要用一个名字来代替所有的数据的一个指定,就会自动的给你做这个事情,这样就变得很简单了,但是对于开发者来说就变得很麻烦
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4. firewalld的基本管理命令

firewall-cmd --state ##查看火墙状态
firewall-cmd --get-default-zone ##查看默认域
firewall-cmd --list-all ##查看默认域中的火墙策略
firewall-cmd --list-all --zone=work ##查看指定域的火墙策略
firewall-cmd --get-active-zones ##查看当前火墙中生效的域

在这里插入图片描述

firewall-cmd --set-default-zone=trusted ##设定默认域

在这里插入图片描述

firewall-cmd --get-services ##查看所有可以设定的服务

在这里插入图片描述

firewall-cmd --permanent --remove-service=samba ##移除服务
firewall-cmd --reload

在这里插入图片描述

  • source来源设定
firewall-cmd --permanent --add-source=172.25.254.0/24 --zone=block ##指定数据来源访问指定域
firewall-cmd --reload 

在这里插入图片描述
测试:
7主机192.168.1.10没有做任何设定,它走的是默认的public域,可以ping通
test主机172.25.254.21设定它访问的域是block,所以它ping不通
在这里插入图片描述
在这里插入图片描述

firewall-cmd --permanent --remove-source=172.25.254.0/24 --zone=block ##删除指定域中的数据来源

在这里插入图片描述
在这里插入图片描述

需求:想让某一个接口走某一个域,把一个接口设定到block域上面,把一个接口设定到public域上面
实验:
当访问ens160接口时它走public域,当访问ens224接口时走的是block域,用来将两块网卡分开控制
ens160:192.168.1.11
ens224:172.25.254.11
在这里插入图片描述

firewall-cmd --permanent --remove-interface=ens224 --zone=public ##删除指定域的网络接口
firewall-cmd --permanent --add-interface=ens224 --zone=block ##添加指定域的网络接口

在这里插入图片描述
在这里插入图片描述
测试:
test主机172.25.254.21访问172.25.254.11网络接口时走的是block域,所以ping不通
7主机192.168.1.10访问192.168.1.11网络接口时走的是public域,所以能够ping通

在这里插入图片描述
在这里插入图片描述

firewall-cmd --permanent --change-interface=ens224 --zone=public ##更改网络接口到指定域

将ens224网络接口更改回public域后,再去访问,可以ping通
在这里插入图片描述
在这里插入图片描述

5. 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	
## ipv4表示策略,filter表访问本机中的数据,1表示filter的第几条,-s 表这个网段的数据来源可以访问,22端口被访问

此实验是在RedhatLinux7系统中做的
为了让效果更加真实,在火墙服务允许列表中移除ssh服务
在这里插入图片描述
设定172.25.254.21主机可以通过22端口来访问我本机
在这里插入图片描述
测试:
test主机172.25.254.21,可以连接我本机
8主机192.168.1.11,不能连接我本机
和设定效果一致

在这里插入图片描述
在这里插入图片描述

删除设定的高级策略
在这里插入图片描述
因为火墙服务允许列表中没有ssh服务,所以其它主机都不能连接我本机
在这里插入图片描述

6.firewalld中的NAT

在火墙服务允许列表中添加ssh服务
在这里插入图片描述
此实验在RedhatLinux8系统中做
SNAT(源ip地址转换)

firewall-cmd --permanent --add-masquerade	##开启ip地址伪装功能
firewall-cmd --reload 

在这里插入图片描述
测试:
test主机172.25.254.21能够连接192.168.1.10主机
192.168.1.10主机查看连接他的是192.168.1.11这台主机

在这里插入图片描述
DNAT(目的地ip地址转换)

firewall-cmd --permanent --add-forward-port=port=22:proto=tcp:toaddr=172.25.254.21
firewall-cmd --reload

策略添加后,可以看到火墙默认域里写有该策略的协议
在这里插入图片描述
测试:
7主机去连接192.168.1.11主机时,192.168.1.11主机让它转到内部主机172.25.254.21上
test主机172.25.254.21可以看到连接它的是它主机上的网关ip172.25.254.11

在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值