我正在尝试在 firewalld 中执行与此 iptables 规则等效的操作
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我的防火墙目前处于非活动状态。
systemctl status firewalld firewalld.service Loaded: masked (/dev/null) Active: inactive (dead)
Run Code Online (Sandbox Code Playgroud)
我使用以下命令启用防火墙
# systemctl unmask firewalld
Run Code Online (Sandbox Code Playgroud)
但我收到了这个错误:
# systemctl unmask firewalld
Failed to issue method call: Access denied
# sudo systemctl restart firewalld
Failed to issue method call: Unit firewalld.service failed to load: No such file or directory.
# sudo systemctl enable firewalld
Failed to issue method call: Access denied
Run Code Online (Sandbox Code Playgroud) 我有带 firewalld 的 CentOS 7。我安装了 fail2ban 并使用 firewallcmd-new 操作。我在fail2ban 日志中看到禁止,如果它们被阻止,我想检查firewallcmd。我该怎么做?
我在一台红帽 7 机器上,我需要打开防火墙上特定 IP 的所有端口。
我试过这个命令:
firewall-cmd --permanent --zone=public --add-rich-rule=' rule family="ipv4" source address="64.39.96.0/20" port protocol="tcp" port="*" accept'
Run Code Online (Sandbox Code Playgroud)
但是我收到了一个无效的端口错误 *
有谁知道并可以告诉我如何正确地做到这一点?
将系统从6.5升级到7后,我开始学习实现动态防火墙,但是错误添加了如下规则
firewall-cmd --permanent --direct --add-rule ipv4 过滤器输出 1 -j DROP
这导致机器将所有输出下降到外部,
我试着用
firewall-cmd --permanent --direct --remove-rule ipv4 过滤器输出 1 -j DROP
欢迎大家回来。
然而,经过
防火墙-cmd --reload
和
firewall-cmd --direct --get-all-rules
,我发现这个规律又自动回来了。
我什至试过
firewall-cmd --complete-reload
但没有效果。
我现在能做什么?
我在 DigitalOcean 上买了一个 512MB 的 VPS。目前,我使用 Firewalld 来允许/拒绝访问某些端口(可能 22、80、443 是开放的)。它使用大约 25-30MB 的内存。
编辑:不要忘记我只有 489MB 的可用内存,其中 50MB 已被使用。因此,如果我切换到其他轻量级替代方案,我可能会节省 15-20MB。
那么,真的有必要使用Firewalld吗?或者我可以使用诸如 iptables 之类的东西(顺便说一句,我以前从未使用过它)。两者之间有什么重大区别吗?如何配置 iptables 以关闭除端口 22、80、443 之外的所有端口?
我问是因为我什至必须考虑服务器安全性。因为不能仅仅为了节省几 MB 而损害服务器安全性。
我读过这个线程,它说
如果可能,您应该使用新的 firewalld 系统
我正在使用 Centos 7 从 iptables 迁移到firewalld。在过去,我曾经在 中编写(永久)iptables 规则/etc/sysconfig/iptables,这也用于放置前面带有#( 的注释,以提醒我们为什么我们限制这个或那个 ip , ETC)。
现在,似乎当前(永久)配置是从/etc/firewalld/文件(尤其是/etc/firewalld/zones/*.xml)中读取的。我想我可以在那里添加 xml 注释,但似乎好的做法不是直接编辑这些文件,而是通过firewall-cmd(不?)。
因此,我不确定哪种是向规则添加注释的标准或推荐方法。
有什么建议么?
编辑:作为记录,我已经验证 xml 注释不会在firewall-cmd修改后保存。
在我们的 CentOS 6 服务器上,我使用了本文中的信息来减少我们服务器上的蛮力 ssh 尝试,特别是速率限制/日志记录部分。有没有办法在 CentOS 7 中使用 firewalld 做同样的事情?我宁愿避免切换回 iptables,因为似乎 firewalld 是操作系统的发展方向。
作为参考,这里是我们使用的iptables中的基本配置(有些值不同)
/sbin/iptables -N LOGDROP
/sbin/iptables -A LOGDROP -j LOG
/sbin/iptables -A LOGDROP -j DROP
iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --set
iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j LOGDROP
Run Code Online (Sandbox Code Playgroud) 我正在尝试通过 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 ×10
centos7 ×4
linux ×4
iptables ×2
centos ×1
fail2ban ×1
firewall ×1
networking ×1
security ×1
ssh-tunnel ×1