docker 环境下的 iptables 复杂配置

news/2024/10/2 6:40:47

最近在项目中,遇到了一个比较辣手的 iptables 规则配置问题。记录一下

简化一下问题:
本文中使用到 docker-compose 服务启动示例如下,虚拟机 IP 为 192.168.111.138

services:db:image: mariadb:ltscontainer_name: mysql_zdprestart: alwaysports:- "3306:3306"environment:MARIADB_ROOT_PASSWORD: 123456

有一个跑在容器中的 mysql 服务,使用 iptables 配置,期望让外界访问不了

先从 PREROUTING 链开始分析

iptables -t nat -L PREROUTING -vn


分析可知,所有进入PREROUTING的链,都被 DOCKER 截胡了;

那么,再看一下 DOCKER 链是怎么处理的?

可以看出来,此处将本来访问本机 3306 端口的流量,直接转到了容器内的地址 172.18.0.2:3306

接下来,由于 IP变了,所有接下来的请求,就需要通过 FORWARD链来处理了,而不是 INPUT 链。

根据如上信息,可以看出来,所有发往 docker容器的请求,都是优先通过 DOCKER-USER,所有只要在这个上面,给他拒掉就行了,命令如下

iptables -I DOCKER-USER -p tcp --dport 3306 -j DROP

这个时候,你在外边机器,telnet 3306 端口,发现就不通了。

但是,如果你在服务器本机访问,发现依然可以访问的通

这是为什么呢?我在上面,已经把 iptables 给禁掉了,为什么还能通呢?根据这个大佬的文章解释https://chennima.github.io/blackout-docker-container-with-iptables
我们先查看下,从本机访问的流量,到底被 iptables 转到哪里去了?

根据如上信息,发现又被转到 docker 去了。

参考文献

  1. https://www.cnblogs.com/xiongzaiqiren/p/iptables.html
  2. https://www.cnblogs.com/guangdelw/p/17440552.html
  3. https://chennima.github.io/blackout-docker-container-with-iptables

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/55528.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

天下良仓订单导入功能开发解析——生鲜配送供应链系统_杭州生鲜配送系统之升鲜宝_全国首创,简单、方便、高校,无须api 接口对接,少看脸色。

天下良仓_学校食材教育系统_订单导入功能开发解析——生鲜配送供应链系统_杭州生鲜配送系统之升鲜宝_全国首创,简单、方便、高校,无须api 接口对接,少看脸色。对接“杭州天下粮仓系统”的API接口有其好处与坏处。以下是一些常见的优缺点分析: ### 好处1. **自动化和效率提升…

Go plan9 汇编:说透函数栈

原创文章,欢迎转载,转载请注明出处,谢谢。0. 前言 函数是 Go 的一级公民,本文从汇编角度出发看看我们常用的一些函数在干什么。 1. 函数 1.1 main 函数 在 main 函数中计算两数之和如下: package mainfunc main() {x, y := 1, 2z := x + yprint(z) }使用 dlv 调试函数(不了…

Rust China Conf 2024 震撼来袭,INFINI Pizza 搜索引擎重磅亮相!

随着 Rust 语言以其在性能、安全性和并发性方面的卓越表现,赢得了全球开发者的青睐,Rust 社区正迎来前所未有的发展机遇。在这个充满活力与潜力的背景下,Rust China Conf 2024 震撼来袭! Rust 大会介绍 Rust 大会即将于 9 月 7 日 - 8 日在上海盛大举办。作为年度国内规模最…

winshark 过滤包

包协议 Http,TCP,UDP,这几个, 游戏是tcp 加心跳包,和http多一些 点击capture filter 新增 ip host=47.96.185.162 之前一个个比对,查看服务器地址,如果游戏是杭州的, 那服务器机房在杭州 阿里巴巴,就没错。 https://site.ip138.com/47.96.185.162在mumu模拟器上,选择…

unity学习笔记(三)

综合练习小案例 玩家控制 基本流程设定移速(全局,以便在unity界面中直接修改)(如public float speed = 5;)将移动单独封装成方法在移动方法中完成获取输入、设置移动动画、设置移动时朝向以及移动角色private void Move(){//获取输入int inputX = (int)UnityEngine.Input.…

2024 年 13 个适用于 Linux 的最佳照片图像编辑器

2024 年 13 个适用于 Linux 的最佳照片图像编辑器 在本文中,我回顾了各种 Linux 发行版上可用的一些最佳照片编辑软件。这些不是唯一可用的照片编辑器,但却是 Linux 用户最流行和最常用的照片编辑器之一。 1. GIMP 首先,在列表中,我们有 GIMP,一个免费、开源、跨平台、可扩…

设置IIS支持ashx

打开【处理程序映射】 默认界面如下(是不支持处理ashx的):如果需要设置能处理ashx,需要开启ASP.NET 4.8再打开【处理程序映射】,如下:

Openshift 3.11单机版 离线安装

Openshift 3.11单机版 离线安装 ‍ 前置条件虚拟机: 建议系统内存>=6G,CPU>=4。 镜像仓库:在虚拟机上能够访问到该镜像仓库,如果没有,推荐使用harbor自建。 docker:虚拟机上需要安装docker,这里使用的是18.09版本。离线安装可参考 docker 离线安装 或自行下载rpm包…