[命令] Linux 防火墙设置命令 firewall-cmd 的使用

内容目录:
内容一:防火墙信息查询
1.1 防火墙运行状态查询
1.2 防火墙默认信息查询
1.2.1 查看防火墙的所有区域
1.2.2 查看防火墙支持的所有服务
1.2.3 查看防火墙支持的所有 icmp 协议
1.3 查看防火墙当前所在的区域
1.4 查看防火墙的策略
1.4.1 查看防火墙当前所在的区域的所有策略
1.4.2 查看所有区域的所有策略
1.4.3 查看某一个区域的策略
1.4.3.1 查看某一个区域的策略的格式
1.4.3.2 查看某一个区域的策略的案例

内容二: 区域的网卡管理
2.1 查看网卡所在的区域
2.1.1 查看哪些区域处于激活状态
2.1.2 查看某一个网卡所属的区域
2.1.2.1 查看某一个网卡所属的区域的格式
2.1.2.2 查看某一个网卡所属的区域的案例
2.2 将某一个网卡放入某一个区域
2.2.1 将某一个网卡放入某一个区域的格式
2.2.2 将某一个网卡放入某一个区域的案例
2.3 将某一个网卡从某一个区域删除
2.3.1 将某一个网卡从某一个区域删除的格式
2.3.2 将某一个网卡从某一个区域删除的案例

内容三:防火墙区域设置
3.1 查看防火墙目前所在的区域
3.2 指定防火墙的区域
3.2.1 指定防火墙的区域的格式
3.2.2 指定防火墙的区域的案例

