给Docker添加防火墙

/ 0评 / 0

Docker自己添加的规则,是对全世界开放的,明显,我不喜欢那样,什么猫狗都来扫我端口.

先说明下在Docker之前,我的规则是这样的.

可见,我只放通了21777和31024两个端口位置.

安装Docker之后,天然就成了这样.

可见FORWARD规则的DOCKER-USER链,天啊,放通所有连接.

我们安装一个Mongodb.

docker run -d -p 27017:27017 

-v mongo_configdb:/data/configdb 

-v mongo_db:/data/db 

--restart unless-stopped 

--name mongo 

-e MONGO_INITDB_ROOT_USERNAME=admin 

-e MONGO_INITDB_ROOT_PASSWORD=admin 

mongo

发现很Robo顺利连接,而且是不管哪里扫描,都显示端口打开.

添加防火墙规则之前,清空整个DOCKER-USER组,然后运行下面命令创建规则.

iptables -A DOCKER-USER -s 27.115.x.x -p tcp --dport 27017 -j ACCEPT

iptables -A DOCKER-USER -p tcp --dport 27017 -j DROP

iptables -A DOCKER-USER -j RETURN

iptables-save > /etc/iptables/rules.v4

操作结果

现在,只有可信的27.115.x.x这个IP是可以访问服务器的,否则,谁访问都是DROP,达到了安全控制的目的.