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