内容四:防火墙暂时策略设置(防火墙重启后失效)
4.1 开放策略相关
4.1.1 暂时开放端口
4.1.1.1 暂时在防火墙当前所在区域里开放某一个端口号
4.1.1.1.1 暂时在防火墙当前所在区域里开放某一个端口号的格式
4.1.1.1.2 暂时在防火墙当前所在区域里开放某一个端口号的案例
4.1.1.2 暂时在防火墙当前所在区域里开放某一个服务的所有端口号
4.1.1.2.1 暂时在防火墙当前所在区域里开放某一个服务的所有端口号的格式
4.1.1.2.2 暂时在防火墙当前所在区域里开放某一个服务的所有端口号的案例
4.1.1.3 暂时在防火墙当前所在区域里对某个网段开放某一个端口号
4.1.1.3.1 暂时在防火墙当前所在区域里对某个网段开放某一个端口号的格式
4.1.1.3.2 暂时在防火墙当前所在区域里对某个网段开放某一个端口号的案例
4.1.1.4 暂时在防火墙当前所在区域里对某一个 IP 地址开放多个端口号
4.1.1.4.1 暂时在防火墙当前所在区域里对某一个 IP 地址开放多个端口号的格式
4.1.1.4.2 暂时在防火墙当前所在区域里对某一个 IP 地址开放多个端口号的案例
4.1.1.5 暂时在防火墙当前所在区域里对除了某一个 IP 地址外的 IP 地址开放多个端口号
4.1.1.5.1 暂时在防火墙当前所在区域里对除了某一个 IP 地址外的 IP 地址开放多个端口号的格式
4.1.1.5.2 暂时在防火墙当前所在区域里对除了某一个 IP 地址外的 IP 地址开放多个端口号的案例
4.1.2 暂时关闭已开放的端口
4.1.2.1 暂时在防火墙当前所在区域里关闭已开放的某一个端口号
4.1.2.1.1 暂时在防火墙当前所在区域里关闭已开放的某一个端口号的格式
4.1.2.1.2 暂时在防火墙当前所在区域里关闭已开放的某一个端口号的案例
4.1.2.2 暂时在防火墙当前所在区域里关闭已开放的某一个服务的所有端口号
4.1.2.2.1 暂时在防火墙当前所在区域里关闭已开放的某一个服务的所有端口号的格式
4.1.2.2.2 暂时在防火墙当前所在区域里关闭已开放的某一个服务的所有端口号的案例
4.1.2.3 暂时在防火墙当前所在区域里关闭已开放的对某个网段开放某一个端口号
4.1.2.3.1 暂时在防火墙当前所在区域里关闭已开放的对某个网段开放某一个端口号的格式
4.1.2.3.2 暂时在防火墙当前所在区域里关闭已开放的对某个网段开放的某一个端口号的案例
4.1.2.4 暂时在防火墙当前所在区域里关闭已开放的对某一个 IP 地址开放的多个端口号
4.1.2.4.1 暂时在防火墙当前所在区域里关闭已开放的对某一个 IP 地址开放的多个端口号的格式
4.1.2.4.2 暂时在防火墙当前所在区域里关闭已开放的对某一个 IP 地址开放的多个端口号的案例
4.1.2.5 暂时在防火墙当前所在区域里关闭对除了某一个 IP 地址外的 IP 地址开放多个端口号
4.1.2.5.1 暂时在防火墙当前所在区域里对除了某一个 IP 地址外的 IP 地址开放多个端口号的格式
4.1.2.5.2 暂时在防火墙当前所在区域里关闭对除了某一个 IP 地址外的 IP 地址开放多个端口号的案例
4.2 拒绝策略相关
4.2.1 暂时拒绝端口
4.2.1.1 暂时在防火墙当前所在区域里对某个网段拒绝某一个端口号
4.2.1.1.1 暂时在防火墙当前所在区域里对某个网段拒绝某一个端口号的格式
4.2.1.1.2 暂时在防火墙当前所在区域里对某个网段拒绝某一个端口号的案例
4.2.1.2 暂时在防火墙当前所在区域里对某一个 IP 地址拒绝多个端口号
4.2.1.2.1 暂时在防火墙当前所在区域里对某个网段拒绝某一个端口号的格式
4.2.1.2.2 暂时在防火墙当前所在区域里对某个网段拒绝某一个端口号的案例
4.2.1.2 暂时在防火墙当前所在区域里对除了某一个 IP 地址外的 IP 地址拒绝多个端口号
4.2.1.2.1 暂时在防火墙当前所在区域里对除了某一个 IP 地址外的 IP 地址拒绝多个端口号的格式
4.2.1.2.2 暂时在防火墙当前所在区域里对除了某一个 IP 地址外的 IP 地址拒绝多个端口号的案例
4.2.2 暂时撤销已拒绝端口
4.2.2.1 暂时在防火墙当前所在区域里撤销已设置的对某个网段拒绝某一个端口号
4.2.2.1.1 暂时在防火墙当前所在区域里撤销已设置的对某个网段拒绝某一个端口号的格式
4.2.2.1.2 暂时在防火墙当前所在区域里撤销撤销已设置的对某个网段拒绝某一个端口号的案例
4.2.2.2 暂时在防火墙当前所在区域里撤销已设置的对某一个 IP 地址拒绝多个端口号
4.2.2.2.1 暂时在防火墙当前所在区域里撤销已设置的对某个网段拒绝某一个端口号的格式
4.2.2.1.2 暂时在防火墙当前所在区域里撤销已设置的对某个网段拒绝某一个端口号的案例
4.2.3.2 暂时在防火墙当前所在区域里撤销已设置的对除了某一个 IP 地址外的 IP 地址拒绝多个端口号
4.2.3.2.1 暂时在防火墙当前所在区域里撤销已设置的对除了某一个 IP 地址外的 IP 地址拒绝多个端口号的格式
4.2.2.3.2 暂时在防火墙当前所在区域里撤销已设置的对除了某一个 IP 地址外的 IP 地址拒绝多个端口号的案例
4.3 转发策略相关
4.3.1 开启防火墙转发策略
4.3.2 暂时在防火墙当前所在区域里开启一个端口跳转到另一个 IP 地址的另一个端口
4.3.2.1 暂时在防火墙当前所在区域里开启一个端口跳转到另一个 IP 地址的另一个端口的格式
4.3.2.2 暂时在防火墙当前所在区域里开启一个端口跳转到另一个 IP 地址的另一个端口的案例
4.3.3 暂时在防火墙当前所在区域里关闭已开放的一个端口跳转到另一个 IP 地址的另一个端口
4.3.3.1 暂时在防火墙当前所在区域里关闭已开放的一个端口跳转到另一个 IP 地址的另一个端口的格式
4.3.3.2 暂时在防火墙当前所在区域里关闭已开放的一个端口跳转到另一个 IP 地址的另一个端口的案例

