Docker與iptables 只允許特定ip訪問Docker的服務 通過iptables限制docker容器埠
阿新 • • 發佈:2022-05-31
轉載自 https://www.icode9.com/content-3-827289.html
怎樣只允許特定ip訪問Docker的服務?
通過iptables限制docker容器埠
方法一:
Docker與iptables (在DOCKER-USER鏈中處理) Docker至少會在iptables規則中自動安裝兩個新鏈,一個是DOCKER,一個是DOCKER-USER,可以通過如下方式檢視 iptables -S -t nat 檢視DOCKER鏈規則 iptables -S 檢視DOCKER-USER鏈規則 隨著docker版本不同,可能還會有其他鏈,但一般來說,我們應該只修改DOCKER-USER鏈即可。 如果想要對docker埠做訪問限制,可以參考如下規則: #只允許192.168.1.1訪問docker的服務,其中ext_if是你機器上的實際網絡卡名 iptables -I DOCKER-USER -i ext_if ! -s 192.168.1.1 -j DROP #只允許網段192.168.1.0/24 iptables -I DOCKER-USER -i ext_if ! -s 192.168.1.0/24 -j DROP #只允許ip範圍 iptables -I DOCKER-USER -m iprange -i ext_if ! --src-range 192.168.1.1-192.168.1.3 -j DROP 原文連結: Docker and iptables https://docs.docker.com/network/iptables/
方法二:(筆者未證實)
Docker加入自定義iptables規則鏈(新建一個鏈加在FORWARD中進行處理)
https://www.cnblogs.com/jiftle/p/13821394.html
方法三:(筆者未證實)
iptables禁用docker暴露的埠(在nat表的DOCKER鏈中處理)
https://blog.csdn.net/u010544187/article/details/86698201
方法四:(可以用,但是不確定是否合規或潛在風險)
docker 會在iptables上加上自己的轉發規則,如果直接在input鏈上限制埠是沒有效果的。這就需要限制docker的轉發鏈上的DOCKER表。 # 查詢DOCKER表並顯示規則編號 iptables -L DOCKER -n --line-number # 修改對應編號的iptables 規則,這裡添加了允許訪問ip的限制 iptables -R DOCKER 5 -p tcp -m tcp -s 192.168.1.0/24 --dport 3000 -j ACCEPT