为什么默认的mongodb docker实例不安全



我在我的Ubuntu服务器上运行了一个Docker容器。昨天,数据库被黑客入侵,我不明白配置错误的内容。好的,我只是使用默认配置 - 我想这不是最好的方法。但是我认为DB只能从我的内部容器中访问,因为我正在使用Docker。所以这显然是错误的。

我想理解为什么这个docker-compose文件给我一个不安全的mongodb:

version: '3.5'
networks:
  reverse-proxy:
    name: reverse-proxy
    driver: bridge
volumes:
  html:
services:
  nginx-proxy:
    image: jwilder/nginx-proxy
    container_name: nginx-proxy
    networks:
      - reverse-proxy
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /opt/nginx-proxy/vhost.d:/etc/nginx/vhost.d:rw
      - /opt/nginx-proxy/htpasswd:/etc/nginx/htpasswd:ro
      - /opt/nginx/certs:/etc/nginx/certs:ro
      - html:/usr/share/nginx/html
      - /var/run/docker.sock:/tmp/docker.sock:ro
  mongodb:
    container_name: mongodb
    image: mongo:4.0
    networks:
      - reverse-proxy
    restart: unless-stopped
    ports:
      - "27017:27017"
    volumes:
      - /opt/mongo/data:/data/db
      - /restore:/restore 

在我的情况下,我正在使用UFW来管理我的防火墙。事实证明,Docker插入了iptables规则(大概是为了使事情在开发环境中起作用(,绕过UFW的防火墙。看起来27017港口受到UFW的保护,但实际上是在iPtables中打开的。我在以下答复中给出了更多详细信息:

避免最近的Mongo-DB骗局的最简单方法

受此Mongo Hack影响的28,000个有可能正在使用UFW Docker,并且不知道他们的Mongo港口实际上是在他们认为关闭时开放的。使用UFW Docker。

也适用

最新更新