CetnOS 7默认防火墙FirewallD的使用说明
1. firewalld简介
CetnOS 7默认防火墙使用firewalld替代了之前的iptables,主要特点:动态管理防火墙,不需要重启整个防火墙便可应用更改;使用“区域(zone)”概念。
firewalld支持 IPv4, IPv6 防火墙设置以及以太网桥接,并且拥有运行时配置和永久配置选项。firewalld也支持允许服务或者应用程序直接添加防火墙规则的接口。firewalld无法解析由 iptables 和 ebtables 命令行工具添加的防火墙规则。firewalld和iptables不能同时运行,只能选择其中之一。
2. “区域(zone)”介绍
区域定义了网络连接的可信等级。这是一个一对多的关系,这意味着一次连接可以仅仅是一个区域的一部分,而一个区域可以用于很多连接。区域按照从不信任到信任的顺序排序:
- 丢弃(drop):任何流入网络的包都被丢弃,不作出任何响应。只允许流出的网络连接。
- 阻塞(block):任何进入的网络连接都被拒绝,并返回 IPv4 的 icmp-host-prohibited 报文或者 IPv6 的 icmp6-adm-prohibited 报文。只允许由该系统初始化的网络连接。
- 公开(public):用以可以公开的wangl,默认区域。只允许选中的连接接入。
- 外部(external):用在路由器等启用伪装的外部网络。只允许选中的连接接入。
- 隔离区(dmz):用以允许隔离区(dmz)中的电脑有限地被外界网络访问。只接受被选中的连接。
- 工作(work):用在工作网络。只接受被选中的连接。
- 家庭(home):用在家庭网络。只接受被选中的连接。
- 内部(internal):用在内部网络。只接受被选中的连接。
- 受信任的(trusted):允许所有网络连接。
区域设置以 ZONE= 选项 存储在网络连接的ifcfg文件中。如果这个选项缺失或者为空,firewalld 将使用配置的默认区域。在/etc/firewalld/zones下面新增或修改区域。
网络接口可以指定到某个区域,未指定区域的网络接口一律配置到默认区域。
3. firewalld配置文件
/usr/lib/firewalld/ 存放默认配置文件,不能被修改,即使修改也会随着 firewalld 软件包的更新被重置。
/etc/firewalld/ 这里的配置文件可以是系统管理员通过配置接口定制的,也可以是手动定制的。这些文件将替代默认配置文件生效。
通常将配置文件从/usr/lib/firewalld/拷贝到/etc/firewalld/ 相应目录,再根据需求进行修改。
4. firewalld服务常用操作
启动firewalld并设为开机自启
systemctl start firewalld.service
systemctl enable firewalld.service
重载firewalld配置文件,不改变当前连接状态
systemctl reload firewalld.service
重启firewalld服务
systemctl restart firewalld.service
停止firewalld服务
systemctl stop firewalld.service
禁用firewalld服务
systemctl disable firewalld.service
查看firewalld服务状态
systemctl status firewalld.service
5. firewall-cmd常用命令
firewalld有图像界面工具firewall-config和命令行工具firewall-cmd,服务器上通常使用命令行工具firewall-cmd。
firewall-cmd命令默认同时对IPv4和IPv6生效; 加参数–zone=XXX为指定命令操作区域,不加此参数对默认区域操作; 加参数–permanent为使命令在firewalld重载后永久生效,不加此参数命令立刻生效但firewalld重载后失效。
查询防火墙运行状态
firewall-cmd --state
查询防火墙版本
firewall-cmd --version
查询防火墙默认区域配置信息
firewall-cmd --list-all
查询防火墙所有区域配置信息,且分屏显示
firewall-cmd --list-all-zones | more
设置默认区域为public,立刻生效 (也可以修改/etc/firewalld/firewalld.conf文件中DefaultZone=public,重载后生效)
firewall-cmd --set-default-zone=public
默认区域开启TCP 8080端口,重载后永久生效,可以设定端口号范围比如6000-7000
firewall-cmd --permanent --add-port=8080/tcp
默认区域关闭TCP 8080端口,重载后永久生效
firewall-cmd --permanent --remove-port=8080/tcp
默认区域开启HTTP服务(默认配置下等于开启TCP 80端口),重载后永久生效
firewall-cmd --permanent --add-service=http
默认区域关闭HTTP服务(默认配置下等于关闭TCP 80端口),重载后永久生效
firewall-cmd --permanent --remove-service=http
默认区域禁止ping,重载后永久生效
firewall-cmd --permanent --add-icmp-block=echo-reply
firewall-cmd --permanent --add-icmp-block=echo-request
重载防火墙配置,使用参数–reload保持当前连接,使用参数–complete-reload重置连接
firewall-cmd --reload
firewall-cmd --complete-reload
6. 使用“Rich Language” 配置复杂防火墙规则
默认区域新增Rich Language规则,规则内容为:在IPv4拒绝来自IP 192.168.111.111的访问,重载后永久生效。
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.111.111" reject'
默认区域移除上述Rich Language规则,重载后永久生效。
firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="192.168.111.111" reject'
默认区域查询上述Rich Language规则是否存在
firewall-cmd --query-rich-rule='rule family="ipv4" source address="192.168.111.111" reject'
7. firewalld直接接口(firewall-cmd –direct 命令)
firewall-cmd –direct 命令主要用于使服务和应用程序能够增加规则,不推荐手动操作;命令立刻生效,但重载后失效。如果不熟悉 iptables ,使用直接接口非常危险,可能无意间导致防火墙被入侵。具体操作就不介绍了。
- 原文作者:boxwang
- 原文链接:https://www.ifshow.com/cetnos-7-default-firewall-firewalld-instructions/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。如果特别注明为转载文章,请联系其原始作者。