最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

docker的iptables策略詳解和用戶自定義策略的添加方式

 更新時(shí)間:2024年10月10日 11:06:46   作者:玄德公筆記  
在Docker環(huán)境下,直接修改iptables以允許特定主機(jī)訪問(wèn)指定端口時(shí),需要考慮Docker自身的iptables規(guī)則,Docker通過(guò)修改nat表的PREROUTING鏈和filter表的FORWARD鏈來(lái)處理外部對(duì)Docker容器的訪問(wèn),繞過(guò)了filter表的INPUT鏈

1. 需求

需求:

iptables增加策略,允許指定主機(jī)訪問(wèn)本機(jī)的指定端口,但是該端口是docker容器提供的服務(wù)。

2. 分析

不想了解原理,直接操作的可以跳過(guò)本節(jié)

2.1 緣起

  • 如果不是docker,我們可以這樣寫(xiě):
iptables -I INPUT -p tcp --dport 80 -j DROP
iptables -I INPUT -s 10.10.181.198 -p tcp --dport 80 -j ACCEPT
  • 但是docker建立了自己的iptables規(guī)則,將繞過(guò)filter表的INPUT鏈,接下來(lái)我們分析docker的iptables規(guī)則:

2.2 docker的iptables規(guī)則

  • 但是對(duì)于docker,訪問(wèn)則繞過(guò)了filter表的INPUT鏈
  • 而是通

注意:但是本機(jī)訪問(wèn)docker服務(wù)或容器間互訪,依然通過(guò)的是filter表的INPUT鏈

1)nat表

查看iptables的nat表,內(nèi)容如下:

[root@liubei-test nginx01]# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
DOCKER     all  --  anywhere             anywhere             ADDRTYPE match dst-type LOCAL

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
DOCKER     all  --  anywhere            !loopback/8           ADDRTYPE match dst-type LOCAL

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  --  172.17.0.0/16        anywhere
MASQUERADE  all  --  172.20.0.0/16        anywhere
MASQUERADE  all  --  172.19.0.0/16        anywhere
MASQUERADE  all  --  172.29.0.0/16        anywhere
MASQUERADE  all  --  192.168.176.0/20     anywhere
MASQUERADE  tcp  --  192.168.176.2        192.168.176.2        tcp dpt:netopia-vo2
MASQUERADE  tcp  --  172.29.0.2           172.29.0.2           tcp dpt:20090
MASQUERADE  tcp  --  172.29.0.2           172.29.0.2           tcp dpt:10090
MASQUERADE  tcp  --  172.29.0.2           172.29.0.2           tcp dpt:lrp
MASQUERADE  tcp  --  172.20.0.2           172.20.0.2           tcp dpt:http
MASQUERADE  tcp  --  172.19.0.2           172.19.0.2           tcp dpt:http

Chain DOCKER (2 references)
target     prot opt source               destination
RETURN     all  --  anywhere             anywhere
RETURN     all  --  anywhere             anywhere
RETURN     all  --  anywhere             anywhere
DNAT       tcp  --  anywhere             anywhere             tcp dpt:http to:172.20.0.2:80

1.Chain PREROUTING 將請(qǐng)求轉(zhuǎn)發(fā)到DOCKER鏈處理:

DOCKER all -- anywhere anywhere ADDRTYPE match dst-type LOCAL
  • ADDRTYPE:iptables的一個(gè)擴(kuò)展模塊,用于根據(jù)地址類(lèi)型進(jìn)行匹配。
  • dst-type LOCAL:表示目標(biāo)地址必須是本地地址

2.Chain DOCKER 修改了目標(biāo)地址:

DNAT tcp -- anywhere anywhere tcp dpt:http to:172.20.0.2:80

2)filter表

[root@liubei-test src]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  10.10.87.18          anywhere             tcp dpt:2375
DROP       tcp  --  anywhere             anywhere             tcp dpt:2375

Chain FORWARD (policy DROP)
target     prot opt source               destination
DOCKER-USER  all  --  anywhere             anywhere
DOCKER-ISOLATION-STAGE-1  all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
DOCKER     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
DOCKER     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
DOCKER     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
DOCKER     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain DOCKER (4 references)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             172.18.0.2           tcp dpt:http

Chain DOCKER-ISOLATION-STAGE-1 (1 references)
target     prot opt source               destination
DOCKER-ISOLATION-STAGE-2  all  --  anywhere             anywhere
DOCKER-ISOLATION-STAGE-2  all  --  anywhere             anywhere
RETURN     all  --  anywhere             anywhere

Chain DOCKER-ISOLATION-STAGE-2 (2 references)
target     prot opt source               destination
DROP       all  --  anywhere             anywhere
DROP       all  --  anywhere             anywhere
RETURN     all  --  anywhere             anywhere

