不确定我这里哪里做错了。我没有看到此配置中打开了端口 4506,但我能够从 156.9.122 子网上的远程计算机远程登录到该端口。我做错了什么?
#防火墙命令--列出所有区域
防火墙命令--列出所有区域 堵塞 目标:%%REJECT%% icmp 块反转:否 接口: 来源: 服务: 端口: 协议: 化装舞会:否 转发端口: 源端口: icmp 阻止: 丰富的规则: 非军事区 目标:默认 icmp 块反转:否 接口: 来源: 服务:ssh 端口: 协议: 化装舞会:否 转发端口: 源端口: icmp 阻止: 丰富的规则: 降低 目标:DROP icmp 块反转:否 接口: 来源: 服务: 端口: 协议: 化装舞会:否 转发端口: 源端口: icmp 阻止: 丰富的规则: 外部的 目标:默认 icmp 块反转:否 接口: 来源: 服务:ssh 端口: 协议: 化装舞会:是的 转发端口: 源端口: icmp 阻止: 丰富的规则: 家 目标:默认 icmp 块反转:否 接口: 来源: 服务: ssh mdns samba-client dhcpv6-client 端口: 协议: 化装舞会:否 转发端口: 源端口: icmp 阻止: 丰富的规则: 内部的 目标:默认 icmp 块反转:否 接口: 来源: 服务: ssh mdns samba-client dhcpv6-client 端口: 协议: 化装舞会:否 转发端口: 源端口: icmp 阻止: 丰富的规则: 公开 (活跃) 目标:默认 icmp 块反转:否 接口: 来源:156.9.122.0/24 服务:http https ntp dhcpv6-client kerberos ldaps ssh dns ldap 端口:443/tcp 7902/tcp 8014/tcp 7903/tcp 8089/tcp 463/tcp 7899/tcp 7898/tcp 7900/tcp 52311/udp 80/tcp 7901/tcp 1584/tcp 1585/tcp 463/udp 22/tcp 协议: 化装舞会:否 转发端口: 源端口: icmp 阻止: 丰富的规则: 值得信赖 目标:接受 icmp 块反转:否 接口: 来源: 服务: 端口: 协议: 化装舞会:否 转发端口: 源端口: icmp 阻止: 丰富的规则: 工作 目标:默认 icmp 块反转:否 接口: 来源: 服务: ssh dhcpv6-client 端口: 协议: 化装舞会:否 转发端口: 源端口: icmp 阻止: 丰富的规则:
# iptables -nvL
链输入(策略接受 0 个数据包,0 字节) pkts 字节数 目标 协议 选择加入 退出 源 目标 28874 7345K 接受全部 -- * * 0.0.0.0/0 0.0.0.0/0 ctstate 相关,已建立 205 36869 接受全部 -- lo * 0.0.0.0/0 0.0.0.0/0 117 12145 INPUT_direct 全部 -- * * 0.0.0.0/0 0.0.0.0/0 117 12145 INPUT_ZONES_SOURCE 全部 -- * * 0.0.0.0/0 0.0.0.0/0 112 11773 INPUT_ZONES 全部 -- * * 0.0.0.0/0 0.0.0.0/0 0 0 全部删除 -- * * 0.0.0.0/0 0.0.0.0/0 ctstate 无效 21 4809 全部拒绝 -- * * 0.0.0.0/0 0.0.0.0/0 拒绝-使用 icmp-host-prohibited 链转发(策略接受 0 个数据包,0 字节) pkts 字节数 目标 协议 选择加入 退出 源 目标 0 0 接受全部 -- * * 0.0.0.0/0 0.0.0.0/0 ctstate 相关,已建立 0 0 接受全部 -- lo * 0.0.0.0/0 0.0.0.0/0 0 0 FORWARD_direct 全部 -- * * 0.0.0.0/0 0.0.0.0/0 0 0 FORWARD_IN_ZONES_SOURCE 全部 -- * * 0.0.0.0/0 0.0.0.0/0 0 0 FORWARD_IN_ZONES 全部 -- * * 0.0.0.0/0 0.0.0.0/0 0 0 FORWARD_OUT_ZONES_SOURCE 全部 -- * * 0.0.0.0/0 0.0.0.0/0 0 0 FORWARD_OUT_ZONES 全部 -- * * 0.0.0.0/0 0.0.0.0/0 0 0 全部删除 -- * * 0.0.0.0/0 0.0.0.0/0 ctstate 无效 0 0 拒绝全部 -- * * 0.0.0.0/0 0.0.0.0/0 拒绝-带有 icmp-host-prohibited 链输出(策略接受 29114 个数据包,7722K 字节) pkts 字节数 目标 协议 选择加入 退出 源 目标 29114 7722K OUTPUT_direct 全部 -- * * 0.0.0.0/0 0.0.0.0/0 链 FORWARD_IN_ZONES (1 引用) pkts 字节数 目标 协议 选择加入 退出 源 目标 0 0 FWDI_public 全部 -- + * 0.0.0.0/0 0.0.0.0/0 [转到] 链 FORWARD_IN_ZONES_SOURCE (1 个引用) pkts 字节数 目标 协议 选择加入 退出 源 目标 0 0 FWDI_public 全部 -- * * 156.9.122.0/24 0.0.0.0/0 [转到] 链 FORWARD_OUT_ZONES (1 个引用) pkts 字节数 目标 协议 选择加入 退出 源 目标 0 0 FWDO_public 全部 -- * + 0.0.0.0/0 0.0.0.0/0 [转到] 链 FORWARD_OUT_ZONES_SOURCE (1 个引用) pkts 字节数 目标 协议 选择加入 退出 源 目标 0 0 FWDO_public 全部 -- * * 0.0.0.0/0 156.9.122.0/24 [转到] 链 FORWARD_direct (1 个引用) pkts 字节数 目标 协议 选择加入 退出 源 目标 链 FWDI_public(2 个引用) pkts 字节数 目标 协议 选择加入 退出 源 目标 0 0 FWDI_public_log 全部 -- * * 0.0.0.0/0 0.0.0.0/0 0 0 FWDI_public_deny 全部 -- * * 0.0.0.0/0 0.0.0.0/0 0 0 FWDI_public_allow 全部 -- * * 0.0.0.0/0 0.0.0.0/0 0 0 接受 icmp -- * * 0.0.0.0/0 0.0.0.0/0 链 FWDI_public_allow (1 个引用) pkts 字节数 目标 协议 选择加入 退出 源 目标 链 FWDI_public_deny (1 引用) pkts 字节数 目标 协议 选择加入 退出 源 目标 链 FWDI_public_log (1 个引用) pkts 字节数 目标 协议 选择加入 退出 源 目标 链 FWDO_public (2 个引用) pkts 字节数 目标 协议 选择加入 退出 源 目标 0 0 FWDO_public_log 全部 -- * * 0.0.0.0/0 0.0.0.0/0 0 0 FWDO_public_deny 全部 -- * * 0.0.0.0/0 0.0.0.0/0 0 0 FWDO_public_allow 全部 -- * * 0.0.0.0/0 0.0.0.0/0 链 FWDO_public_allow (1 个引用) pkts 字节数 目标 协议 选择加入 退出 源 目标 链 FWDO_public_deny (1 引用) pkts 字节数 目标 协议 选择加入 退出 源 目标 链 FWDO_public_log (1 个引用) pkts 字节数 目标 协议 选择加入 退出 源 目标 链 INPUT_ZONES (1 引用) pkts 字节数 目标 协议 选择加入 退出 源 目标 112 11773 IN_public 全部 -- + * 0.0.0.0/0 0.0.0.0/0 [转到] 链 INPUT_ZONES_SOURCE (1 引用) pkts 字节数 目标 协议 选择加入 退出 源 目标 5 372 IN_public 全部 -- * * 156.9.122.0/24 0.0.0.0/0 [转到] 链 INPUT_direct (1 引用) pkts 字节数 目标 协议 选择加入 退出 源 目标 链 IN_public (2 个引用) pkts 字节数 目标 协议 选择加入 退出 源 目标 117 12145 IN_public_log 全部 -- * * 0.0.0.0/0 0.0.0.0/0 117 12145 IN_public_deny 全部 -- * * 0.0.0.0/0 0.0.0.0/0 117 12145 IN_public_allow 全部 -- * * 0.0.0.0/0 0.0.0.0/0 3 252 接受 icmp -- * * 0.0.0.0/0 0.0.0.0/0 链 IN_public_allow (1 引用) pkts 字节数 目标 协议 选择加入 退出 源 目标 93 7084 接受 tcp -- * * 0.0.0.0/0 0.0.0.0/0 限制:平均 25/分钟 突发 100 0 0 接受 tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 ctstate 新 0 0 接受 tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 ctstate 新 0 0 接受 udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:123 ctstate 新 0 0 接受 tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:88 ctstate 新 0 0 接受 udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:88 ctstate 新 0 0 接受 tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:636 ctstate 新 0 0 接受 tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 ctstate 新 0 0 接受 tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:53 ctstate 新 0 0 接受 udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:53 ctstate 新 0 0 接受 tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:389 ctstate 新 0 0 接受 tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 ctstate 新 0 0 接受 tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:7902 ctstate 新 0 0 接受 tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8014 ctstate 新 0 0 接受 tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:7903 ctstate 新 0 0 接受 tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8089 ctstate 新 0 0 接受 tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:463 ctstate 新 0 0 接受 tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:7899 ctstate 新 0 0 接受 tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:7898 ctstate 新 0 0 接受 tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:7900 ctstate 新 0 0 接受 udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:52311 ctstate 新 0 0 接受 tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 ctstate 新 0 0 接受 tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:7901 ctstate 新 0 0 接受 tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:1584 ctstate 新 0 0 接受 tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:1585 ctstate 新 0 0 接受 udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:463 ctstate 新 0 0 接受 tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 ctstate 新 链 IN_public_deny (1 引用) pkts 字节数 目标 协议 选择加入 退出 源 目标 链 IN_public_log (1 引用) pkts 字节数 目标 协议 选择加入 退出 源 目标 链 OUTPUT_direct (1 引用) pkts 字节数 目标 协议 选择加入 退出 源 目标
答案1
这似乎是允许此类流量的规则:
Chain IN_public_allow (1 references)
pkts bytes target prot opt in out source destination
93 7084 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 25/min burst 100
从 INPUT 链开始:
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
28874 7345K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
205 36869 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
117 12145 INPUT_direct all -- * * 0.0.0.0/0 0.0.0.0/0
117 12145 INPUT_ZONES_SOURCE all -- * * 0.0.0.0/0 0.0.0.0/0
112 11773 INPUT_ZONES all -- * * 0.0.0.0/0 0.0.0.0/0
注意 INPUT_ZONES_SOURCE 和 INPUT_ZONES_SOURCE。INPUT_direct 为空,因此在拒绝/驳回任何内容之前什么都没有。
Chain INPUT_ZONES_SOURCE (1 references)
pkts bytes target prot opt in out source destination
5 372 IN_public all -- * * 156.9.122.0/24 0.0.0.0/0
Chain INPUT_ZONES (1 references)
pkts bytes target prot opt in out source destination
112 11773 IN_public all -- + * 0.0.0.0/0 0.0.0.0/0 [goto]
两个链都调用了 IN_public。在本例中,源位于 156.9.1220/24,因此使用了 INPUT_ZONES_SOURCE。如果没有,INPUT_ZONES 将被调用并产生相同的结果。基本上,INPUT_ZONES_SOURCE 在此配置中不执行任何操作,但如果规则发生变化,则其中一个配置中 [goto] 的存在可能会有所不同。
Chain IN_public (2 references)
pkts bytes target prot opt in out source destination
117 12145 IN_public_log all -- * * 0.0.0.0/0 0.0.0.0/0
117 12145 IN_public_deny all -- * * 0.0.0.0/0 0.0.0.0/0
117 12145 IN_public_allow all -- * * 0.0.0.0/0 0.0.0.0/0
IN_public_log 和 IN_public_deny 为空,因此不执行任何操作。因此达到 IN_public_allow:
Chain IN_public_allow (1 references)
pkts bytes target prot opt in out source destination
93 7084 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 25/min burst 100
所有 IP 和所有 tcp 端口均可接受,但有一定的速率限制。由于 INPUT_ZONES,这适用于所有源,而不仅仅是 156.9.122.0/24,因此情况似乎比您想象的更糟糕。
免责声明:以编程方式生成的 iptables 规则让我的眼睛流血,所以我很可能是错的。
答案2
在我的测试中,Redhat 提供的这条规则无效。由于该规则似乎不再存在于 STIG 文档中,因此我将其删除。
[root@d1dd-trdev-rv01 ~]# cat /etc/firewalld/direct.xml
<?xml version="1.0" encoding="utf-8"?>
<direct>
<rule priority="0" table="filter" ipv="ipv4" chain="IN_public_allow">-p tcp -m limit --limit 25/minute --limit-burst 100 -j INPUT_ZONES</rule>
</direct>
[root@d1dd-trdev-rv01 ~]#防火墙-cmd——重新加载
Error: COMMAND_FAILED: Direct: '/usr/sbin/iptables-restore -w -n' failed: iptables-restore: line 3 failed
请注意,下面的方法不起作用。留下以供参考。
我今天从 Redhat 得到确认,@Michael Hampton 指出的规则实际上来自/etc/firewalld/direct.xml,这是 STIG 文档中的一个错误。文档建议使用这个(注意 ACCEPT)
<?xml version="1.0" encoding="utf-8"?>
<direct>
<rule priority="0" table="filter" ipv="ipv4" chain="IN_public_allow">-p tcp -m limit --limit 25/minute --limit-burst 100 -j ACCEPT</rule>
</direct>
何时应使用此功能(请注意 INPUT_ZONES)
<?xml version="1.0" encoding="utf-8"?>
<direct>
<rule priority="0" table="filter" ipv="ipv4" chain="IN_public_allow">-p tcp -m limit --limit 25/minute --limit-burst 100 -j INPUT_ZONES</rule>
</direct>