我的问题是,如果没有特定的规则,我该如何保留现有的firewalld配置并删除所有其他连接。
我有以下防火墙配置:
[root@server ~]$ firewall-cmd --get-default-zone
public
[root@server ~]$ firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: ens192
sources:
services: ssh dhcpv6-client
ports: 123/udp 514/tcp 514/udp 5514/udp 5514/tcp 9200/tcp 9300/tcp 5044/tcp 53/udp 443/tcp 5000/tcp 55000/tcp 1516/tcp 1515/tcp 1514/tcp
protocols:
masquerade: yes
forward-ports: port=514:proto=udp:toport=5514:toaddr=
port=514:proto=tcp:toport=5514:toaddr=
source-ports:
icmp-blocks:
rich rules:
我该如何使用已配置的规则,但仍然默认删除?因为如果我执行 iptables -L,我可以看到默认策略是 ACCEPT:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
INPUT_direct all -- anywhere anywhere
INPUT_ZONES_SOURCE all -- anywhere anywhere
INPUT_ZONES all -- anywhere anywhere
DROP all -- anywhere anywhere ctstate INVALID
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
答案1
来自文档:
民众
适用于公共区域。您不相信网络上的其他计算机不会损害您的计算机。仅接受选定的传入连接。
这意味着,您已经删除了所有未明确允许的内容。您也可以从以下行中看到这一点:
target: default
默认目标是 REJECT,即硬编码在firewalld
。
答案2
使用firewalld/firewall-cmd时,如果你运行的是最新的企业版Linux(8及以上),请完全忘记iptables
该命令的输出iptables
不相关并且会让您感到困惑,因为它一开始就让我感到困惑。
互联网上有很多关于firewalld的文档,但大多数对于习惯于简单传统防火墙的人来说都没有多大帮助。
我发现非常有帮助的一个答案是:https://serverfault.com/a/680789/50874