内容五:防火墙暂时禁止 icmp 的设置
5.1 防火墙暂时禁止 icmp
5.2 防火墙暂时取消禁止 icmp

内容六:防火墙暂时禁止所有网络的设置
6.1 让防火墙暂时进入拒绝模式
6.2 取消防火墙的拒绝模式
6.3 查看防火墙目前的状态

内容七:将防火墙暂时策略的设置方法转换成永久策略和限时策略的设置方法
7.1 防火墙暂时策略的设置方法
7.2 防火墙永久策略的设置
7.3 防火墙限时策略的设置

内容八:防火墙策略的加载
8.1 使用防火墙命令加载策略
8.2 在系统层面上重启防火墙以加载策略

相关链接:与 firewall-cmd 相关的 shell 脚本

具体的内容:
内容一:防火墙信息查询
1.1 防火墙运行状态查询
# firewall-cmd –state

1.2 防火墙默认信息查询
1.2.1 查看防火墙的所有区域
# firewall-cmd --get-zones

1.2.2 查看防火墙支持的所有服务
# firewall-cmd --get-services

1.2.3 查看防火墙支持的所有 icmp 协议
# firewall-cmd --get-icmptypes

1.3 查看防火墙当前所在的区域
# firewall-cmd --get-default-zone

1.4 查看防火墙的策略
1.4.1 查看防火墙当前所在的区域的所有策略
# firewall-cmd --list-all

1.4.2 查看所有区域的所有策略
# firewall-cmd --list-all-zones

1.4.3 查看某一个区域的策略
1.4.3.1 查看某一个区域的策略的格式
# firewall-cmd --zone=<区域> --list-all

1.4.3.2 查看某一个区域的策略的案例
# firewall-cmd --zone=public --list-all

内容二: 区域的网卡管理
2.1 查看网卡所在的区域
2.1.1 查看哪些区域处于激活状态
# firewall-cmd --get-active-zones

(注意:只有放入了显卡的区域才会处于激活状态)

2.1.2 查看某一个网卡所属的区域
2.1.2.1 查看某一个网卡所属的区域的格式
# firewall-cmd –get-zone-of-interface=<网卡名>

2.1.2.2 查看某一个网卡所属的区域的案例
# firewall-cmd –get-zone-of-interface=eth0

2.2 将某一个网卡放入某一个区域
2.2.1 将某一个网卡放入某一个区域的格式
# firewall-cmd --zone=<区域名> --add-interface=<网卡名>

2.2.2 将某一个网卡放入某一个区域的案例
# firewall-cmd --zone=public --add-interface=eth0

2.3 将某一个网卡从某一个区域删除
2.3.1 将某一个网卡从某一个区域删除的格式
# firewall-cmd --zone=<区域名> --remove-interface=<网卡名>

2.3.2 将某一个网卡从某一个区域删除的案例
# firewall-cmd --zone=public --remove-interface=eth0

内容三:防火墙区域设置
3.1 查看防火墙目前所在的区域
# firewall-cmd --get-default

3.2 指定防火墙的区域
3.2.1 指定防火墙的区域的格式
# firewall-cmd --set-default=<区域>

3.2.2 指定防火墙的区域的案例
# firewall-cmd --set-default=public

