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