- 关闭公开可见性。
管理员-设置-通用-可见性与访问控制,限制可见性级别勾选【公开】项。
–如果选中,则只有管理员能够创建公开群组、项目和片段。此外,个人资料仅对经过身份验证的用户可见。
登录失败速率限制。
/etc/gitlab/gitlab.rb1
2
3
4
5
6
7
8
9gitlab_rails['rack_attack_enabled'] = true
gitlab_rails['rack_attack_git_basic_auth'] = {
'enabled' => true,
'ip_whitelist' => ["127.0.0.1"],
'maxretry' => 2, # 最大允许失败尝试次数
'findtime' => 12000, # 时间窗口(秒),在此时间内统计失败尝试
'bantime' => 3600 # 账户锁定的持续时间(秒)
}限制同一个IP 3小时内只能登录失败两次。
sudo gitlab-ctl reconfigure // 重载配置
sudo gitlab-ctl restart // 重启服务
- 对多次尝试的IP段封禁。
1 | jq -r 'select(.path=="/users/sign_in") | .remote_ip' /var/log/gitlab/gitlab-rails/production_json.log | sort | uniq -c | sort -nr |
对统计出来的IP,筛选出可疑IP,通过IP段封禁。
或者直接取消锁定配置
编辑 /opt/gitlab/embedded/service/gitlab-rails/config/initializers/8_devise.rb (可能是其他数字前缀)
将 unlock_strategy 设为 :none
lock_strategy 设为 :none
这样就不会爆破后Lock并下线,可以强制用户开2FA。
sudo gitlab-ctl reconfigure // 重载配置
sudo gitlab-ctl restart // 重启服务