NASK
V2EX  ›  问与答

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

  •  
  •   NASK · May 3, 2023 · 3861 views
    This topic created in 1284 days ago, the information mentioned may be changed or developed.

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

    16 replies  •  2023-05-04 13:54:08 +08:00
    storyxc
    storyxc
    May 3, 2023
    1
    看下你 iptables ,docker 建立端口映射直接用的是 iptables ,所以如果 iptables 放行了,ufw 就控制不了
    wdlth
    wdlth
    May 3, 2023
    2
    这个以前就有人踩过坑,https://www.v2ex.com/t/466666 。

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

    另外不要依赖主机防火墙,太多种场景失效了。使用云 VPC 防火墙。
    qq565425677
    qq565425677
    May 3, 2023
    7
    震惊,我之前也不知道,多亏看了老哥的帖子。另外 fail2ban 也是因为 docker 默认用的 forward 导致禁了某 ip ,这个 ip 还是能访问 docker -p 的容器
    DonaidTrump
    DonaidTrump
    May 3, 2023
    8
    破解版的 navicat 里面有病毒?
    kaedeair
    kaedeair
    May 3, 2023 via Android
    9
    可以用 docker-compose 组容器集群,容器间可以通过容器名进行 dns 解析,这样他们就可以在同一网段自己玩,不担心外部干扰了,需要外面访问就再加一个补充的 yml ,追加映射端口,不用的时候重新 update 就行了
    opengps
    opengps
    May 3, 2023
    10
    80 开着,查下网站里有没有被注入脚本木马,我曾经被黑的一次是传入了一个.asp 的黑客工具网页,然后发现黑客工具真的牛逼,直接执行 sql 把我主数据库 bak 后提供了对外下载连接
    ysc3839
    ysc3839
    May 3, 2023 via Android❤️1
    11
    印象中 ufw 配合 Docker 用挺多坑的,我自己是换成了 firewalld
    NASK
    NASK
    OP
    May 3, 2023 via Android
    12
    @swulling 谢谢,按你的方法已经把端口堵上了
    ktqFDx9m2Bvfq3y4
    ktqFDx9m2Bvfq3y4
    May 4, 2023 via iPhone
    13
    问下 OP 数据库放 docker 是生产环境的吗?
    NASK
    NASK
    OP
    May 4, 2023 via Android
    14
    @Chad0000 不是,项目是自己写的拿来练手的,还不完善,数据库被删了可以重新建。
    cslive
    cslive
    May 4, 2023
    15
    docker 自动开放端口,ufw 看不出来的,在 iptables 可以看到是开放的,用云厂商提供的安全端口策略
    cokyhe
    cokyhe
    May 4, 2023 via Android
    16
    我去 赶紧去查查 docker 的端口去
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1460 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 15:53 · PVG 23:53 · LAX 07:53 · JFK 10:53
    ♥ Do have faith in what you're doing.