内容四:防火墙暂时策略设置(防火墙重启后失效)
(注意:防火墙的规则没有现后之分,但是拒绝规则永远高于允许规则)

4.1 开放策略相关
4.1.1 暂时开放端口
4.1.1.1 暂时在防火墙当前所在区域里开放某一个端口号
4.1.1.1.1 暂时在防火墙当前所在区域里开放某一个端口号的格式
# firewall-cmd --add-port=<端口号>/tcp

4.1.1.1.2 暂时在防火墙当前所在区域里开放某一个端口号的案例
# firewall-cmd --add-port=80/tcp

4.1.1.2 暂时在防火墙当前所在区域里开放某一个服务的所有端口号
4.1.1.2.1 暂时在防火墙当前所在区域里开放某一个服务的所有端口号的格式
# firewall-cmd --add-service=<服务名>

4.1.1.2.2 暂时在防火墙当前所在区域里开放某一个服务的所有端口号的案例
# firewall-cmd --add-service=http

4.1.1.3 暂时在防火墙当前所在区域里对某个网段开放某一个端口号
4.1.1.3.1 暂时在防火墙当前所在区域里对某个网段开放某一个端口号的格式
# firewall-cmd --add-rich-rule="rule family="<网络协议名>" source address="<网段>/<子网掩码>" port protocol="<端口协议>" port="<端口号>" accept"

4.1.1.3.2 暂时在防火墙当前所在区域里对某个网段开放某一个端口号的案例
# firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="80" accept"

4.1.1.4 暂时在防火墙当前所在区域里对某一个 IP 地址开放多个端口号
4.1.1.4.1 暂时在防火墙当前所在区域里对某一个 IP 地址开放多个端口号的格式
# firewall-cmd --add-rich-rule="rule family="<网络协议名>" source address="<IP 地址>" port protocol="<端口协议>" port="<起始端口号>-<结束端口号>" accept"

4.1.1.4.2 暂时在防火墙当前所在区域里对某一个 IP 地址开放多个端口号的案例
# firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.1.1" port protocol="tcp" port="0-65535" accept"

4.1.1.5 暂时在防火墙当前所在区域里对除了某一个 IP 地址外的 IP 地址开放多个端口号
4.1.1.5.1 暂时在防火墙当前所在区域里对除了某一个 IP 地址外的 IP 地址开放多个端口号的格式
# firewall-cmd --add-rich-rule="rule family="<网络协议名>" source NOT address="<IP 地址>" port protocol="<端口协议>" port="<起始端口号>-<结束端口号>" accept"

4.1.1.5.2 暂时在防火墙当前所在区域里对除了某一个 IP 地址外的 IP 地址开放多个端口号的案例
# firewall-cmd --add-rich-rule="rule family="ipv4" source NOT address="192.168.1.1" port protocol="tcp" port="0-65535" accept"

4.1.2 暂时关闭已开放的端口
4.1.2.1 暂时在防火墙当前所在区域里关闭已开放的某一个端口号
4.1.2.1.1 暂时在防火墙当前所在区域里关闭已开放的某一个端口号的格式
# firewall-cmd --remove-port=<端口号>/tcp

4.1.2.1.2 暂时在防火墙当前所在区域里关闭已开放的某一个端口号的案例
# firewall-cmd --remove-port=80/tcp

4.1.2.2 暂时在防火墙当前所在区域里关闭已开放的某一个服务的所有端口号
4.1.2.2.1 暂时在防火墙当前所在区域里关闭已开放的某一个服务的所有端口号的格式
# firewall-cmd --remove-service=<服务名>

4.1.2.2.2 暂时在防火墙当前所在区域里关闭已开放的某一个服务的所有端口号的案例
# firewall-cmd --remove-service=http

