Ubuntu16.04下使用ufw保护docker容器

背景:接管公网服务器后,压力山大,服务器上容器部署了区块链公网节点、矿池等重要服务,不容有失,否则自吻10次都不够。认认真真地从零自学。研究任务一波一波,这不,小白收到了只开放公网服务器指定端口,屏蔽无关端口的任务(需求:公网服务器可以查询公网区块链节点本地数据,外部服务器不能访问)。一番筛选,决定选用一款简单好用的防火墙管理工具ufw。快速学习ufw后,开始小牛试刀。(这里不讨论ufw)。

       ufw屏蔽服务器商非docker容器应用使用端口没有任何问题。问题出在屏蔽不了容器应用对应端口。排除了“ufw使用不当”、“docker-compose.yml端口映射不正确”等原因,Goole之,solve,and整理输出文档。以下方法在半年前亲测可用,写文章没再次验证。

 1、修改ufw默认配置

       vim /etc/default/ufw

#DEFAULT_FORWARD_POLICY修改为

       DEFAULT_FORWARD_POLICY=“ACCEPT”

重新加载   uwf reload  

开放2375端口 ufw allow 2375/tcp

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

 

reboot永久生效。

 

       

猜你喜欢

转载自www.cnblogs.com/zhonghaijing/p/9689401.html