美文网首页
gitlab机架攻击

gitlab机架攻击

作者: Jack0111 | 来源:发表于2018-04-28 16:12 被阅读0次

    机架攻击

    机架攻击,也被称为Rack :: Attack,是一个rubygem ,旨在保护GitLab能够自定义限制和阻止用户IP。您可以通过限制来自大量请求的IP地址的请求来防止强力密码攻击,刮板或任何其他违规者。如果您发现节流不足以保护您免受滥用客户的侵害,Rack Attack可提供IP白名单,黑名单,Fail2ban风格过滤和跟踪功能。

    默认情况下,用户登录,用户注册(如果启用)和用户密码重置限制为每分钟6个请求。经过6次尝试后,客户必须等待下一分钟才能再次尝试。

    如果您按照官方指南安装或升级了GitLab,则 默认情况下应启用此功能。如果您的实例未暴露给任何传入连接,建议禁用机架攻击。

    有关如何使用这些选项的更多信息,请查看 机架攻击自述文件

    设置 

    Omnibus GitLab

    打开/etc/gitlab/gitlab.rb你的编辑器

    添加以下内容:

    gitlab_rails['rack_attack_git_basic_auth']={'enabled'=>true,'ip_whitelist'=>["127.0.0.1"],'maxretry'=>10,'findtime'=>60,'bantime'=>3600}

    重新配置GitLab:

    sudo gitlab-ctl reconfigure

    可以配置以下设置:

    enabled:默认情况下,它被设置为true。将其设置false为禁用Rack Attack。

    ip_whitelist:将任何IP阻止白名单。它们必须格式化为ruby数组中的字符串。例如,["127.0.0.1", "127.0.0.2", "127.0.0.3"]。

    maxretry:在指定时间内请求的最大次数。

    findtime:在IP被列入黑名单之前,最大的时间失败请求数可以对IP进行计数。

    bantime:列入黑名单的IP将在几秒钟内被阻止的总时间。

    从源安装

    这些设置可以在中找到config/initializers/rack_attack.rb。如果缺少config/initializers/rack_attack.rb,需要执行以下步骤才能启用对GitLab实例的保护:

    在config/application.rb查找并取消注释以下行:

    config.middleware.useRack::Attack

    复制config/initializers/rack_attack.rb.example到config/initializers/rack_attack.rb

    打开config/initializers/rack_attack.rb,查看 paths_to_be_protected并添加您需要保护的任何其他路径

    重新启动GitLab:

    sudo service gitlab restart

    如果你想要更多的限制/轻松的油门规则,编辑 config/initializers/rack_attack.rb和更改limit或period值。例如,如果你设置limit: 3和period: 1.seconds(这将允许每秒3个请求),则更加宽松的节流规则 。您还可以通过添加到paths_to_be_protected 变量来将其他路径添加到受保护的列表中。如果你改变了这些设置,不要忘记重新启动你的GitLab实例。

    通过Redis从Rack Attack中删除阻止的IP 

    如果您想要删除阻止的IP,请按照下列步骤操作:

    查找生产日志中被阻止的IP:

    grep "Rack_Attack" /var/log/gitlab/gitlab-rails/production.log

    由于黑名单存储在Redis中,因此您需要打开redis-cli:

    /opt/gitlab/embedded/bin/redis-cli -s /var/opt/gitlab/redis/redis.socket

    您可以使用以下语法删除该块,替换为列入黑名单的实际IP:

    del cache:gitlab:rack::attack:allow2ban:ban:《ip》

    确认具有IP的密钥不再显示:

    keys *rack::attack*

    或者,将IP添加到白名单以防止它再次被列入黑名单(请参阅设置)。

    故障排除 

    机架式攻击会将负载平衡器列入黑名单 

    如果所有流量似乎来自负载平衡器,机架攻击可能会阻止您的负载平衡器。在这种情况下,您需要:

    配置nginx[real_ip_trusted_addresses]。这将使用户的IP不被列为负载平衡器IP。

    在Rack Attack 设置中将负载均衡器的IP地址列入白名单。

    重新配置GitLab:

    sudo gitlab-ctl reconfigure

    通过Redis移除该块。

    相关文章

      网友评论

          本文标题:gitlab机架攻击

          本文链接:https://www.haomeiwen.com/subject/bjwglftx.html