關于在firewall防火墻無法阻止Docker 容器映射端口被外部訪問問題的回顧
這個問題是很早之前處理的,我自己已經沒有印象了,今天同事拿了一個處理安全的文檔來找我,上面赫然出現了我的名字,比較懵逼。。。
這個問題的現象實際上是 docker映射的端口,通過firewalld 防火墻禁用端口不生效,外部還是能訪問到,公司在進行安全掃描的時候總是被抓。。。。
在firewalld內部的實現 依賴了一部分 iptables 的基礎組件,目前我理解的是 iptables 規則的優先級要高于 firewalld規則。
docker中,默認是使用了 iptables 做網絡請求的路由,所以暴露容器端口時會默認 在 filter 路由表中添加 白名單規則。
因此,通過firewalld 禁用的 端口 不生效。
簡單點的做法就是 將docker的啟動服務 增加 --iptables=false 參數 關閉掉 docker 使用iptables的網絡路由。這時候 容器與宿主機之間的交互是可以任意進行的,然后通過firewalld 的規則 ,進行處理 宿主機與外部網絡之間的 網絡路由關系。
亦或者是分析 filter 網絡路由表,刪除掉對應的規則,然后重新添加合適的規則進行處理,這樣的話,稍微麻煩一點。。。容易頭大
努力讓自己變得不那么low

浙公網安備 33010602011771號