WeiNote

yyrcd

gpu

os

pl

2021

Aug 14

2021-08-14 ·

Dockerfile Command

  1. FROM: https://docs.docker.com/engine/reference/builder/#from
    • 可以使用多个From image as name,多阶段构建
  2. 使用 COPY 而不是 ADD: https://docs.docker.com/engine/reference/builder/#copy
    • COPY dest assume 的相对链接是在 workdir
  3. RUN vs CMD

实践:2021-08-13-如何优化 node 项目的 docker 镜像像老板压榨员工一样压榨镜像.pdf

2020

2020

Oct 23

2020-10-23 ·

Docker 绕过 UFW 规则,导致重大安全隐患

Docker publish 的所有端口会绕过 UFW 设定的规则,导致无意公开的内部服务可以被公网访问。 尤其是弱智 mongodb 默认不需要 authentication 就能操作所有 database,因此在不知情的情况下,mongo 裸奔,被黑客攻击,删除数据勒索。

相关case:

防护措施

chaifeng/ufw-docker: To fix the Docker and UFW security flaw without disabling iptables

/etc/ufw/after.rules 最后添加 iptables 代码: 参照 WeiNote - Docker UFW 防护措施 重启

sudo systemctl restart ufw

测试端口 port

nmap命令-----基础用法 - nmap - 博客园

nmap -p 27017 server.com
nmap server.com
  • open / closed: 说明端口开启了
  • filterd: 说明被防火墙屏蔽
telnet server.com 27017

Mongo 安全

mongoDB 数据莫名其妙的没了_技术熊的博客小窝-CSDN博客 config 文件 设置 auth=true,就不会裸奔了,必须要有密码才能访问,否则不需要任何authentication就能操作任何数据库!

port = 27017
bind_ip = 127.0.0.1
auth = true

Docker ports

Use the following format will be more secure

ports:
  - "127.0.0.1:8001:8001"
  1. Compose file version 3 reference | Docker Documentation
  2. Docker EXPOSE a port only to Host - Stack Overflow

查看 docker 更改的 iptables

sudo iptables -L DOCKER
Chain DOCKER (2 references)
target     prot opt source               destination         
ACCEPT     tcp  --  anywhere             172.18.0.2           tcp dpt:27017

to get more information about a container

docker inspect $ID