服务器的数据库被黑了,想问一下如何通过防火墙阻止数据库远程登录?

2023-05-03 18:07:18 +08:00
 NASK

今天登服务器,突然发现自己部署的项目连不上数据库了。然后我第一反应就是把项目重启一下,结果发现 mysql 容器已经停止运行了,并且启动容器后后端项目对应的数据库被删除了。 我的服务器一直是 ssh 密钥登录,并且 ufw 只开放了常用的 80 ,443 ,22 端口,所以我感觉应该不是服务器被黑。 然后我测试了一下 Naviat 远程连接数据库,居然能远程登录( ufw 处于开启状态,,ufw default deny ,并且 ufw 没有开启 3306 端口)。 想问一下 V 友,为什么 ufw 无法控制 docker 容器的端口的入站出站?有没有什么解决的办法👀

2662 次点击
所在节点    问与答
16 条回复
storyxc
2023-05-03 18:23:33 +08:00
看下你 iptables ,docker 建立端口映射直接用的是 iptables ,所以如果 iptables 放行了,ufw 就控制不了
wdlth
2023-05-03 18:28:45 +08:00
这个以前就有人踩过坑,https://www.v2ex.com/t/466666

因为 Docker 默认用的是 iptables FORWARD
你可以去 GitHub 找 ufw-docker 这个 repo 看一下 ufw 的配置。
hefish
2023-05-03 18:48:40 +08:00
一般是用 iptables ,如果云主机提供商额外提供了防火墙服务,那就在防火墙服务里面,把 3306 端口禁止访问。
一般尽量采用白名单的方式来设置防火墙或者 iptables 规则,设置 iptables 的时候要小心,别把自己给禁了。。
hhjswf
2023-05-03 19:11:30 +08:00
MySQL 本身就可以远程登录的 ip 呀?
haigeek
2023-05-03 19:36:24 +08:00
1.可以禁用 docker 的 iptables 然后重启并清除 iptables 规则,用 ufw 开端口访问
2.docker 提供了 DOCKER-USER 组供用户自定义规则,可以在这个组用 iptables 加规则
swulling
2023-05-03 19:48:14 +08:00
额,这个是老问题了。Docker 不被 ufw 托管。

另外不要依赖主机防火墙,太多种场景失效了。使用云 VPC 防火墙。
qq565425677
2023-05-03 19:51:57 +08:00
震惊,我之前也不知道,多亏看了老哥的帖子。另外 fail2ban 也是因为 docker 默认用的 forward 导致禁了某 ip ,这个 ip 还是能访问 docker -p 的容器
tulongtou
2023-05-03 19:58:40 +08:00
破解版的 navicat 里面有病毒?
kaedeair
2023-05-03 19:58:52 +08:00
可以用 docker-compose 组容器集群,容器间可以通过容器名进行 dns 解析,这样他们就可以在同一网段自己玩,不担心外部干扰了,需要外面访问就再加一个补充的 yml ,追加映射端口,不用的时候重新 update 就行了
opengps
2023-05-03 22:07:50 +08:00
80 开着,查下网站里有没有被注入脚本木马,我曾经被黑的一次是传入了一个.asp 的黑客工具网页,然后发现黑客工具真的牛逼,直接执行 sql 把我主数据库 bak 后提供了对外下载连接
ysc3839
2023-05-03 23:11:46 +08:00
印象中 ufw 配合 Docker 用挺多坑的,我自己是换成了 firewalld
NASK
2023-05-03 23:17:23 +08:00
@swulling 谢谢,按你的方法已经把端口堵上了
Chad0000
2023-05-04 04:45:23 +08:00
问下 OP 数据库放 docker 是生产环境的吗?
NASK
2023-05-04 07:23:52 +08:00
@Chad0000 不是,项目是自己写的拿来练手的,还不完善,数据库被删了可以重新建。
cslive
2023-05-04 09:42:16 +08:00
docker 自动开放端口,ufw 看不出来的,在 iptables 可以看到是开放的,用云厂商提供的安全端口策略
cokyhe
2023-05-04 13:54:08 +08:00
我去 赶紧去查查 docker 的端口去

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/937041

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX