在docker中调整iptbles白名单限制访问机器
  devRyPL1fOHO 2023年11月02日 29 0
1.docker默认的流量走向

根据内容大概得知访问容器内的端口是需要通过DOCKER-USER表,因此限制访问容器端口的白名单IP就可以通过在 DOCKER-USER表中添加规则就可以限制其他IP进行访问

2.牛刀小试
[root@localhost docker_iptables]# ls -l                                                             
total 12                                                                                            
-rw-r--r-- 1 root root  197 Aug 18 17:48 iplist_docker                                              
-rw-r--r-- 1 root root 1678 Aug 18 17:40 iptables_docker_user.sh                                    
-rw-r--r-- 1 root root   33 Aug 18 17:35 port_list
  • iplist_docker 存放限制的IP白名单
10.10.8.2/32                                                                                        
10.10.9.2/32
  • port_list 存放允许白名单访问的容器暴露的端口
9092
19848
3306
18848                                                                                               
15672                                                                                               
9090
  • iptables_docker_user.sh 存放生成iptables的脚本命令
iptables -F DOCKER-USER

for i in `cat iplist_docker`;do iptables -D DOCKER-USER -s $i -p tcp --dport 9092 -j ACCEPT ;done
for i in `cat iplist_docker`;do iptables -D DOCKER-USER -s $i -p tcp --dport 19848 -j ACCEPT ;done
for i in `cat iplist_docker`;do iptables -D DOCKER-USER -s $i -p tcp --dport 3306 -j ACCEPT ;done
for i in `cat iplist_docker`;do iptables -D DOCKER-USER -s $i -p tcp --dport 18848 -j ACCEPT ;done
for i in `cat iplist_docker`;do iptables -D DOCKER-USER -s $i -p tcp --dport 15672 -j ACCEPT ;done
for i in `cat iplist_docker`;do iptables -D DOCKER-USER -s $i -p tcp --dport 9090 -j ACCEPT ;done

for i in `cat iplist_docker`;do iptables -I DOCKER-USER -s $i -p tcp --dport 9092 -j ACCEPT ;done
for i in `cat iplist_docker`;do iptables -I DOCKER-USER -s $i -p tcp --dport 19848 -j ACCEPT ;done
for i in `cat iplist_docker`;do iptables -I DOCKER-USER -s $i -p tcp --dport 3306 -j ACCEPT ;done
for i in `cat iplist_docker`;do iptables -I DOCKER-USER -s $i -p tcp --dport 18848 -j ACCEPT ;done
for i in `cat iplist_docker`;do iptables -I DOCKER-USER -s $i -p tcp --dport 15672 -j ACCEPT ;done
for i in `cat iplist_docker`;do iptables -I DOCKER-USER -s $i -p tcp --dport 9090 -j ACCEPT ;done

for i in `cat port_list`;do iptables -D DOCKER-USER -s 0.0.0.0/0 -p tcp --dport $i -j DROP;done
for i in `cat port_list`;do iptables -A DOCKER-USER -s 0.0.0.0/0 -p tcp --dport $i -j DROP;done
  • 执行 iptables_docker_user.sh 脚本可生成的结果
[root@localhost docker_iptables]# iptables -nvL DOCKER-USER
Chain DOCKER-USER (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     tcp  --  *      *       10.10.9.2            0.0.0.0/0            tcp dpt:9092
    0     0 ACCEPT     tcp  --  *      *       10.10.8.2            0.0.0.0/0            tcp dpt:9092
    0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:9092
    0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:19848
    0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:3306
    0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:18848
    0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:15672
    0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:9090
3.注意事项

1). 新建容器后DOCKER-USER会新增一条RETURN�的策略在表内最底层,需要将新增容器的访问策略添加到脚本内,执行脚本刷新访问策略 2). DOCKER-USER 只能限制IP访问容器暴露的端口,宿主机的服务无法进行限制,需要通过INPUT进行限制

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  HJwyUgQ6jyHT   2024年05月31日   34   0   0 dockerwebhook
  zNRyot8onCGb   2024年05月31日   37   0   0 容器docker
  zNRyot8onCGb   2024年05月31日   30   0   0 容器docker