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,达到了安全控制的目的.