Original Source: https://www.ifshow.com/cetnos-7-default-firewall-firewalld-instructions/
对原文内容有精简和内容增添:
1. FIREWALLD 介绍:
CetnOS 7默认防火墙使用FIREWALLD替代了之前的iptables(链接含详细配置),主要特点:动态管理防火墙,不需要重启整个防火墙便可应用更改;使用“区域(zone)”概念。FIREWALLD也支持允许服务或者应用程序直接添加防火墙规则的接口。
Note: FIREWALLD 和 iptables不能同时运行,只能选择其中之一。
2. 如何关闭FIREWALLD改用Iptables(下文介绍FIREWALLD配置 此处写给熟悉iptables人员)
#停止firewalld服务
systemctl stop firewalld
#禁用firewalld服务
systemctl mask firewalld
安装Iptables:
#安装iptables
yum install -y iptables
#升级iptables
yum update iptables
#安装iptables-services
yum install iptables-services
启动Iptables:
# 启用iptables服务
systemctl enable iptables
# 启用ipv6的防护
systemctl enable ip6tables
# 启动iptables服务
systemctl start iptables
# 启动ipv6的防护
systemctl start ip6tables
区域定义了网络连接的可信等级。这是一个一对多的关系:一次连接可以仅仅是一个区域的一部分,而一个区域可以用于很多连接。
区域设置以 ZONE= 选项 存储在网络连接的ifcfg文件中。
如果这个选项缺失或者为空,firewalld 将使用配置的默认区域。在/etc/firewalld/zones下面新增或修改区域。
网络接口可以指定到某个区域,未指定区域的网络接口一律配置到默认区域。
4. FIREWALLD常用命令:
开机自启动:
systemctl start firewalld.service
systemctl enable firewalld.service
重启服务:
# 重载firewalld配置文件,不改变当前连接状态
systemctl reload firewalld.service
# 重启firewalld服务
systemctl restart firewalld.service
查看服务状态:
# 查看firewalld服务状态
systemctl status firewalld.service
同时还有:图像界面工具firewall-config
yum install firewall-config
Notes: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
E.g. 默认区域新增Rich Language规则,规则内容为:在IPv4拒绝来自IP 192.168.111.111的访问,重载后永久生效。
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.111.111" reject'
E.g. 默认区域移除上述Rich Language规则,重载后永久生效。
firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="192.168.111.111" reject'
E.g. 默认区域查询上述Rich Language规则是否存在。
firewall-cmd --query-rich-rule='rule family="ipv4" source address="192.168.111.111"
E.g.
在IPv4接受来自IP 192.168.111.111的访问,重载后永久生效。
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.111.111" accept'
or
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address="192.168.111.111" accept'
7. 更多关于: 端口转发 IP地址伪装 端口管理操作
8. 官方介绍