Shorewall
碼頭工人和牆
我在我的伺服器上使用Shorewall作為簡單的獨立防火牆,並且也想使用Docker。
通過使用 Docker 容器及其埠重定向,docker 設置了自己的 iptables 規則/鏈,如果重新啟動shorewall,這些規則/鏈將被終止。所以容器將變得不可訪問。
是否有人在重新啟動岸牆時設法保存/恢復 docker 規則,或者是否有人有其他解決方法?
也可以看看:
以下配置更改應確保 Docker 和 Shorewall 主機之間的流量。在 Shorewall 4.5.21.9 上測試,但應適用於最新版本:
/etc/shorewall/shorewall.conf
確保啟用了 IP 轉發(大多數配置項是 Yes/No,但這個是“On”):
IP_FORWARDING=On
/etc/shorewall/masq
為您的私有 Docker 網路啟用偽裝(NAT)(如果您使用不同的網路,即您使用 啟動 docker
--bip=#.#.#.#/#
,則相應地進行更改)。更改eth0
為具有外部連接的主機上的任何介面:#INTERFACE:DEST SOURCE eth0 172.17.0.0/16
/etc/shorewall/interfaces
添加一個介面條目,以便 Shorewall 知道該
dock
區域與哪個介面相關:#ZONE INTERFACE OPTIONS dock docker0
/etc/shorewall/zones
創建一個新區域;注意,
docker
太長會導致“無效的區域名稱”錯誤。#ZONE INTERFACE dock ipv4
/etc/shorewall/策略
您可能希望允許 Docker 容器與主機和Internet 通信,所以這是一個很好的起點:
#SOURCE DEST POLICY # ...(other policies)... dock all ACCEPT # ...(other policies, catch-all)...
如果您還沒有使用 to 打開它,您可能還需要一個類似的來自to
ACCEPT
的流量策略。fw``dock``fw``all
您可以根據需要在策略或規則文件中進一步加強這一點。例如,上面沒有明確允許外部流量到達您的 Docker 容器;檢查您的其他區域/政策/規則。