我正在尝试通过 ssh 隧道连接到 NAT 后面的服务器:
从笔记本电脑 ssh --> 在防火墙中使用端口转发的主机 --> 直接进入来宾(172.16.0.2,在主机 NAT 后面)。
在主机上使用 iptables - 它会起作用:
# 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 172.16.0.2:22
Run Code Online (Sandbox Code Playgroud)
但是,主机重启时不会保存 iptables,因为 firewalld 服务正在运行(firewalld 是 RHEL 7 中的默认设置)。
所以我正在尝试使用 firewall-cmd进行相同的端口转发。
在主机上使用 firewall-cmd - 它不起作用:
# firewall-cmd --permanent --zone=public …Run Code Online (Sandbox Code Playgroud) 我有一个使用 CentOS 7 的远程 vps,相关firewalld信息如下,firewalld正在积极运行。
[root@doer mydir]# firewall-cmd --get-zone-of-interface=eth0
no zone
[root@ doer mydir]# firewall-cmd --list-ports
You're performing an operation over default zone ('public'),
but your connections/interfaces are in zone 'home' (see --get-active-zones)
You most likely need to use --zone=home option.
3306/tcp
Run Code Online (Sandbox Code Playgroud)
我运行一个带有 Spring Boot 程序的 Docker 容器,该程序监听端口 8080,该端口映射到主机的 9182,9182 不在开放端口列表中,但我仍然可以通过http://HOST_MACHINE_IP:9182访问 Web 服务器, 怎么了?
我添加eth0到公共区域
firewall-cmd --permanent --zone=home --add-interface=eth0
Run Code Online (Sandbox Code Playgroud)
现在
[root@ doer mydir]# firewall-cmd --get-zone-of-interface=eth0
public
[root@ doer mydir]# firewall-cmd --list-ports
3306/tcp …Run Code Online (Sandbox Code Playgroud) 我是 firewallD 的新手并且一直在阅读文档,但我想也许我可以在这里与大家讨论一些事情。所以我看到firewalld现在已经取代了iptables服务作为fedora 18的默认防火墙,它基于服务和区域,而不是直接处理端口。
我对配置防火墙以防止一些常见攻击特别感兴趣,例如端口扫描、Ping Flood 等,以前一直使用 iptables 来定义规则。我的想法是对这个新防火墙做同样的事情。
我见过这个直接命令,它允许将规则直接传递给防火墙,我们可以给它 iptables 参数,但同时 wiki 说使用 **direct ** 设置的任何规则都是临时的,并且会在重新加载防火墙/系统重新启动时闪烁. 有人可以帮助我如何去做吗?因为我将需要这种免受常见攻击的保护才能成为永久规则的一部分。
编辑:更具体地说,我想知道,使用直接命令是添加规则以防止常见攻击的正确方法吗?
提前致谢
操作系统:CentOS 7.0
根据安全扫描的结果,有人建议我们使用防火墙 ( CVE-1999-0524 )阻止 ICMP 时间戳和时间戳回复消息。我已经使用 firewalld 为 SSH 设置了一些基本的 IP 过滤并允许使用 HTTPS,但我对这个感到困惑。
我唯一能想到的是firewall-cmd --add-icmp-block,但我找不到icmptype似乎与时间戳或时间戳回复相关的 。
可用的类型 ( firewall-cmd --get-icmptypes) 如下:
destination-unreachable echo-reply echo-request parameter-problem redirect router-advertisement router-solicitation source-quench time-exceeded.
如何阻止 ICMP 时间戳请求firewalld?
我正在设置Fail2ban来保护ssh,我使用firewalld,我看到很多人推荐anaction = iptables-multiport
使用iptables而不是firewalld的其他解决方案声称它更快或消耗更少的资源。
正如我之前所说,我已经配置了 firewalld(实际上我只是阻止了所有端口,除了我使用的端口花了我 3 分钟),我想知道我是否应该通过设置firewallcmd-ipset而不是上述配置来使用 iptables 或 firewalld (以哪个为准)更快)。
另外我注意到我安装了一个 iptables 包,即使我不记得安装它,但它没有运行,也无法运行。
所以只是为了澄清:
哪个性能更好?
哪个是fail2ban 在centos7 上使用的默认防火墙?
firewalld 会取代 Iptables,还是只是一种不同的交互方式?
先谢谢了!
我正在尝试使用 NGINX 在 CentOS 7.2 上设置 IPv6 Web 服务器。我已经测试了我的 IPv6 连接传出和传入 - 一切正常。我的 IP、AAAA 记录等也很好。基本上一切正常,直到我启用 FirewallD。
我已将其设置为默认为具有 eth0 接口的放置区。我已启用 dhcpv6-client、http、https 和 ssh(ssh 在自定义端口上)。启用防火墙后,没有 IPv6 流量可以离开或进入机器。Traceroute6 到任何东西(甚至网关)只到本地主机。如果我禁用防火墙,一切都很好。
我不知道为什么会这样。我在网上找不到任何东西以使 FirewallD 将相同的 IPv4 配置应用于 IPv6 流量。我个人认为,它会自动执行此操作,因为它的所有命令都与 IP 协议无关。
任何帮助深表感谢。
我正在使用 Firewalld,拖放区是默认区域,并为该区域分配了一个接口。
然后我有丰富的规则来允许一些流量通过放置区,并且我启用了firewall-cmd --set-log-denied=all. 我认为这会记录任何尝试连接到不是来自白名单丰富规则的服务器的内容......但它不会记录。我对服务器运行了端口扫描,并且 /var/log/messages 没有显示任何被拒绝的端口日志。
但是,当我将默认区域设置为 public 并将接口分配给 public 时,它会在我运行另一个端口扫描时记录被拒绝的数据包。
为什么?
我最近使用本教程将全新安装的 CentOS 7 升级到 CentOS 8:
https://www.tecmint.com/upgrade-centos-7-to-centos-8/
我没有安装额外的软件,只有基本安装。升级后,我尝试做的第一件事就是只打开 SSH 和 HTTP 的大门,所以我启用并启动了 firewalld:
systemctl enable firewalld
systemctl start firewalld
systemctl status firewalld
? firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2019-12-24 11:05:50 -02; 10min ago
Docs: man:firewalld(1)
Main PID: 7620 (firewalld)
Tasks: 2 (limit: 17886)
Memory: 22.1M
CGroup: /system.slice/firewalld.service
??7620 /usr/libexec/platform-python -s /usr/sbin/firewalld --nofork --nopid
dez 24 11:05:49 renie.cc systemd[1]: Stopped firewalld - dynamic firewall daemon.
dez 24 …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 Fedora 中实现一个非常简单的防火墙,其中公共互联网可以访问 SSH、HTTP、HTTPS 和 Cockpit,但不能访问其他内容。同时,服务器通过 Docker 运行微服务,可以在端口 8000-8999 上相互通信。
我使用以下命令在新安装的 Fedora 服务器上进行了设置:
firewall-cmd --zone=public --add-service=cockpit
firewall-cmd --zone=public --add-service=http
firewall-cmd --zone=public --add-service=https
firewall-cmd --zone=internal --add-source=192.168.1.65
firewall-cmd --zone=internal --add-source=192.168.1.66
firewall-cmd --zone=internal --add-port=8000-8999/tcp
firewall-cmd --runtime-to-permanent
Run Code Online (Sandbox Code Playgroud)
当我使用 检查我的配置时--list-all,一切看起来都正确:
> firewall-cmd --list-all --zone=internal
internal (active)
target: default
icmp-block-inversion: no
interfaces:
sources: 192.168.1.65 192.168.1.66
services: dhcpv6-client ssh
ports: 8000-8999/tcp
protocols:
forward: no
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
> firewall-cmd --list-all --zone=public
public (active)
target: default
icmp-block-inversion: no
interfaces: enp2s0
sources:
services: …Run Code Online (Sandbox Code Playgroud) 我有以下问题。
我刚刚安装了 DVD CenOS 7。在我启动进入系统后,我通常以 root 用户身份登录。从那里我试图在我的服务器上配置防火墙。
因为我对这一切都比较陌生,所以我只是搜索了一些关于如何启动和管理 Firewalld 的搜索,它似乎是与 CentOS 7 一起使用的预期防火墙软件。
我尝试的第一件事是打字
systemctl status firewalld
Run Code Online (Sandbox Code Playgroud)
作为输出我得到
Warning: iptables not usable, disabling IPv4 firewall.
Warning: ip6tables not usable, disabling IPv6 firewall.
FATAL ERROR: No IPv4 and IPv6 firewall.
ERROR: Raising SystemExit in run_server
Run Code Online (Sandbox Code Playgroud)
我已经尝试重新启动系统,更新它。我重新安装了 iptables 和 firewalld。尝试使用其中任何一个被屏蔽或禁用。这些都没有奏效,但也许我错过了一些东西。
我通常只想设置一个 Teamspeak 服务器供外部使用,当我向防火墙添加特定规则时,该服务器在 Windows 下工作。我想在 CentOS 7 下做同样的事情,主要是出于学习目的或完全熟悉 Linux 作为服务器。