gitlab的rack-attack機制和如何設置白名單的記錄

目標gitlab是使用源碼安裝的10.5中文版

大綱:

gitlab rack-attack 機制的作用

如何啓用和禁用gitlab的rack-attack機制,以及如何配置白名單

如果一個ip被錯誤地攔截,導致了不能訪問,如何快速地恢復

如果gitlab工作在一個反向代理(或者是負載均衡器)的後邊,會導致的問題和解決的方法

如何寫出一個可以觸發攔截機制的測試用例

正文:

1.gitlab rack-attack 機制的作用

gitlab的rack-attack機制是爲了限制某個ip對gitlab進行基本認證請求的次數,杜絕惡意的攻擊和密碼破解等行爲,通過限制每個ip每分鐘內嘗試的基本認證的次數來實現,如果某個ip進行的基本認證請求的次數超過這個限制,則這個ip的其他的所有的請求都會返回403

2.如何啓用和禁用gitlab的rack-attack機制,以及如何配置白名單

我們使用的是從源碼安裝的gitlab,rack-attack機制默認是啓用的,如果想要禁用掉這個機制,只需要修改 /home/git/gitlab/config/gitlab.yml

將下圖中的enabled改爲false,然後取消註釋即可:

如果想要配置不攔截某個IP地址,則將上邊的ip_whitelist配置取消註釋,將不攔截的ip地址配置進去即可,如果有多個地址的話,中間用逗號進行分隔.

3.如果一個ip被錯誤地攔截,導致了不能訪問,如何快速地恢復
如果一個地址被攔截,則gitlab會將這個攔截的地址寫入redis裏邊,如果想要迅速地恢復這個地址的請求,則將這條攔截的記錄從redis裏邊刪除即可

具體的操作的方法如下:

查看日誌,找到被攔截的IP地址是什麼:

grep "Rack Attach" /日誌目錄/production.log

進入redis :

redis-cli -s /var/run/redis/redis.sock

查看相關的cache key:

keys *rack::attack*

刪除掉該key對應的值:
del cache:gitlab:rack::attack:allow2ban:ban:

4.如果gitlab工作在一個反向代理或者是負載均衡後邊,導致gitlab拿到的請求地址都是反向代理(或者負載均衡器)的IP地址,而不是用戶真實的IP地址,會導致rack-attack起不到我們想要的作用,這時候該如何配置讓gitlab讀取到用戶真實的ip地址來選擇禁用,而不是禁用掉反向代理的地址呢?

補充.....

5.如何寫出一個可以觸發攔截機制的測試用例

補充......

11.x版本開始,rack-attack功能默認都是禁用的了,如果需要這個功能,需要手動修改配置文件來開啓

官方文檔的位置:
https://docs.gitlab.com/ee/security/rack_attack.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章