4.1.2.3 暂时在防火墙当前所在区域里关闭已开放的对某个网段开放某一个端口号
4.1.2.3.1 暂时在防火墙当前所在区域里关闭已开放的对某个网段开放某一个端口号的格式
# firewall-cmd --remove-rich-rule="rule family="ipv4" source address="<网段>/<子网掩码>" port protocol="<端口协议>" port="<端口号>" accept"

4.1.2.3.2 暂时在防火墙当前所在区域里关闭已开放的对某个网段开放的某一个端口号的案例
# firewall-cmd --remove-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="80" accept"

4.1.2.4 暂时在防火墙当前所在区域里关闭已开放的对某一个 IP 地址开放的多个端口号
4.1.2.4.1 暂时在防火墙当前所在区域里关闭已开放的对某一个 IP 地址开放的多个端口号的格式
# firewall-cmd --remove-rich-rule="rule family="ipv4" source address="<IP 地址>" port protocol="<端口协议>" port="<起始端口号>-<结束端口号>" accept"

4.1.2.4.2 暂时在防火墙当前所在区域里关闭已开放的对某一个 IP 地址开放的多个端口号的案例
# firewall-cmd --remove-rich-rule="rule family="ipv4" source address="192.168.1.1" port protocol="tcp" port="0-65535" accept"

4.1.2.5 暂时在防火墙当前所在区域里关闭对除了某一个 IP 地址外的 IP 地址开放多个端口号
4.1.2.5.1 暂时在防火墙当前所在区域里对除了某一个 IP 地址外的 IP 地址开放多个端口号的格式
# firewall-cmd --remove-rich-rule="rule family="<网络协议名>" source NOT address="<IP 地址>" port protocol="<端口协议>" port="<起始端口号>-<结束端口号>" accept"

4.1.2.5.2 暂时在防火墙当前所在区域里关闭对除了某一个 IP 地址外的 IP 地址开放多个端口号的案例
# firewall-cmd --remove-rich-rule="rule family="ipv4" source NOT address="192.168.1.1" port protocol="tcp" port="0-65535" accept"

4.2 拒绝策略相关
4.2.1 暂时拒绝端口
4.2.1.1 暂时在防火墙当前所在区域里对某个网段拒绝某一个端口号
4.2.1.1.1 暂时在防火墙当前所在区域里对某个网段拒绝某一个端口号的格式
# firewall-cmd --zone=public --add-rich-rule="rule family="<网络协议名>" source address="<网段>/<子网掩码>" port protocol="<端口协议>" port="<端口号>" drop"

或者:

# firewall-cmd --zone=public --add-rich-rule="rule family="<网络协议名>" source address="<网段>/<子网掩码>" port protocol="<端口协议>" port="<端口号>" reject"

(补充:这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应)

4.2.1.1.2 暂时在防火墙当前所在区域里对某个网段拒绝某一个端口号的案例
# firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol=tcp port=80 drop"

或者:

# firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol=tcp port=80 reject"

(补充:这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应)

4.2.1.2 暂时在防火墙当前所在区域里对某一个 IP 地址拒绝多个端口号
4.2.1.2.1 暂时在防火墙当前所在区域里对某个网段拒绝某一个端口号的格式
# firewall-cmd --zone=public --add-rich-rule="rule family="<网络协议名>" source address="<IP 地址>" port protocol="<端口协议>" port="<起始端口号>-<结束端口号>" drop"

或者:

# firewall-cmd --zone=public --add-rich-rule="rule family="<网络协议名>" source address="<IP 地址>" port protocol="<端口协议>" port="<起始端口号>-<结束端口号>" reject"

(补充:这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应)

4.2.1.2.2 暂时在防火墙当前所在区域里对某个网段拒绝某一个端口号的案例
# firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.1.1" port protocol=tcp port="0-65535" drop"

或者:

# firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.1.1" port protocol=tcp port="0-65535" reject"

(补充:这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应)

