本文概述
- 1.安装mod_qos模块
- 2.配置模块
某些服务器对超时的容忍度可能比其他服务器小, 这完全取决于你的配置, 但是算法可以通过自定义超时来弥补这一点。这种攻击根本不会消耗很多资源或带宽。负载影响很小, 但是http(s)服务退出的速度非常快。 mod_qos为你提供了一些机会, 可以根据带宽限制扩展服务器上已使用的连接数, 以保护其免受攻击。该软件包可在Ubuntu存储库中找到, 因此在此环境下安装和配置应该非常容易。
在这篇简短的文章中, 我们将向你介绍如何在Ubuntu 16.04服务器中安装和配置apache的QoS模块。
1.安装mod_qos模块 第一步, 通过终端访问服务器, 更新存储库, 并使用以下命令安装模块:
# Update repossudo apt-get update# Install the apache extensionsudo apt-get install libapache2-mod-qos
安装模块后, 它将自动注册并启用自身。服务质量实现控制机制, 以为不同的用户, 应用程序和数据连接提供不同的优先级。它用于保证数据资源的一定水平的性能。服务质量一词通常用于广域网协议(例如ATM)和电话(例如VoIP)领域, 但很少与Web应用程序结合使用。 mod_qos是Apache Web服务器的服务质量模块, 实现了可为不同HTTP请求提供不同级别的优先级的控制机制。 Web应用程序需要QoS的示例情况:
- 如果应用程序的请求处理需要很长时间, 例如消耗大量资源, 则会消耗更多资源。当请求处理包括耗时的数据库查询时。
- 由于许多并发客户端上载或下载数据, 导致链接功能超额订购。
- 攻击者对Web服务器的渗透(DoS)。
对于基于Plesk的服务器
通过命令行安装模块后, 模块会自动注册并激活自身, 因此, 如果你尝试访问基于Plesk的服务器上的apache设置, 则会在列表中看到扩展名:
文章图片
因此, 你可以仅通过Plesk图形用户界面上的复选框来动态地启用/禁用它。
2.配置模块 安装模块将创建一个配置文件, 该文件存储在apache的mods-available目录中, 你可以使用nano快速编辑它, 方法是:
# Edit the qos.conf file with your favorite terminal editor, we'll use nanonano /etc/apache2/mods-available/qos.conf
这将在编辑器上打开模块的conf文件, 在这里你需要将其内容更改为以下内容, 根据需要优化和更改这些值:
【如何在Ubuntu 16.04上使用服务质量(QoS)模块保护Apache服务器免受DoS攻击(拒绝服务)攻击】简单地说, 我们正在做的是限制来自单个IP的同时入站连接的数量。这将自动阻止用户在同一设备/网络上同时创建多个x个请求(在QS_SrvMaxConnPerIP中指定)。只要真实人在同一服务器上的请求超过x个, 只要他们的连接不能以Slowloris攻击的相同方式工作, 那么这根本不是问题, 因此, 如果你的应用程序可以从比在此属性中指定, 只要不是慢速HTTP请求, 他们就可以访问它。太好了!!
<
IfModule qos_module>
# handle connections from up to 100000 different IPsQS_ClientEntries 100000# allow only 50 connections per IPQS_SrvMaxConnPerIP 50# limit maximum number of active TCP connections limited to 256MaxClients 256# disables keep-alive when 180 (70%) TCP connections are occupiedQS_SrvMaxConnClose 180# minimum request/response speed # (deny slow clients blocking the server, keeping connections open without requesting anythingQS_SrvMinDataRate 150 1200<
/IfModule>
这些可能需要根据服务器的特性进行调整, 例如MaxClients可能需要是ThreadsPerChild的整数倍。 Apache 2.4不允许mod_qos设置QS_SrvMinDataRate。在单独的包含文件或主Apache配置文件中, 将这些或类似设置添加到Apache配置中。重新启动服务器, 并验证此方法是否可以缓解Slowloris攻击。
将更改保存到文件, 然后使用以下命令重新启动apache:
sudo service apache2 restart
现在, 应该启用扩展并使用给定的设置。但是, 我该如何测试它有效!首先, 你的网站应该可以在浏览器中访问, 如果可以运行, 则说明配置已经正确设置。对于功能齐全的测试, 建议你使用任何工具对配置的服务器进行慢速HTTP攻击, 我们编写了一篇非常有趣的教程, 介绍了如何在Kali Linux中使用SlowHTTPTest在服务器上运行此攻击, 并且可以在这里找到它。
编码愉快!
推荐阅读
- 编程(这是未来最重要的技能吗())
- 如何在C语言中打印带有星号或自定义字符的空心方形/矩形/矩形图案
- 如何使用sfTemplateEngine在Symfony 1.4中渲染和获取纯PHP文件的输出(非部分输出)
- Android Beacon库-继续记录周期扫描作业ID和即时扫描作业ID
- Bootstrap在create-react-app中不起作用
- 如何从android studio启动firefox焦点
- 如何检测NR网络是NSA还是SA类型(使用android API)
- xml文件中的文本不完整,导致新创建的Android Studio项目出现错误
- 为什么Android应用程序在退出带有后退按钮的应用程序时显示空白屏幕React Native Navigation()