通过iptables限制docker 容器的运行端口

通过在iptables  DOCKER-USER 添加规则,即可实现所有外部网络都无法访问docker中的服务:

iptables -I DOCKER-USER -i enp0s3 -j DROP


规则:所有从外部网络进入的数据包,直接被丢弃。 DOCKER-USER链是上述FORWARD链中第一个规则匹配的到的链。 外部访问的数据包,其物理输入网口(如ens192),它是对外通信的网口。 我们可以在此,插入只允许某个网络访问,或某个网络不能访问的规则


#方法

yum install -y iptables iptables-services
service iptables save


或者
iptables-save > /etc/sysconfig/iptables
cp /etc/sysconfig/iptables  ~/iptables.bak

#显示DOCKER-USER的链中的规则信息

iptables -nL DOCKER-USER

主机nacos容器的默认访问端口为8848,首先要禁止所有IP访问docker的8848端口

# 在主机10.10.58.137执行如下命令:(ens192 为本机网卡)
#禁止所有IP访问docker的80端口

iptables -I DOCKER-USER -i ens192 -p tcp --dport 8848 -j DROP

配置允许访问的IP,删除DOCKER-USER的链中的默认规则(默认规则允许任意ip访问)
#只允许192.168.3.122访问docker的80端口

iptables -I DOCKER-USER -i ens192 -s 10.10.58.236 -p tcp --dport 8848 -j ACCEPT

#删除DOCKER-USER的链中的默认规则

#删除RETURN的规则

iptables -D DOCK-USER -j RETURN

保存新的DOCKER-USER策略,并设置iptables开机自启
#保存DOCKER-USER策略

service iptables save

#设置iptables开机自启,使策略永久生效

systemctl enable iptables.service
#或者
/etc/rc.d/init.d/iptables save

上一篇:【OceanBase诊断调优】—— 如何查看 Root Service 切换完成的时间点


下一篇:13.4.1 实验1:配置VTP