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

原文地址:https://www.cnblogs.com/jiaoyiping/p/9351099.html

时间: 2024-08-30 02:46:04

gitlab的rack-attack机制和如何设置白名单的记录的相关文章

如何设置白名单

要添加或删除白名单,请按以下步骤操作: 1.单击页面上方的"设置"链接,再点击右侧的 "反垃圾设置": 2.在白名单中,输入邮箱地址或域名(地址必须以[email protected]或者domain.com的格式.),点击"添加"按钮,然后点击"保存生效"按钮. 3.如果不需要收到"白名单"中邮箱地址发来的邮件,选中该邮箱地址,并点击"删除选中" 按钮,再选中"保存生效&qu

angularjs中关于跨域设置白名单

在config中注入$sceDelegateProvider服务使用resourceUrlWhitelist([])方法添加白名单 跨域时将method的属性设置为"jsonp"就可以访问了 app.config(["$sceDelegateProvider",function($sceDelegateProvider){ $sceDelegateProvider.resourceUrlWhitelist([ <span style="white-s

Windows7,程序兼容助手:这个程序可能安装不正确(做注册表里设置白名单,软件自身的名字不能带setup)

Windows上有一个很奇怪的一个现象,一个exe只要名字里面带了setup\install之类的,打开exe后立即退出就会弹出下面的窗口. 解决方法: 方法一.更改exe的名字,去掉setup\install,即使是资源文件rc中的setup\install也要去掉. 方法二.在main函数入口处调用下面的函数,将当前exe写入Windows的“注册表白名单”中去,关闭时Windows就不会弹出兼容助手了. [cpp] view plain copy bool RegWritePca() {

MySQL设置白名单教程

1 登录mysql mysql -h host -u username -p password 2 切换至mysql库 use mysql; 3 查看当前允许登录IP及用户 select Host,User from user; 4 删除不必要而表中存在的IP和用户 DELETE FROM user WHERE User='username' and Host='host'; (host值为"%"或空表示所有IP都可登录,一般来说此类行需要删掉) 5 增加需要而表中没有的IP和用户 G

vmware 批量自动删除虚拟机脚本,可以设置白名单

最近因为要重搭容灾环境,之前部署了将近380台的虚拟机其中85%靠上需要回收掉,部分虚拟机需要保留(很烦哎.....),业务部门提供了需要保留的虚拟机的IP,然后保留的大概有60台左右吧(好烦呀),手动回收.....,这可不是俺的风格,来吧,脚本躁动起来吧(https://mianbao.cn.com/thread-358-1-1.html): import os import time import pprint from pysphere import VIProperty  from py

Exchange 2010垃圾邮件功能开启及白名单设置

1. 以管理员权限运行exchange的powershell 2 .启用反垃圾邮件功能 C\:ExchangeInstallPath\Scripts\Install-AntiSpamAgents.ps1 注如果输入之后提示重启传输服务则证明启用是成功的 3. 重启传输服务 运行以下命令 Restart-Service MSExchangeTransport 注:Exchange2016的话要重启前后端传输服务 4. 指定SMTP服务器 请运行以下命令 Set-TransportConfig -I

java 中利用反射机制获取和设置实体类的属性值

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制. JAVA反射(放射)机制:"程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言".从这个观点看,Perl,Python,Ruby是动态语言,C++,Java,C#不是动态语言.但是JAVA有着一个非常突出的动态相关机制:Reflection,用在Java身上指的是我们可

iOS9中如何适配http,Bitcode,设置sina,qq,weChat配置Scheme白名单

iOS9.0SDK在编译的时候,默认所有从NSURLConnection.CFURL和NSURLSession发出的http请求,都改为https请求.由于AFNetworking版本底层是用了NSURLConnection,所以使用AFNetworking的app都将受到影响.对于这个问题的解决办法有三种,一:让服务器更新,使用https,以解析相关的数据. 二:在info.plist做些配置,让其暂时倒回到不安全的网络传输协议(http协议).下面详细来说下这两种方案. 方案一:让服务器更新

PhoneGap 白名单安全机制 navigator.app 加载外部页面返回以及退出介绍

一. Phonegap 白名单安全机制 Phonegap应用的页面大多存在于本地,但有时需要加载外部的Web页面到应用内置的浏览器 视图中已完成特定的应用功能,出于安全性考虑,PhoneGap 设立了白名单安全机制,通过它来 控制能够加载到内置浏览器视图的内容来源. Android 不通过白名单安全机制的话调用外部浏览器 IOS 不通过白名单安全的话 会直接拒绝 二.Android 配置白名单 在res/xml/config.xml这个文件里进行配置 三.IOS 配置 以及 Wp7/wp8配置白