修复Oracle MySQL 安全漏洞(CVE-2024-20975)

发布于:2025-04-16 ⋅ 阅读:(37) ⋅ 点赞:(0)

项目场景:

有些小伙伴在不想升级mysql的情况下
可以使用 firewalld 增强防火墙策略的方式进行修复


问题描述

在这里插入图片描述


解决方案:

可以使用 firewalld 或 iptables 限制ip以及端口访问,以下用 firewalld 举例

1.要查看 firewalld 的状态,可以使用以下命令:

sudo firewall-cmd --state

这将显示防火墙的当前状态。如果防火墙正在运行,输出将是:

running

如果防火墙没有运行,则会显示:

not running

此外,你还可以使用以下命令来查看防火墙的详细信息,包括当前使用的区域和规则:

sudo firewall-cmd --list-all

这个命令会显示当前默认区域的所有配置项,包括已允许的服务、开放的端口和其他规则。

2.启动防火墙

sudo systemctl start firewalld

如果需要重新启用防火墙在系统启动时自动启动:

sudo systemctl enable firewalld

3.限制端口访问的基本操作(我这边使用的是方法4)

方法 1:关闭特定端口
如果想要关闭某个特定端口,可以使用 --remove-port 选项。例如,如果要关闭端口 8080:

sudo firewall-cmd --zone=public --remove-port=8080/tcp --permanent

这将移除 TCP 协议下的 8080 端口,并使修改永久生效(即重启防火墙后仍然有效)。

要应用更改,需要重新加载 firewalld:

sudo firewall-cmd --reload

方法 2:打开特定端口
如果想要打开特定端口,可以使用 --add-port 选项。例如,要打开 8080 端口:

sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent

同样,这会使该端口在指定区域内永久打开。记得执行 reload 来应用更改。

sudo firewall-cmd --reload

方法 3:拒绝访问特定端口
如果你希望完全拒绝某个端口的访问,可以使用 rich rules(复杂规则)来配置。例如,拒绝 8080 端口的访问:

sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" port protocol="tcp" port="8080" reject' --permanent

方法 4:允许特定IP访问某端口
如果想让某些 IP 地址能够访问某个端口,而其他所有人都不能访问,可以使用 rich rules 来限制。例如,只允许 192.168.1.100 访问端口 8080:

sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="8080" accept' --permanent

这样只有 192.168.1.100 可以访问 8080 端口,其他所有地址的访问都会被拒绝。

总结
通过 firewalld,你可以非常灵活地管理端口访问权限。常用的操作包括:

  • 使用 --add-port 和 --remove-port 来打开或关闭端口。 使用 rich rules
  • 来实现更加精细的端口访问控制,如按 IP 地址、协议或端口拒绝或接受流量。

不要忘记在更改配置后使用 --reload 命令使配置生效。