跳轉到

九、網路需求與對外連線

這章在講什麼:Agent 需要通到哪裡、防火牆要開哪幾道門。

就像新單位進駐要辦門禁——不是每扇門都要開,只要開對的那兩扇。這章把「哪兩扇、往哪個方向、不開會怎樣」講清楚。

什麼時候看:規劃或申請防火牆規則時。這章主要給網管人員看。

結論先講:Agent 只需要與 Guidant AI 平台雙向通訊,不需要連上網際網路。

只要 Agent 這一台機器連得到平台、平台也連得回這一台機器,就夠了。貴單位其餘的內部主機完全不需要對外開放。


9.1 必要的連線只有兩條

方向要分清楚:一條是 Agent 主動往外撥(像員工打電話回公司),另一條是平台主動連進來(像公司回撥給員工)。兩條是不同的方向,防火牆要分開設定。

   Guidant AI 平台                            Agent 主機
   ┌──────────────┐                        ┌────────────────┐
   │              │   ① Agent 主動連出      │                │
   │              │ ◀──────────────────────│                │
   │              │   443(或平台實際的埠)  │                │
   │              │                        │                │
   │              │   ② 平台連回 Agent      │                │
   │              │ ──────────────────────▶│  8443          │
   └──────────────┘                        └────────────────┘
這條連線 誰發起 連去哪 拿來做什麼 沒開會怎樣
① 連出 Agent 主機 平台 平台的 https 埠(通常 443) 註冊、心跳、領取工作、下載檢測內容 Agent 完全無法上線
② 連入 平台 Agent 主機 8443 平台回頭取證據檔 註冊與心跳正常、平台顯示在線,但下載或預覽證據檔會失敗

⚠️ 只開①不開②是最常見的設定疏漏,因為症狀不會在裝機當下出現——一切看起來都正常,直到有人要下載證據檔。兩條都要開。

說得再白一點:只開①的話,裝機那天您會看到 Agent 上線、心跳正常、檢測任務也跑得動,一切跡象都顯示成功。缺口要等到幾天後有人第一次想打開證據檔時才爆出來,那時已經很難聯想到是裝機當天漏開了一道門。申請防火牆時請一次把兩條都寫進去。

防火牆規則的來源/目的地都可以收窄到平台的實際位址,不需要對整個網際網路開放。

防火牆放行:在防火牆上明確允許「從某位址、到某位址、走某個埠」的連線通過。沒有明確放行的連線,預設一律被擋。


9.2 Agent 還會連到哪些地方

除了平台之外,Agent 會連的都是貴單位自己的機器,不會連到外面:

它會連到哪 什麼時候會連
受測主機 22(SSH)或 5985/5986(WinRM) 執行組態檢測任務時
執行主機 22(SSH) 執行 Nmap 任務時
貴單位自建的 SonarQube/OpenVAS/ZAP 各自的服務埠 執行對應的檢測任務時
貴單位自有的物件儲存 各自的服務埠 有切換過儲存位置時(見 第六章

這些連線的目的地全部由貴單位自己在平台上設定,Agent 不會連到任何未經設定的位址


9.3 封閉網路(air-gap)可以正常運作

封閉網路(air-gap):完全連不到網際網路、只有內部網路的環境。政府與金融機關很常見。

可以,Agent 完全支援。 一般人擔心的那幾件事,逐項回答:

一般人會擔心的事 實際情況
安裝要下載東西嗎 ❌ 不用。出貨包內含全部映像檔,安裝離線自足
檢測引擎要連外下載嗎 ❌ 不用。CINC/GCB 引擎已包在出貨包內
檢測內容(profile)要從網路抓嗎 ❌ 不用。由平台透過既有的加密通道下發(已實測驗證,掃描全程零外部網域連線)
升級要連外嗎 ❌ 不用。新版出貨包用隨身碟帶進來即可
授權要連外驗證嗎 ❌ 不用

唯一需要網際網路的是「安裝 Docker Engine」那一步,而且那一步也有離線做法(見 1.3)。

平台本身若也是落地部署在貴單位內部,那整套系統可以完全不接觸網際網路。

封閉網路的一個注意事項

檢測內容請走平台的「掃描設定檔管理」上傳入庫,不要在任務參數裡填外部網址github.comsupermarket.chef.io 等)——那些位址在封閉網路裡根本解析不出來,任務會直接失敗。上傳入庫之後由平台下發,封閉網路完全可用。


9.4 平台使用自簽憑證時

自簽憑證:自己幫自己簽的身分證明。加密效果一樣,只是沒有公認機構背書,所以瀏覽器會跳警告。

貴單位自建的落地版平台通常就是用自簽憑證,這完全正常。安裝時那道「憑證指紋確認」的流程(見 3.4)已經處理了這件事——您當場核對過的憑證會被存成信任檔,Agent 之後就只認這一張來驗證平台身分。

不需要不應該在 Agent 主機的作業系統層另外安裝平台憑證;系統上也沒有「略過憑證驗證」這種選項。

平台之後若更換了 https 憑證,Agent 會連不上(因為信任檔裡還是舊的那張)。處理方式見 第十一章 11.5


9.5 內部埠不需要開放

Agent 另外還用到三個埠(8333/8888/9333,內建儲存服務自己用的),它們只綁在 127.0.0.1——那是「這台機器自己」的固定位址,外面的機器一律連不到。

防火牆不需要為它們做任何設定,也不應該把它們對外開放。


9.6 檢查連線是否正常

兩個方向各驗一次,缺一不可。

① Agent 連得到平台嗎

這步在做什麼:在 Agent 主機上,試著打一次平台的網址,只看回傳的代碼。

curl -sk -o /dev/null -w '%{http_code}\n' https://<平台位址>/

成功長什麼樣:印出任何一個 HTTP 狀態碼(200302404 都算)——只要有數字回來,就代表連得到。

失敗長什麼樣:印出 000。那代表根本連不上,是網路或防火牆的問題。

② 平台連得到 Agent 嗎

最簡單的方式是在平台的「檔案 Agent 管理」頁按該列的測試連線,回報可達即正常。

也可以從平台主機上自己測——這步在做什麼:從平台那一端試著敲 Agent 的 8443。

curl -sk -o /dev/null -w '%{http_code}\n' https://<Agent位址>:8443/agent-info

🔴 這裡有一個反直覺的地方,請特別留意。

400 是正常的、代表成功。 400 在這裡的意思是「我連到你了,但你沒出示客戶端憑證,所以我拒絕服務」——也就是雙向憑證驗證(兩邊互相出示電子身分證明才放行的加密連線,像門禁卡兩邊都要對得上)確實有在把關。看到 400 請不要以為是壞掉了。

000 才是真的連不到,那才需要去查防火牆。