Ubuntu16.04下使用ufw保护docker容器
ufw屏蔽服务器非docker容器应用端口没有任何问题。问题出在屏蔽不了容器应用对应端口。排除了“ufw使用不当”、“docker-compose.yml端口映射不正确”等原因,Goole之,solve,and整理输出文档。
1、修改ufw默认配置
vim /etc/default/ufw
#把DEFAULT_FORWARD_POLICY修改为
DEFAULT_FORWARD_POLICY=“ACCEPT”
重新加载 uwf reload
2、修改Docker读取iptables默认配置
vi /etc/default/docker
在DOCKER_OPTS中增加参数--iptables=false
确认/lib/systemd/system/docker.service文件中,启动参数局否带有$DOCKER_OPTS
没有的话可修改为如下
EnvironmentFile=-/etc/default/docker
ExecStart=/usr/bin/dockerd -H fd:// $DOCKER_OPTS
3、修改/etc/ufw/before.rules,NAT配置
vim /etc/ufw/before.rules
在`*filter`前面添加下面内容
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING ! -o docker0 -s 172.17.0.0/16 -j MASQUERADE
COMMIT
service docker restart永久生效。
全力以赴不留遗憾