docker封禁对外端口映射

docker比linux防火墙规则优先级要高,一旦在docker里面配置了对外服务端口的话在iptable里面封不掉,需要通过下面的方法进行封禁:

这里我的宿主机IP地址是10.5.1.244,docker 内部网络ip段是默认的172.17段的,以下为命令:

注意要先DROP再ACCEPT,即先输入DROP类命令,后输入ACCEPT命令,后续输入的命令在防火墙的规则会更靠上,即更优先生效。

sudo iptables -I DOCKER-USER -p tcp ! -s 10.5.1.244 --dport 3306 -j DROP #非宿主机IP丢弃

sudo iptables -I DOCKER-USER -p tcp -s 172.17.0.0/16 --dport 3306 -j ACCEPT #docker内部ip允许访问

sudo iptables -I DOCKER-USER -p tcp ! -s 10.5.1.244 --dport 6379 -j DROP #非宿主机IP丢弃

sudo iptables -I DOCKER-USER -p tcp -s 172.17.0.0/16 --dport 6379 -j ACCEPT #docker内部ip允许访问

sudo netfilter-persistent save

sudo netfilter-persistent reload

#可以通过下面的命令查看配置结果

sudo iptables -L DOCKER-USER -n --line-numbers

Chain DOCKER-USER (1 references)

num target prot opt source destination

1 ACCEPT 6 -- 172.17.0.0/16 0.0.0.0/0 tcp dpt:7555

2 ACCEPT 6 -- 172.17.0.0/16 0.0.0.0/0 tcp dpt:8072

3 DROP 6 -- !10.5.1.244 0.0.0.0/0 tcp dpt:7555

4 DROP 6 -- !10.5.1.244 0.0.0.0/0 tcp dpt:8072

5 ACCEPT 6 -- 172.17.0.0/16 0.0.0.0/0 tcp dpt:6379

6 DROP 6 -- !10.5.1.244 0.0.0.0/0 tcp dpt:6379

7 ACCEPT 6 -- 172.17.0.0/16 0.0.0.0/0 tcp dpt:3306

8 DROP 6 -- !10.5.1.244 0.0.0.0/0 tcp dpt:3306

9 RETURN 0 -- 0.0.0.0/0 0.0.0.0/0

相关推荐
木头左23 分钟前
Docker容器化技术中的联合文件系统原理探究
docker·容器·eureka
itachi-uchiha1 小时前
Docker部署Hive大数据组件
大数据·hive·docker
deletion丶2 小时前
在 Windows 系统上运行 Docker 容器中的 Ubuntu 镜像并显示 GUI
docker
罗技1235 小时前
我用Amazon Q写了一个Docker客户端,并上架了懒猫微服商店
运维·docker·容器
爱宇阳6 小时前
使用 Docker Compose 部署 Jenkins(LTS 版)持续集成环境
ci/cd·docker·jenkins
背太阳的牧羊人8 小时前
backend 服务尝试连接 qdrant 容器,但失败了,返回 502 Bad Gateway 问题排查
docker·gateway·qdrant
xiaomu_34710 小时前
基于Linux系统docker封装exe
linux·运维·服务器·docker
Hoking18 小时前
Kafka集群部署(docker容器方式)SASL认证(zookeeper)
docker·zookeeper·kafka
Hope Fancy1 天前
macOS 连接 Docker 运行 postgres,使用navicat添加并关联数据库
macos·docker·postgresql
Tom Boom1 天前
Git常用命令完全指南:从入门到精通
大数据·git·elasticsearch·docker·自动化测试框架