linux下的火墙管理 (firewalld篇)


firewalld是在rhel7之后新加的对火墙的管理方式。
与iptables不同的是,firewalled里的大部分东西模块化集成。更偏向于“傻瓜化”,趋近于window的火墙管理方式。

firewalld的开启

将iptables的管理方式切换到firewalld的管理方式:

方法同farewelld的管理方式切换到iptables管理方式相同:

关闭iptables服务:

systemctl stop iptables.service    ##停止iptables服务
systemctl disable iptables.service  ##禁止开机自启iptables服务
systemctl mask iptables             ## 冻结iptables服务

提问:为什么要使用mask将其冻结?
##这是因为iptables可能是其他服务的依赖项,可能会随服务的启动而启动。使用mask将其冻结后,就不会再启动。

启动firewalld:

systemctl unmask firewalld.service      ##解冻firewalld服务
systemctl enable --now firewalld        ##启动firewalld并设置为开机启动

启动firewalld:

systemctl unmask firewalld.service      ##解冻firewalld服务
systemctl enable --now firewalld        ##启动firewalld并设置为开机启动

关于firewalld的域

firewall-cmd --get-active-zones 查看当前火墙中所有的域:
在这里插入图片描述

名称含义及作用
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
externalipv4网络地址伪装转发 sshd

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

火墙配置目录 :/etc/firewalld

主配置文件:/etc/firewalld/firewalld.conf
域的设定目录:/etc/firewalld/zones/
默认域puiblic的相关设定:
在这里插入图片描述
在使用firewall-cmd --add-service=xxxx方式 将服务添加进火墙的策略就是将信息写入此域的文件。
/etc/firewalld/zones/public.xml就是当前域的策略文件。
可以直接在此文件中添加策略信息:
当前策略信息:
在这里插入图片描述
则例直接在文件中添加https服务:
在这里插入图片描述
编辑完成后保存退出,并使用命令重新firewall-cmd --reload
加载火墙信息。
在这里插入图片描述
重加载成功,再次使用命令 firewall-cmd --list-all查看火墙策略:
在这里插入图片描述
添加成功!

那么问题来了,如果我们在文件里添加一个本来就没有的服务,那么会不会被添加火墙策略呢?

在文件里添加xxxxx:
在这里插入图片描述

同样的方法重加载火墙信息,并重新查看火墙策略:
在这里插入图片描述
这是问什么?
这是因为系统对类似于‘https’服务的字符串已经做过定义,对其有描述,且描述信息以xml(可扩展标记语言)的方式进行封装。
xxxxx没有在火墙策略显示的原因就是系统缺少对xxxxx的描述,无法识别。描述文件的位置为: /lib/firewalld/services里:
在这里插入图片描述
所以我要在此建立对xxxxx的描述文件:
首先随便复制一个文件作为模板:

cp -p https.xml xxxxx.xml

在这里插入图片描述
编辑完成后,保存退出。重加载火墙信息。查看火墙策略:
在这里插入图片描述
成功添加了我们自定义的名称。

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=xxxxx ##移除服务 

在这里插入图片描述


firewall-cmd --reload ##重加载火墙信息

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

指定来自172.25.254网段的数据使用的域为block


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

删除设定的 指定来自172.25.254网段的数据使用的域为block

如果为双网卡主机,可以单独指定某块网卡接口使用的域:

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

work 域的网卡接口:ens224
在这里插入图片描述
public域的网卡接口:ens160:
在这里插入图片描述
也可以使用firewall-cmd --permanent --change-interface=ens224 --zone=public更改网络接口到指定域(更改ens224网卡接口到public域)

firewalld的高级规则

在火墙的策略规则中,当前允许ssh连接:
在这里插入图片描述
若使用firewall-cmd permenat --remove-service=ssh将ssh服务从火墙策略中移除,那么对于当前的双网卡主机来说,通过ens160和ens224的ssh来连接的所有数据会被拒绝,那么这显然不合理。

那么如果说要求只允许172.25.254网段的主机来进行连接,该怎样实现?


当前172.25.254网段主机可以ssh连接双网卡主机:
在这里插入图片描述
当前12.168.0网段主机可以ssh连接双网卡主机:
在这里插入图片描述

在双网卡主机若使用firewall-cmd permenat --remove-service=ssh将ssh服务从火墙策略中移除:
在这里插入图片描述
此时172.25.254网段主机不能ssh连接双网卡主机:
在这里插入图片描述

此时192.168.0网段主机不能ssh连接双网卡主机
在这里插入图片描述
现使用firewalld的高级规则进行设置:
使用命令:

firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -s 172.25.254.0/24 -p tcp --dport 22 -j ACCEPT

设置允许172.25.254网段主机使用22端口访问双网卡主机。
使用命令:

firewall-cmd --direct --get-all-rules

查看当前高级规则:
在这里插入图片描述
172.25.254网段主机可以ssh连接双网卡主机。

192.168.0网段主机不能连接双网卡主机

firewalld中的NAT

SNAT

172.25.254网段主机是不能ping同双网卡主机的192.168.0网段网卡。当双网卡的内核路由功能打开后就可以与192.168.0网段网卡进行通信。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值