我添加了许多类似这样的丰富规则:
firewall-cmd --permanent --zone="thezone" --add-rich-rule='rule family=ipv4 source address=1.2.3.4 reject'
Run Code Online (Sandbox Code Playgroud)
现在我想清除/删除我的“thezone”区域中的所有丰富规则。
另外,您尝试删除行的行:
firewall-cmd --permanent --zone="thezone" --remove-rich-rule='rule family=ipv4 source address=1.2.3.4 reject'
Run Code Online (Sandbox Code Playgroud)
或者
firewall-cmd --permanent --zone="thezone" --remove-rich-rule='rule family=ipv4 source address=1.2.3.4 accept'
Run Code Online (Sandbox Code Playgroud)
或者
firewall-cmd --permanent --zone="thezone" --add-rich-rule='rule family=ipv4 source address=1.2.3.4 accept'
Run Code Online (Sandbox Code Playgroud)
使用 firewall-cmd --reload 仍然没有成功。
谁能告诉我如何清除所有内容或用一种方法告诉我我做错了什么?
使用 CentOS 7,我尝试使用firewall-cmd --zone=public --add-port=443/tcp --permanent将 443 添加到我允许的端口。不幸的是,这会引发错误ALREADY_ENABLED: 443:tcp。但是当我使用firewall-cmd --list-ports它时并没有显示在列表中(“80/tcp 3000/tcp 26900/tcp 26900/udp”)。
我想这个问题是由 firewall-cmd 和 iptables 之间的冲突引起的。但我不知道如何调试它,以及这是否可能。
调用firewall-cmd --list-all结果如下表:
public
target: default
icmp-block-inversion: no
interfaces:
sources:
services: ssh dhcpv6-client
ports: 80/tcp 3000/tcp 26900/tcp 26900/udp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
Run Code Online (Sandbox Code Playgroud) firewall-cmd --reload和 和有什么区别systemctl restart firewalld?
我在这台机器上安装了 Fedora,它完全是一个网关/防火墙系统。
安装后,我运行了 ' yum upgrade',所以它应该是最新的 Fedora 21 - 我故意有点落后(不是 Fedora 22),所以任何问题都有望得到解决(现在意识到可能我应该有去 Fedora 20 了吗?!)...
一启动,我就用它们各自的 IP 地址配置了盒子中的两个 NIC,重新启动,确认它们没问题,然后开始“防火墙”设置。首先,我跑了:
# firewall-cmd --list-all-zones
Run Code Online (Sandbox Code Playgroud)
我确认 firewalld 使用的接口名称与其他工具一致(与 Fedora 的过去版本不同,例如 19 - 请参阅请求的 FC19 FirewallD 调试帮助:端口不转发)
为了将接口放入正确的区域,我然后运行:
firewall-cmd --permanent --zone=external --change-interface=enp2s0
firewall-cmd --permanent --zone=internal --change-interface=enp5s4
Run Code Online (Sandbox Code Playgroud)
..然后继续尝试设置端口转发等。有几个步骤,例如打开端口,然后转发它。然而,这些都没有奏效。经过一番挖掘,我找到了这篇文章,日期仅在几天前,所以我认为它是最新的 - http://www.certdepot.net/rhel7-get-started-firewalld/ - 并按照其建议进行编辑/etc/sysctl.conf和添加一行阅读net.ipv4.ip_forward=1并用 激活它# sysctl -p,然而,不幸的是,事情实际上“倒退了”......
以前,尝试与转发端口的连接挂起,但现在它们正在返回:
ssh: connect to host 167.101.97.2 port 6543: No route to host
Run Code Online (Sandbox Code Playgroud)
所以,我试图通过取消端口转发和对 sysctl.conf 的编辑来恢复正常,但事情并没有回到“原始”!
令人难以置信的是,我重新启动了,一切都设置为默认值,只是尽可能地安装条件 - 除了那些区域更改;他们会造成什么伤害?!但是当系统恢复时,接口已经回到默认区域!
然后我又重新尝试了一遍。不!无论我做什么,重新启动后接口都停留在“FedoraServer”区域。我已经在命令行中的几个不同位置尝试了 --permanent 。每次响应都是“成功”,然而,每次结果都是它在重新启动后无法生存,即使这是重新启动之间在系统上所做的唯一事情。 …
前段时间我添加了以下本地端口转发规则
firewall-cmd --permanent --add-forward-port=port=80:proto=tcp:toport=3000
Run Code Online (Sandbox Code Playgroud)
我现在如何删除此规则?
简短的问题:
如何仅在单个主机 IP 地址上启用端口转发?
背景故事:
我的 Centos 7 服务器有 5 个 IP 地址。以前,我让 apache 监听所有这些,以及分配给那些用虚拟主机解析的 ip 地址的各种域。
我更改了Listenhttpd.conf 中的指令,以便现在 apache 只侦听 4 个 IP 地址
使用 node.js 我创建了另一个服务器实例,但它不会让我在没有提升权限的情况下监听标准端口 80。我不想以提升的权限运行它。
我想将端口 80 转发到 8080 之类的端口,但仅在一个 ip 地址上,而不会影响指向其他 4 个 ip 地址的流量。重要的是,其他 IP 地址上的流量不受该规则的影响。
我认为解决方案将类似于:
firewall-cmd --zone=public --add-masquerade --permanent
firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=8080 --permanent
Run Code Online (Sandbox Code Playgroud)
我发现的其他问题和答案与源 ip 地址而不是主机 ip 地址有关。