关闭公开可见性。 管理员-设置-通用-可见性与访问控制,限制可见性级别勾选【公开】项。
–如果选中,则只有管理员能够创建公开群组、项目和片段。此外,个人资料仅对经过身份验证的用户可见。
登录失败速率限制。 /etc/gitlab/gitlab.rb
1 2 3 4 5 6 7 8 9 gitlab_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 // 重启服务