firewalld的使用教程

举报
阿柠 发表于 2022/09/27 20:23:41 2022/09/27
【摘要】 firewalld相较于传统的防火墙管理配置工具,firewalld支持动态更新技术并加入了区域(zone)的概念。简单来说区域就是firewalld预先准备了几套防火墙策略集合(策略模板),用户可以根据生产场景的不同选择合适的策略集合,从而实现防火墙策略之间的快速切换。firewalld中常用的区域名称及策略规则区域默认策略规则trusted允许所有的数据包home拒绝流入的流量,除非与...

firewalld

相较于传统的防火墙管理配置工具,firewalld支持动态更新技术并加入了区域(zone)的概念。简单来说区域就是firewalld预先准备了几套防火墙策略集合(策略模板),用户可以根据生产场景的不同选择合适的策略集合,从而实现防火墙策略之间的快速切换。

firewalld中常用的区域名称及策略规则

区域 默认策略规则
trusted 允许所有的数据包
home 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh,mdns,ipp-client,amba-client,dhcpv6-client服务相关,则允许流量
internal 等同于home区域
work 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh,ipp-client,dhcpv6-client服务相关,则允许流量
public 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh,dhcpv6-client 服务相关,则允许流量
external 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh服务相关,则允许流量
dmz 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh服务相关,则允许流量
block 拒绝流入的流量,除非与流出的流量相关
drop 拒绝流入的流量,除非与流出的流量相关

终端管理工具

firewall-cmd是firewalld的防火墙配置管理工具的CLI(命令行)版本。他的参数一般是以长格式给出。

firewall-cmd命令中使用的参数以及作用

参数 作用
–get-default-zone 查询默认的区域名称
–set-default-zone=<区域名称> 设置默认的区域,使其永久生效
–get-zones 显示可用的区域
–get-services 显示预先定义的服务
–get-active-zones 显示当前正在使用的区域和网卡名称
–add-source= 将源于此ip或子网的流量导向指定的区域
–remove-source= 不再将源自此ip或子网的流量导向指定的区域
–add-interface=<网卡名称> 将源自该网卡的所有流量都导向某个指定区域。
–change-interface=<网卡名称> 将某个网卡与区域进行关联
–list-all 显示当前区域的网卡配置参数,资源,端口以及服务等信息
–list-all-zones 显示所有区域的网卡配置参数,资源,端口以及服务等信息
–add-service=<服务名> 设置默认区域允许该服务的流量
–add-port=<端口号/协议> 设置默认区域允许该端口的流量
–remove-service=<服务名> 设置默认区域不再允许该服务的流量
–remove-port=<端口号/协议> 设置默认区域不再允许该端口的流量
–reload 让永久生效的配置规则立即生效,并覆盖当前的配置规则
–panic-on 开启应急状况模式
–panic-off 关闭应急状况模式

使用firewalld配置的防火墙策略默认为运行时模式,又称当前生效模式,而随着系统的重启会失效。如果想让配置策略一直存在,就需要使用永久模式,方法就是添加 --permanent参数。

例:查看firewalld服务当前使用的区域

		firewall-cmd --get-default-zone

查询enol6777728网卡在firewalld服务中的区域:

firewall-cmd --get-zone-of-interface=enol6777728

把firewalld服务中enol6777728网卡的默认区域修改为external,并在系统重启后生效。分别查看当前与永久模式下的区域名称:

firewall-cmd -permanent --zone=external --change-interface=enol6777728
#success
firewall-cmd --get-zone-of-interface=enol6777728
#public
firewall-cmd --permanent --get-zone-of-interface=enol6777728
#external

把firewalld服务的当前默认区域设置为public

firewall-cmd --set-default-zone=public

启动firewall防火墙服务的应急状况模式,阻断一切网络连接

firewall-cmd --panic-on

查询public区域是否允许请求ssh和https协议的流量

firewall-cmd --zone=public --query-service=ssh
#yes

把firewalld服务中请求https协议的流量设置为永久有效,并立即生效。

firewall-cmd  --zone=public --add-service=https
firewall-cdm  --permanent --zone=public --add-service=https
firewall-cmd  --reload

把firewalld服务中请求http协议的流量设置为永久拒绝,并立即生效

firewall-cmd --permanent  --zone=public --remove-service=http
#success
firewall-cmd --reload

把在firewalld服务中访问8080和8081端口的流量策略设置为允许,但仅当前生效

firewall-cmd --zone=public --add-port=8080-8081/tcp
#success
firewall-cmd --zone=public --list-ports
#8080-8081/tcp

把原本访问本机端口888端口的流量转发到22端口,当前和长期有效

firewall-cmd --permanent --zone=public --add-forward-port=port=888:proto=tcp:toport=22:toaddr=目标ip地址
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。