Centos

在安裝了 firewalld 的 CentOS 上啟用 ipsec、ah 和 esp

  • March 18, 2019

在我的 CentOS 上,我執行了防火牆,並且我的 eth0 在預設區域中。我使用 dockers 為我的服務進行通信,並且在 dockers 中我啟用了加密。Docker 創建一個覆蓋網路並使用 IPSEC。但是 firewalld 會斷開 IPSEC 連接。我找到了一個連結,其中包含大約 5-6 個 IPSEC 工作命令,如果我播放這些命令,一切正常。這些列在此連結https://www.centos.org/forums/viewtopic.php?t=56130

我不清楚我的 nic eth0 所在的預設區域如何,我必須修改 dmz 區域。偽裝和4500埠有什麼用?

firewall-cmd --zone=dmz --permanent --add-rich-rule='rule protocol value="esp" accept'

firewall-cmd --zone=dmz --permanent --add-rich-rule='rule protocol value="ah" accept'

firewall-cmd --zone=dmz --permanent --add-port=500/udp 

firewall-cmd --zone=dmz --permanent --add-port=4500/udp 

firewall-cmd --permanent --add-service="ipsec"

firewall-cmd --zone=dmz --permanent --add-masquerade

偽裝規則告訴系統在傳出連接上啟用 nat,這是使用私有內部定址的典型網路。這是一個在技術上與 ipsec 無關的路由規則。當一側或兩側位於其他路由器之後並且沒有自己的可路由 IP 地址時,埠 4500 用於 ipsec nat 遍歷。每個網卡屬於一個區域,區域預先配置了規則。internal、dmz 和 public 是完全不同的。

引用自:https://unix.stackexchange.com/questions/385068