Elasticsearch 中如何限制和指定 IP 位址的訪問?

在現代的微服務架構中,保護系統不受未授權訪問是非常重要的,尤其是在閘道層。 極限閘道(INFINI Gateway)作為我們服務架構的入口,它的安全性直接影響到整個系統的穩定與安全。
極限閘道提供了強大的IP訪問控制功能,允許你靈活地控制哪些IP可以訪問你的服務,以及哪些IP必須被拒絕。
注意:開源非付費版本 Elasticsearch 不具備這個功能。
本文將帶你一步步瞭解如何使用極限閘道來限制或指定允許/拒絕的IP位址,説明你增強網關的安全性。
1. 什麼是IP訪問控制?
IP 存取控制是一種安全機制,它允許你基於用戶端的IP位址來決定是否允許訪問你的服務。 極限閘道通過 ip_access_control 配置來啟用和管理這一功能。 你可以通過設定以下兩種方式來管理客戶端的訪問:
- 白名單:只允許指定的IP位址訪問。
- 黑名單:拒絕指定的IP位址訪問。
這兩種方式可以單獨使用,也可以結合使用,確保只有可信的IP位址能夠訪問你的服務。
2. 如何設定 IP 存取控制?
在極限閘道中,配置IP訪問控制非常簡單。 你只需要在路由配置中增加 ip_access_control 節點,啟用控制功能,並指定需要允許或拒絕的IP位址。
啟用IP存取控制
下面是一個簡單的範例,展示如何啟用IP訪問控制:
router:
- name: my_router
default_flow: async_bulk
ip_access_control:
enabled: true
- 1.
- 2.
- 3.
- 4.
- 5.
在上面的配置中,enabled: true 就是啟用IP訪問控制的關鍵。 之後,你可以選擇進一步配置允許或拒絕的IP位址。
3. 配置白名單:只允許特定IP訪問
如果你希望只允許某些特定IP位址能夠訪問你的服務,可以使用 白名單配置。 這意味著,只有列出的IP位址可以訪問你的閘道服務,其他IP位址會被自動拒絕。
假設你只希望IP位址133.37.55.22能夠訪問服務,其他的IP都不能訪問,配置示例如下:
router:
- name: my_router
default_flow: async_bulk
ip_access_control:
enabled: true
client_ip:
permitted:
- 133.37.55.22
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
在上面的配置中,client_ip.permitted 下列出了被允許訪問的IP位址。 只有IP位址為133.37.55.22的請求會通過,其他IP位址的請求都會被自動拒絕。
實際案例配置截圖:
0
驗證結果如下:
0
0
0
4. 配置黑名單:拒絕特定IP訪問
如果你希望某些特定IP位址不能訪問你的閘道服務,可以使用黑名單配置。 這意味著,列出的IP位址會被拒絕訪問,而其他未列出的IP位址將能夠正常訪問。
例如,假設你希望拒絕IP位址133.37.55.22訪問服務,配置示例如下:
router:
- name: my_router
default_flow: async_bulk
ip_access_control:
enabled: true
client_ip:
denied:
- 133.37.55.22
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
在這個配置中,client_ip.denied 下列出了被拒絕訪問的IP位址。 任何來自 133.37.55.22 的請求都會被閘道直接拒絕,其他 IP 位址的請求則不會受到影響。
實際案例配置截圖參考:
圖片
實際驗證截圖如下:
圖片
由於IP位址被設置為黑名單,導致用戶端寫入報錯。
Error inserting data: AuthorizationException(403, 'Access Forbidden.\n')
- 1.
5. 配置同時使用白名單和黑名單
你也可以將 白名單和 黑名單 結合起來使用。 例如,允許某些特定IP位址訪問,同時拒絕某些其他的IP位址。
假設你想允許 133.37.55.22 訪問,但拒絕 192.168.1.1 的訪問,配置如下:
router:
- name: my_router
default_flow: async_bulk
ip_access_control:
enabled: true
client_ip:
permitted:
- 133.37.55.22
denied:
- 192.168.1.1
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
在這個配置中,133.37.55.22 會被允許訪問,而 192.168.1.1 會被拒絕訪問。
6. 使用IP位址訪問控制的場景
1)保護敏感服務: 如果你有一些只允許特定客戶端訪問的敏感服務,可以通過白名單來確保只有合法的客戶端能夠訪問。
2)防止惡意訪問: 黑名單可以説明你封堵已知的惡意IP位址,防止攻擊者通過嘗試訪問閘道來對系統造成危害。
3)靈活的訪問管理: 你可以根據業務需求動態地調整允許或拒絕的IP位址,確保閘道始終處於安全狀態。
7. 小結
IP 訪問控制是極限閘道提供的一項非常實用的安全功能,它能説明你控制誰能夠訪問你的服務。 通過簡單的配置,你可以指定哪些IP位址可以訪問(白名單),以及哪些IP位址不能訪問(黑名單)。 合理使用這項功能,可以有效地提高系統的安全性,防止未經授權的訪問。