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

相关推荐
专注代码七年7 分钟前
Docker 本地开发环境搭建(MySQL5.7 + Redis7 + Nginx + 达梦8)- Windows11 版 2.0
nginx·docker·容器
帅得不敢出门1 小时前
Docker安装Ubuntu搭建Android SDK编译环境
android·ubuntu·docker
janthinasnail2 小时前
使用Docker安装Stirling-PDF(PDF工具)
docker·pdf
m_136873 小时前
Mac Intel 芯片 Docker 一键部署 Neo4j 最新版本教程
macos·docker·neo4j
Lin_Aries_04214 小时前
在 CentOS 9 上安装 Docker 的完整指南
linux·docker·centos
neo_Ggx234 小时前
MySQL数据库备份攻略:从Docker到本地部署
数据库·mysql·docker
脚大江山稳5 小时前
docker使用nginxWebUI配置
java·docker·容器
startdrift11067 小时前
docker run 命令,不接it选项,run一个centos没有显示在运行,而run一个nginx却可以呢?
nginx·docker·centos
yuxb7316 小时前
Docker学习笔记(二):镜像与容器管理
笔记·学习·docker
Delphi菜鸟17 小时前
docker 部署RustDesk服务
运维·docker·容器