mik*_*ike 25 fedora command-line-interface firewalld
在 linux 联网机器上,我想限制允许访问它的“公共”区域(防火墙概念)上的地址集。所以最终的结果是没有其他机器可以访问任何端口或协议,除了那些明确允许的,有点混合
--add-rich-rule='rule family="ipv4" source not address="192.168.56.120" drop'
--add-rich-rule='rule family="ipv4" source not address="192.168.56.105" drop'
Run Code Online (Sandbox Code Playgroud)
上面的问题是,这不是一个真正的列表,它会阻止所有内容,因为如果它的一个地址与另一个地址不同而被阻止,则会产生意外的“全部删除”效果,我将如何“取消阻止”特定的非连续集?source 是否接受地址列表?到目前为止,我在查看文档或谷歌结果时没有看到任何内容。
编辑:我刚刚创建了这个:
# firewall-cmd --zone=encrypt --list-all
encrypt (active)
interfaces: eth1
sources: 192.168.56.120
services: ssh
ports: 6000/tcp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
Run Code Online (Sandbox Code Playgroud)
但是我仍然可以到达端口 6000,因为 .123
我的意图是如果未列出源,则它应该无法到达任何服务或端口
Mic*_*ton 32
根本不需要丰富的规则。
如果要将区域限制为一组特定的 IP,只需将这些 IP 定义为区域本身的源(并删除可能存在的任何接口定义,因为它们会覆盖源 IP)。
不过,您可能不想对“公共”区域执行此操作,因为这在语义上意味着面向公众的服务向世界开放。
相反,请尝试使用不同的区域(例如“内部”)用于最受信任的 IP 地址来访问潜在的敏感服务,例如 sshd。(您也可以创建自己的区域。)
警告:不要将特殊的“可信”区域误认为是正常的“内部”区域。添加到“可信”区域的任何源都将被允许通过所有端口;允许向“受信任”区域添加服务,但这样做没有任何意义。
firewall-cmd --zone=internal --add-service=ssh
firewall-cmd --zone=internal --add-source=192.168.56.105/32
firewall-cmd --zone=internal --add-source=192.168.56.120/32
firewall-cmd --zone=public --remove-service=ssh
Run Code Online (Sandbox Code Playgroud)
这样做的结果将是一个“内部”区域,它允许访问 ssh,但只能从两个给定的 IP 地址访问。要使其持久化,请使用--permanent
附加或更好的方式重新运行每个命令firewall-cmd --runtime-to-permanent
。
归档时间: |
|
查看次数: |
53301 次 |
最近记录: |