Chain DOCKER-USER (1 references)
target     prot opt source               destination
RETURN     all  --  anywhere             anywhere

1.因?yàn)閚at表修改了訪問(wèn)的目標(biāo)地址,因此不再由filter表的INPUT鏈處理,而是交給了filter表的FORWARD鏈處理

2.FORWARD鏈會(huì)將請(qǐng)求依次交給如下鏈處理

注意的是,iptables的規(guī)則是匹配到即跳出。

DOCKER-USER

  • 作用:允許用戶在此自定義規(guī)則

Chain DOCKER-ISOLATION-STAGE-1

  • 選擇交給Chain DOCKER-ISOLATION-STAGE-2 處理
  • 作用:主要用于實(shí)現(xiàn)Docker容器之間的網(wǎng)絡(luò)隔離

DOCKER

  • docker自動(dòng)創(chuàng)建的iptables規(guī)則

3. 操作

如上文,我們只需修改預(yù)留給我們的filter表的DOCKER-USER鏈即可

iptables -I DOCKER-USER -p tcp --dport 80 -j DROP
iptables -I DOCKER-USER -s 10.10.181.201 -p tcp --dport 80 -j ACCEPT

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

  • 一文詳解如何獲取docker鏡像中的jar包

    一文詳解如何獲取docker鏡像中的jar包

    本人在工作中遇到了需要在docker查看jar這種操作,查看了許多資料,終于還是找到了,下面這篇文章主要給大家介紹了關(guān)于如何獲取docker鏡像中jar包的相關(guān)資料,需要的朋友可以參考下
    2024-05-05
  • 阿里云CentOS 6.5 安裝Docker詳細(xì)步驟

    阿里云CentOS 6.5 安裝Docker詳細(xì)步驟

    這篇文章主要介紹了阿里云CentOS 6.5 安裝Docker的相關(guān)資料,現(xiàn)在都是云時(shí)代和大數(shù)據(jù)時(shí)代,希望大家也能跟著時(shí)代的步伐,需要的朋友可以參考下
    2016-10-10
  • Docker安裝部署neo4j的實(shí)戰(zhàn)過(guò)程

    Docker安裝部署neo4j的實(shí)戰(zhàn)過(guò)程

    Docker是一種容器化技術(shù),可以在Linux系統(tǒng)上部署應(yīng)用程序,下面這篇文章主要給大家介紹了關(guān)于Docker安裝部署neo4j的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • 如何查看docker run啟動(dòng)參數(shù)命令(推薦)

    如何查看docker run啟動(dòng)參數(shù)命令(推薦)

    這篇文章主要介紹了如何查看docker run啟動(dòng)參數(shù)命令,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 如何在docker中安裝seata

    如何在docker中安裝seata

    文章介紹了如何在Docker中安裝Seata,包括下載鏡像、運(yùn)行容器、配置數(shù)據(jù)庫(kù)、修改配置文件、啟動(dòng)Seata以及在微服務(wù)項(xiàng)目中使用Seata的步驟,感興趣的朋友跟隨小編一起看看吧
    2025-11-11
  • docker部署gitlab實(shí)踐

    docker部署gitlab實(shí)踐

    這篇文章主要介紹了docker部署gitlab實(shí)踐,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2026-03-03
  • 樹(shù)莓派安裝Docker的方法步驟

    樹(shù)莓派安裝Docker的方法步驟

    這篇文章主要介紹了樹(shù)莓派安裝Docker的方法步驟,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • 關(guān)于docker清理Overlay2占用磁盤(pán)空間的問(wèn)題(親測(cè)有效)

    關(guān)于docker清理Overlay2占用磁盤(pán)空間的問(wèn)題(親測(cè)有效)

    使用Docker過(guò)程中,長(zhǎng)時(shí)間運(yùn)行服務(wù)容器,導(dǎo)致不能進(jìn)行上傳文件等操作,今天通過(guò)本文給大家詳細(xì)介紹下docker清理Overlay2占用磁盤(pán)空間的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2022-03-03
  • 最新評(píng)論

    茂名市| 海淀区| 松溪县| 滦平县| 合川市| 景东| 蒙山县| 沾益县| 罗定市| 宜昌市| 汉川市| 西平县| 武陟县| 彭州市| 龙州县| 鄂州市| 开原市| 商都县| 类乌齐县| 永川市| 鹤峰县| 沐川县| 正阳县| 泊头市| 威远县| 商水县| 香港| 靖远县| 长乐市| 南木林县| 建德市| 曲松县| 牙克石市| 陇西县| 安庆市| 临漳县| 巫山县| 图木舒克市| 庆城县| 夏津县| 化州市|