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.rulesNAT配置

 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永久生效。

 

       

原文地址:https://www.cnblogs.com/zhonghaijing/p/9689401.html