4.2.1.2 暂时在防火墙当前所在区域里对除了某一个 IP 地址外的 IP 地址拒绝多个端口号
4.2.1.2.1 暂时在防火墙当前所在区域里对除了某一个 IP 地址外的 IP 地址拒绝多个端口号的格式
# firewall-cmd --add-rich-rule="rule family="<网络协议名>" source NOT address="<IP 地址>" port protocol="<端口协议>" port="<起始端口号>-<结束端口号>" accept"

或者:

# firewall-cmd --add-rich-rule="rule family="<网络协议名>" source NOT address="<IP 地址>" port protocol="<端口协议>" port="<起始端口号>-<结束端口号>" reject"

(补充:这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应)

4.2.1.2.2 暂时在防火墙当前所在区域里对除了某一个 IP 地址外的 IP 地址拒绝多个端口号的案例
# firewall-cmd --add-rich-rule="rule family="ipv4" source NOT address="192.168.1.1" port protocol="tcp" port="0-65535" accept"

或者:

# firewall-cmd --add-rich-rule="rule family="ipv4" source NOT address="192.168.1.1" port protocol="tcp" port="0-65535" accept"

(补充:这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应)

4.2.2 暂时撤销已拒绝端口
4.2.2.1 暂时在防火墙当前所在区域里撤销已设置的对某个网段拒绝某一个端口号
4.2.2.1.1 暂时在防火墙当前所在区域里撤销已设置的对某个网段拒绝某一个端口号的格式
# firewall-cmd --zone=public --add-rich-rule="rule family="<网络协议名>" source address="<网段>/<子网掩码>" port protocol="<端口协议>" port="<端口号>" drop"

或者:

# firewall-cmd --zone=public --add-rich-rule="rule family="<网络协议名>" source address="<网段>/<子网掩码>" port protocol="<端口协议>" port="<端口号>" reject"

(补充:这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应)

4.2.2.1.2 暂时在防火墙当前所在区域里撤销撤销已设置的对某个网段拒绝某一个端口号的案例
# firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol=tcp port=80 drop"

或者:

# firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol=tcp port=80 reject"

(补充:这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应)

4.2.2.2 暂时在防火墙当前所在区域里撤销已设置的对某一个 IP 地址拒绝多个端口号
4.2.2.2.1 暂时在防火墙当前所在区域里撤销已设置的对某个网段拒绝某一个端口号的格式
# firewall-cmd --zone=public --add-rich-rule="rule family="<网络协议名>" source address="<IP 地址>" port protocol="<端口协议>" port="<起始端口号>-<结束端口号>" drop"

或者:

# firewall-cmd --zone=public --add-rich-rule="rule family="<网络协议名>" source address="<IP 地址>" port protocol="<端口协议>" port="<起始端口号>-<结束端口号>" reject"

(补充:这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应)

4.2.2.1.2 暂时在防火墙当前所在区域里撤销已设置的对某个网段拒绝某一个端口号的案例
# firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.1.1" port protocol=tcp port="0-65535" drop"

或者:

# firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.1.1" port protocol=tcp port="0-65535" reject"

(补充:这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应)

4.2.3.2 暂时在防火墙当前所在区域里撤销已设置的对除了某一个 IP 地址外的 IP 地址拒绝多个端口号
4.2.3.2.1 暂时在防火墙当前所在区域里撤销已设置的对除了某一个 IP 地址外的 IP 地址拒绝多个端口号的格式
# firewall-cmd --add-rich-rule="rule family="<网络协议名>" source NOT address="<IP 地址>" port protocol="<端口协议>" port="<起始端口号>-<结束端口号>" accept"

或者:

# firewall-cmd --add-rich-rule="rule family="<网络协议名>" source NOT address="<IP 地址>" port protocol="<端口协议>" port="<起始端口号>-<结束端口号>" reject"

(补充:这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应)

