我已将 sshd 配置为位于不同的端口上。我已经使用 firewalld 打开了那个端口:
$ sudo firewall-cmd --zone=public --add-port=22000/tcp --permanent
Run Code Online (Sandbox Code Playgroud)
列表规则显示端口 22000 是开放的:
$ sudo firewall-cmd --permanent --zone=public --list-all
public (default)
interfaces:
sources:
services: dhcpv6-client ssh
ports: 22000/tcp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
Run Code Online (Sandbox Code Playgroud)
但是我无法从远程主机登录到端口 22000。如果我使用 iptables,它可以工作:
$ sudo iptables -I INPUT -p tcp --dport 22000 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
我现在可以登录了。但是如何使用 Firewalld 打开端口?
编辑:根据要求:
$ sudo firewall-cmd --get-default-zone
public
Run Code Online (Sandbox Code Playgroud)
和:
$ firewall-cmd --get-active-zones
public
interfaces: eth0 eth1
Run Code Online (Sandbox Code Playgroud) 我有一个在主机上运行的 docker 容器,其中一些端口映射到主机上的端口。
docker run -d -p 9009:9009 someserver
除了 80、443 和 22,我希望这台机器与 Internet 防火墙隔离。
但我仍然希望主机内的进程能够连接到 9009。
我有点震惊地发现 docker 似乎完全绕过了丢弃数据包的任何防火墙规则。
我尝试在 centos 7 上使用firewalld和iptables来阻止除 80、443 和 22 之外的所有内容。不知何故,我仍然能够从主机外部访问 docker 端口映射容器(端口 9009)!我发现的一些解决方案似乎完全弄乱了 docker 的路由——要么使 docker 容器无法访问互联网或其他什么。
我的情况可能吗?
这似乎在问同样的问题:https : //security.stackexchange.com/questions/66136/docker-port-forwarding-exposure
我有一个在 virt-manager QEMU/KVM 虚拟机上运行的 Windows 客户机。
我的主 NICeno1位于br1使用我的主机 IP 地址配置配置的网桥中。该 VM 连接到所述网桥。
我的主机防火墙处于默认配置:默认区域:FedoraWorkstation
如果我停止firewalld(并iptables显示空的防火墙规则),来宾将正常工作。不关闭防火墙,我的客人无法与外部网络通信。(它可以 ping,但不能发出 DNS 请求或 TCP 连接。)
如何配置防火墙以允许完全访问来宾?
该论坛帖子建议使用以下 Bash 脚本iptables:
#!/bin/sh
# If I put bridge0 in trusted zone then firewalld allows anything from
# bridge0 on both INPUT and FORWARD chains !
# So, I've put bridge0 back into the default public zone, and this script
# adds rules to allow anything to and from …Run Code Online (Sandbox Code Playgroud) 在 CentOS 7 上,我安装并设置了 firewalld,如下所示:
sudo firewall-cmd --zone=drop --permanent --add-service=ssh)sudo firewall-cmd --set-default-zone=drop)我采用了上述方法,因为我想删除除我配置的请求(ssh、http 等)之外的所有传入请求。但是,我发现我无法再 ping CentOS 服务器,我相信这是因为默认区域被删除。
我的问题很简单。任何人都可以说明我如何编辑拖放区的配置,以便它允许我从外部 ping 服务器?
非常感谢。我是防火墙、网络等方面的新手,但我希望这对某人来说是一个容易回答的问题:)
我会在一开始就承认我是在找到答案并想与其他人分享之后才提出这个问题的。如果这是不好的形式,那么我真诚地道歉,我愿意接受有关以正确方式分享这些来之不易的信息的建议。如果这是一个重复,请关闭它并将访问者指向原始问题。
那么,如何配置 firewalld(在我的情况下,使用 CentOS 7.6)来阻止除特定端口之外的所有传出流量,同时还允许 localhost 访问其自己的任何本地端口?
我从这个开始:
# First, allow outbound traffic for all allowed inbound traffic
firewall-cmd --direct --add-rule ipv4 filter OUTPUT 0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allow outbound HTTP, HTTPS, DNS
firewall-cmd --direct --add-rule ipv4 filter OUTPUT 1 -p icmp -m icmp --icmp-type=ping -j ACCEPT
firewall-cmd --direct --add-rule ipv4 filter OUTPUT 1 -p tcp -m tcp --dport 53 -j ACCEPT
firewall-cmd --direct --add-rule ipv4 filter OUTPUT 1 -p udp --dport 53 -j ACCEPT
firewall-cmd …Run Code Online (Sandbox Code Playgroud) 我有一个带有多个虚拟机(来宾)的 KVM 服务器(主机)。
我的目标是我的主机将端口 222 转发到运行 ssh 服务的来宾的端口 22。
这工作...
iptables -I OUTPUT -d 0.0.0.0/0 -j ACCEPT
iptables -I FORWARD -d 0.0.0.0/0 -j ACCEPT
iptables -I INPUT -d 0.0.0.0/0 -j ACCEPT
iptables -t nat -I PREROUTING -d 0.0.0.0/0 -p tcp --dport 222 -j DNAT --to-destination 10.1.0.9:22
Run Code Online (Sandbox Code Playgroud)
这行不通...
firewall-cmd --permanent --zone=public --direct --add-rule ipv4 filter OUTPUT 0 -d 0.0.0.0/0 -j ACCEPT
firewall-cmd --permanent --zone=public --direct --add-rule ipv4 filter FORWARD 0 -d 0.0.0.0/0 -j ACCEPT
firewall-cmd --permanent --zone=public …Run Code Online (Sandbox Code Playgroud) firewalld ×6
iptables ×4
firewall ×2
linux ×2
centos ×1
centos-7 ×1
docker ×1
fedora-22 ×1
forwarding ×1
linux-kvm ×1
localhost ×1
networking ×1
ping ×1
ssh ×1
virt-manager ×1