V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
NASK
V2EX  ›  问与答

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

  •  
  •   NASK · 330 天前 · 2379 次点击
    这是一个创建于 330 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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