AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 388073
Accepted
xperator
xperator
Asked: 2012-05-11 13:40:16 +0800 CST2012-05-11 13:40:16 +0800 CST 2012-05-11 13:40:16 +0800 CST

Linux - 抗压工具

  • 772

我有一个运行 Ngix 的 VPS,目前托管了几个网站。如您所知,VPS 资源不足,安全措施应由客户完成。

我刚刚注意到许多压力工具在那里可能会导致网络服务器崩溃或服务器吃掉可能最终挂起的全部资源。我的 Windows 电脑中有 LoadUI。甚至还有类似的在线服务,例如 LoadImpact.com

它甚至不需要同时运行10个或数千个工具,即使是一个孩子也可以在这些工具中输入域名并运行大量并发连接的测试,充分利用服务器带宽、硬件资源等..

我想知道我应该如何防止这些洪水攻击?它应该由 Iptables 处理吗?还是 Nginx?

linux security iptables vps stress-testing
  • 2 2 个回答
  • 609 Views

2 个回答

  • Voted
  1. Best Answer
    symcbean
    2012-05-11T14:13:24+08:002012-05-11T14:13:24+08:00

    你已经在运行 nginx 是一个好的开始——基于事件的服务器对 sloloris 类型的攻击更有弹性。

    尽可能远离您的应用程序来防止 DOS 攻击仍然是一个好主意。下一步是 iptables。

    您需要考虑如何对攻击进行分类并将它们与实际流量区分开来——创建新连接的速度是一个非常好的指标——您可以配置 iptables 以基于每个 ip 限制新连接:

    iptables -A INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --set
    iptables -A INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent \
             --update --seconds 30 --hitcount 80  -j DROP
    

    (当速率每 30 秒上升到 80 以上时丢弃新的连接请求)

    您可以限制每个 IP 地址的并发连接数:

    iptables -A INPUT -p tcp --syn --dport 80 -m connlimit \
          --connlimit-above 20 -j REJECT --reject-with tcp-reset
    

    限制带宽也是一个好主意,具体取决于您的流量配置文件,比如可用带宽的 10% - 这是使用 tc而不是 iptables 完成的。

    然后,对于通过的连接,HTTP 请求中可能存在可以识别攻击的特征(引荐来源网址、请求的 URL、用户代理、接受语言......)你选择什么具体值并不重要对于现在的这些——你只需要确保你有合适的机器,你可以在攻击的第一个迹象时快速更改参数。虽然您可以在网络服务器上处理请求,但更好的解决方案是使用 iptables 阻止来自远程 IP 地址的访问——fail2ban 是将日志数据桥接到 iptables 配置的工具。

    当然,对于大规模的 DDOS,这不会解决攻击者用您的服务器忽略的数据包填充您的互联网管道的问题——因为您需要与您的上游提供商联系。

    • 3
  2. Eric
    2012-05-11T13:46:20+08:002012-05-11T13:46:20+08:00

    我建议研究的两件事是 iptables 速率限制和fail2ban。Fail2ban 会给你一些像样的自动阻止 IP 的访问过多的服务器,并允许你自定义你希望它们被禁止的时间。Iptables 速率限制将允许您限制进入服务器的所有类型的流量。我在这里找到了一篇不错的文章。但是,如果您进行基本的 Google 搜索,您会看到更多。

    编辑:虽然我没有使用 nginx 的个人经验,但我确实看到它有一个你也应该研究的HttpLimitReqModule 。

    • 1

相关问题

  • 在 SOHO 环境中实施的最佳 VPN 技术是什么?[关闭]

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve