标签: firewalld

防火墙 CentOS 7 伪装

我正在尝试在 firewalld 中执行与此 iptables 规则等效的操作

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

firewalld centos7

9
推荐指数
2
解决办法
4万
查看次数

尝试启用或取消屏蔽 firewalld 的访问被拒绝

我的防火墙目前处于非活动状态。

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)

firewall firewalld centos7

9
推荐指数
2
解决办法
6万
查看次数

如何检查firewalld是否阻止传入的IP地址?

我有带 firewalld 的 CentOS 7。我安装了 fail2ban 并使用 firewallcmd-new 操作。我在fail2ban 日志中看到禁止,如果它们被阻止,我想检查firewallcmd。我该怎么做?

fail2ban firewalld

9
推荐指数
1
解决办法
3万
查看次数

使用 firewalld 将所有端口打开到特定 IP

我在一台红帽 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)

但是我收到了一个无效的端口错误 *

有谁知道并可以告诉我如何正确地做到这一点?

firewalld

9
推荐指数
1
解决办法
3万
查看次数

centOS 7 firewallD 删除直接规则

将系统从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

但没有效果。

我现在能做什么?

firewalld centos7

8
推荐指数
1
解决办法
3万
查看次数

在内存关键服务器上替代 Firewalld?

我在 DigitalOcean 上买了一个 512MB 的 VPS。目前,我使用 Firewalld 来允许/拒绝访问某些端口(可能 22、80、443 是开放的)。它使用大约 25-30MB 的内存。

编辑:不要忘记我只有 489MB 的可用内存,其中 50MB 已被使用。因此,如果我切换到其他轻量级替代方案,我可能会节省 15-20MB。

那么,真的有必要使用Firewalld吗?或者我可以使用诸如 iptables 之类的东西(顺便说一句,我以前从未使用过它)。两者之间有什么重大区别吗?如何配置 iptables 以关闭除端口 22、80、443 之外的所有端口?

我问是因为我什至必须考虑服务器安全性。因为不能仅仅为了节省几 MB 而损害服务器安全性。

我读过这个线程,它说

如果可能,您应该使用新的 firewalld 系统

security linux iptables firewalld

8
推荐指数
1
解决办法
1087
查看次数

从 iptables 迁移到firewalld:注释规则

我正在使用 Centos 7 从 iptables 迁移到firewalld。在过去,我曾经在 中编写(永久)iptables 规则/etc/sysconfig/iptables,这也用于放置前面带有#( 的注释,以提醒我们为什么我们限制这个或那个 ip , ETC)。

现在,似乎当前(永久)配置是从/etc/firewalld/文件(尤其是/etc/firewalld/zones/*.xml)中读取的。我想我可以在那里添加 xml 注释,但似乎好的做法不是直接编辑这些文件,而是通过firewall-cmd(不?)。

因此,我不确定哪种是向规则添加注释的标准或推荐方法。

有什么建议么?

编辑:作为记录,我已经验证 xml 注释不会在firewall-cmd修改后保存。

linux iptables firewalld

8
推荐指数
1
解决办法
8243
查看次数

有没有办法限制与 firewalld 的连接尝试?

在我们的 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)

rate-limiting firewalld

7
推荐指数
2
解决办法
2万
查看次数

使用 firewall-cmd 进行 ssh 端口转发

我正在尝试通过 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)

linux port-forwarding ssh-tunnel firewalld

7
推荐指数
2
解决办法
2万
查看次数

为什么centos 7上不在防火墙开放端口的端口可以从外部访问?

我有一个使用 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)

networking linux centos firewalld centos7

7
推荐指数
2
解决办法
7615
查看次数