4.2.2.3.2 暂时在防火墙当前所在区域里撤销已设置的对除了某一个 IP 地址外的 IP 地址拒绝多个端口号的案例
# firewall-cmd --add-rich-rule="rule family="ipv4" source NOT address="192.168.1.1" port protocol="tcp" port="0-65535" accept"

或者:

# firewall-cmd --add-rich-rule="rule family="ipv4" source NOT address="192.168.1.1" port protocol="tcp" port="0-65535" accept"

(补充:这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应)

4.3 转发策略相关
4.3.1 开启防火墙转发策略
# firewall-cmd --add-masquerade --permanent

(注意:只有开启了防火墙转发策略之后防火墙才能转发端口) 

4.3.2 暂时在防火墙当前所在区域里开启一个端口跳转到另一个 IP 地址的另一个端口
4.3.2.1 暂时在防火墙当前所在区域里开启一个端口跳转到另一个 IP 地址的另一个端口的格式
# firewall-cmd --add-forward-port=port=<端口号>:proto=<端口协议>:toport=<端口号>:toaddr=<IP 地址>

4.3.2.2 暂时在防火墙当前所在区域里开启一个端口跳转到另一个 IP 地址的另一个端口的案例
# firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.1.1

4.3.3 暂时在防火墙当前所在区域里关闭已开放的一个端口跳转到另一个 IP 地址的另一个端口
4.3.3.1 暂时在防火墙当前所在区域里关闭已开放的一个端口跳转到另一个 IP 地址的另一个端口的格式
# firewall-cmd --remove-forward-port=port=<端口号>:proto=<端口协议>:toport=<端口号>:toaddr=<IP 地址>

4.3.3.2 暂时在防火墙当前所在区域里关闭已开放的一个端口跳转到另一个 IP 地址的另一个端口的案例
# firewall-cmd --remove-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.1.1

内容五:防火墙暂时禁止 icmp 的设置
5.1 防火墙暂时禁止 icmp
# firewall-cmd --add-rich-rule='rule protocol value=icmp drop'

5.2 防火墙暂时取消禁止 icmp
# firewall-cmd --remove-rich-rule='rule protocol value=icmp drop'

内容六:防火墙暂时禁止所有网络的设置
6.1 让防火墙暂时进入拒绝模式
# firewall-cmd –panic-on

6.2 取消防火墙的拒绝模式
# firewall-cmd –panic-off

6.3 查看防火墙目前的状态
# firewall-cmd –query-panic

内容七:将防火墙暂时策略的设置方法转换成永久策略和限时策略的设置方法
7.1 防火墙暂时策略的设置方法
和内容一、内容二、内容三、内容四里的大部分设置命令一样,例:
# firewall-cmd --add-port=80/tcp

7.2 防火墙永久策略的设置
和内容一、内容二、内容三、内容四里的大部分设置命令一样,但是需要在后面添加 --permanent 参数,例:
# firewall-cmd --add-port=80/tcp --permanent

(注意:永久策略设置后,防火墙要重新加载才会生效)

7.3 防火墙限时策略的设置
和内容一、内容二、内容三、内容四的大部分设置命令一样,但是需要在后面添加 --timeout=<秒> 参数,列:
# firewall-cmd --add-port=80/tcp --timeout=3600

(补充:此策略会在 3600 秒后失效)

内容八:防火墙策略的加载
8.1 使用防火墙命令加载策略
# firewall-cmd --reload

(注意:此时暂时策略会失效,永久策略会生效)

8.2 在系统层面上重启防火墙以加载策略
# systemctl retart firewalld

(注意:此时暂时策略会失效,永久策略会生效)

相关链接:与 firewall-cmd 相关的 shell 脚本

Shell 在 firewalld 防火墙上批量对多个 IP 地址开发多个端口号

Shell 在 firewalld 防火墙上开放所有正在处于监听状态的端口号

Shell 在 firewalld 防火墙上取消所有已设置的复杂端口号策略

Shell 在 firewalld 防火墙上取消所有已开放的端口号