记录一次gitlab提示Forbidden的问题

问题描述

公司的代码托管在基于docker自建的gitlab上,突然有一天同事反馈说gitlab私服的域名时页面提示Forbidden。但是使用内网ip+端口可以访问。

原因查询

经过google及查询官方文档电梯直达,是因为gitlab的防攻击策略导致的,gitlab使用rack_attack做了并发访问的限制

解决办法

修改/etc/gitlab/gitlab.rb配置 由于此文件我已经挂载到本地了 ,所以直接找到对应的目录里进行修改

查找gitlab_rails[‘rack_attack_git_basic_auth’]关键词

1
2
3
4
5
6
7
#gitlab_rails['rack_attack_git_basic_auth'] = {
#  'enabled' => true,
#  'ip_whitelist' => ["127.0.0.1"],
#  'maxretry' => 10, #限制每个ip的git http身份验证尝试次数
#  'findtime' => 60, #60秒后重置每个ip的身份验证
#  'bantime' => 3600 # 禁止一个ip一个小时
#}

将以上内容取消注释修改为以下配置

1
2
3
4
5
6
7
 gitlab_rails['rack_attack_git_basic_auth'] = {
   'enabled' => true,
   'ip_whitelist' => ["127.0.0.1","gitlab部署ip地址"],
   'maxretry' => 200,
   'findtime' => 5,
   'bantime' => 60
 }

配置后进入gitlab容器里执行gitlab-ctl reconfigure即可。