收起左侧

[其他] 用 Apache 服务器模块保护您的网站免受应用层 DOS 攻击

[复制链接]

该用户从未签到

10

主题

5

回帖

67

积分

Windows 2.0

UID
10000042
威望
0
贡献
0
比特币
52
钻石
0 克拉
精华
0
违规
0
在线时间
2 小时
注册时间
2021-3-22
最后登录
2021-9-25
1988 0 apk53 发表于 2021-4-19 21:26:37

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

下面文章的内容主要是用来防护一些所谓的“黑客”通过网页端的接口来到处搞破坏。本人也遇到过,所以有了接下来这篇文章。给大家推荐下良心云,具体链接直接去找良心云官网看就行了,活动力度还是比较大的,之前还有免费的升配活动。小伙伴们可以趁现在活动把需要的机子先买了,等再次升配的时候直接白嫖。
有多种可以导致网站下线的攻击方法,比较复杂的方法要涉及数据库和编程方面的技术知识。一个更简单的方法被称为“拒绝服务(Denial OfService)”(DOS)攻击。这个攻击方法的名字来源于它的意图:使普通客户或网站访问者的正常服务请求被拒绝。
一般来说,有两种形式的 DOS 攻击:
1.     OSI 模型的三、四层,即网络层攻击
2.     OSI 模型的七层,即应用层攻击
第一种类型的 DOS 攻击——网络层,发生于当大量的垃圾流量流向网页服务器时。当垃圾流量超过网络的处理能力时,网站就会宕机。
第二种类型的 DOS 攻击是在应用层,是利用合法的服务请求,而不是垃圾流量。当页面请求数量超过网页服务器能承受的容量时,即使是合法访问者也将无法使用该网站。
本文将着眼于缓解应用层攻击,因为减轻网络层攻击需要大量的可用带宽和上游提供商的合作,这通常不是通过配置网络服务器就可以做到的。
通过配置普通的网页服务器,可以保护网页免受应用层攻击,至少是适度的防护。防止这种形式的攻击是非常重要的, 网络层攻击的数量正在减少,而应用层攻击的数量则在增加。
本文将介绍如何使用 zdziarski 开发的 Apache2 的模块 mod_evasive
另外,mod_evasive 会阻止攻击者通过尝试数百个用户名和密码的组合来进行猜测(即暴力攻击)的企图。
mod_evasive 会记录来自每个 IP 地址的请求的数量。当这个数字超过相应 IP 地址的几个阈值之一时,会出现一个错误页面。错误页面所需的资源要比一个能够响应合法访问的在线网站少得多。
在 Ubuntu 16.04 上安装 mod_evasive
Ubuntu 16.04 默认的软件库中包含了 mod_evasive,名称为“libapache2-mod-evasive”。您可以使用 apt-get 来完成安装:
1.       apt-get update
2.       apt-get upgrade
3.       apt-get installlibapache2-mod-evasive
现在我们需要配置 mod_evasive。
它的配置文件位于 /etc/apache2/mods-available/evasive.conf。默认情况下,所有模块的设置在安装后都会被注释掉。因此,在修改配置文件之前,模块不会干扰到网站流量。
1.       <IfModule mod_evasive20.c>
2.          #DOSHashTableSize    3097
3.          #DOSPageCount        2
4.          #DOSSiteCount        50
5.          #DOSPageInterval     1
6.          #DOSSiteInterval     1
7.          #DOSBlockingPeriod   10
8.        
9.          #DOSEmailNotify      you@yourdomain.com
10.      #DOSSystemCommand    "su - someuser -c '/sbin/... %s...'"
11.      #DOSLogDir           "/var/log/mod_evasive"
12.   </IfModule>
第一部分的参数的含义如下:
·        DOSHashTableSize - 正在访问网站的 IP 地址列表及其请求数的当前列表。
·        DOSPageCount - 在一定的时间间隔内,每个页面的请求次数。时间间隔由 DOSPageInterval 定义。
·        DOSPageInterval - mod_evasive 统计页面请求次数的时间间隔。
·        DOSSiteCount - 与 DOSPageCount 相同,但统计的是来自相同 IP 地址对网站内任何页面的请求数量。
·        DOSSiteInterval - mod_evasive 统计网站请求次数的时间间隔。
·        DOSBlockingPeriod - 某个 IP 地址被加入黑名单的时长(以秒为单位)。
如果使用上面显示的默认配置,则在如下情况下,一个 IP 地址会被加入黑名单:
·        每秒请求同一页面超过两次。
·        每秒请求 50 个以上不同页面。
如果某个 IP 地址超过了这些阈值,则被加入黑名单 10 秒钟。
这看起来可能不算久,但是,mod_evasive 将一直监视页面请求,包括在黑名单中的 IP 地址,并重置其加入黑名单的起始时间。只要一个 IP 地址一直尝试使用 DOS 攻击该网站,它将始终在黑名单中。
其余的参数是:
·        DOSEmailNotify - 用于接收 DOS 攻击信息和 IP 地址黑名单的电子邮件地址。
·        DOSSystemCommand - 检测到 DOS 攻击时运行的命令。
·        DOSLogDir -用于存放 mod_evasive 的临时文件的目录。
配置 mod_evasive
默认的配置是一个很好的开始,因为它不会阻塞任何合法的用户。取消配置文件中的所有参数(DOSSystemCommand 除外)的注释,如下所示:
1.       <IfModule mod_evasive20.c>
2.          DOSHashTableSize   3097
3.          DOSPageCount       2
4.          DOSSiteCount       50
5.          DOSPageInterval    1
6.          DOSSiteInterval    1
7.          DOSBlockingPeriod  10
8.        
9.          DOSEmailNotify       JohnW@example.com
10.      #DOSSystemCommand    "su - someuser -c '/sbin/... %s...'"
11.      DOSLogDir            "/var/log/mod_evasive"
12.   </IfModule>
必须要创建日志目录并且要赋予其与 apache 进程相同的所有者。这里创建的目录是 /var/log/mod_evasive ,并且在 Ubuntu 上将该目录的所有者和组设置为 www-data ,与 Apache 服务器相同:
1.       mkdir /var/log/mod_evasive
2.       chown www-data:www-data /var/log/mod_evasive
在编辑了 Apache 的配置之后,特别是在正在运行的网站上,在重新启动或重新加载之前,最好检查一下语法,因为语法错误将影响 Apache 的启动从而使网站宕机。
Apache 包含一个辅助命令,是一个配置语法检查器。只需运行以下命令来检查您的语法:
1.       apachectl configtest
如果您的配置是正确的,会得到如下结果:
1.       Syntax OK
但是,如果出现问题,您会被告知在哪部分发生了什么错误,例如:
1.       AH00526: Syntax error online 6 of /etc/apache2/mods-enabled/evasive.conf:
2.       DOSSiteInterval takes one argument, Set siteinterval
3.       Action 'configtest' failed.
4.       The Apache error logmay have more information.
如果您的配置通过了configtest 的测试,那么这个模块可以安全地被启用并且 Apache可以重新加载:
1.       a2enmod evasive
2.       systemctl reloadapache2.service
mod_evasive 现在已配置好并正在运行了。
测试
为了测试 mod_evasive,我们只需要向服务器提出足够的网页访问请求,以使其超出阈值,并记录来自 Apache 的响应代码。
一个正常并成功的页面请求将收到如下响应:
1.       HTTP/1.1 200 OK
但是,被 mod_evasive 拒绝的将返回以下内容:
1.       HTTP/1.1 403 Forbidden
以下脚本会尽可能迅速地向本地主机(127.0.0.1,localhost)的 80 端口发送 HTTP 请求,并打印出每个请求的响应代码。
你所要做的就是把下面的 bash 脚本复制到一个文件中,例如 mod_evasive_test.sh:
1.       #!/bin/bash
2.       set -e
3.        
4.       for i in {1..50}; do
5.               curl -s -I 127.0.0.1 | head -n 1
6.       done
这个脚本的部分含义如下:
·        curl - 这是一个发出网络请求的命令。
·        -s - 隐藏进度表。
·        -I - 仅显示响应头部信息。
·        head - 打印文件的第一部分。
·        -n 1 - 只显示第一行。
然后赋予其执行权限:
1.       chmod 755mod_evasive_test.sh
在启用 mod_evasive 之前,脚本运行时,将会看到 50 行 “HTTP /1.1 200 OK” 的返回值。
但是,启用 mod_evasive 后,您将看到以下内容:
1.       HTTP/1.1 200 OK
2.       HTTP/1.1 200 OK
3.       HTTP/1.1 403 Forbidden
4.       HTTP/1.1 403 Forbidden
5.       HTTP/1.1 403 Forbidden
6.       HTTP/1.1 403 Forbidden
7.       HTTP/1.1 403 Forbidden
8.       ...
前两个请求被允许,但是在同一秒内第三个请求发出时,mod_evasive 拒绝了任何进一步的请求。您还将收到一封电子邮件(邮件地址在选项 DOSEmailNotify 中设置),通知您有 DOS 攻击被检测到。


欢迎来到电脑鬼技术】论坛——-电脑专业的论坛之一!
请记住我们的网址 电脑鬼技术 [这是 默 认 签 名,更换签名点这里!]

☆--本论坛是电脑专业论坛之一(最专业的知识,最贴心的服务圆您玩转电脑之梦--☆

☆--(教您最新,最快,最嗨的电脑技术)--☆

☆--在这里祝大家天天开心,好运连连--☆

☆--若出现不能下载或其他未知故障,请联系客服QQ:349379187,反馈问题 务必请直入主题 拒绝闲聊--- ☆

       ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
       ┃电脑鬼技术讨论群:电脑鬼技术讨论群587842780 ┃
       ┃电脑鬼技术讨论群:电脑鬼技术讨论群587842780 ┃
       ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
2、本站所有主题由该帖子作者发表,该帖子作者与电脑鬼技术享有帖子相关版权
3、论坛的所有内容都不保证其准确性,有效性,时间性。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
4、当政府机关依照法定程序要求披露信息时,论坛均得免责。
5、若因线路及非本站所能控制范围的故障导致暂停服务期间造成的一切不便与损失,论坛不负任何责任。
6、注册会员通过任何手段和方法针对论坛进行破坏,我们有权对其行为作出处理。并保留进一步追究其责任的权利。
7、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和电脑鬼技术的同意
8、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
9、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
10、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
11、电脑鬼技术管理员和版主有权不事先通知发贴者而删除本文
12、电脑鬼技术社区资源均来自网络收集,本站所有内容仅供学习与测试使用,禁止进行任何商业操作
13、如私自违反造成的一切责任自行承担,本站不对其负任何相关法律和连带责任
发消息 收听TA 回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入我们,

发现科技可以让生活更美好...

立即注册

如果您已拥有本站账户,则可

  • Ghost Win7 64 纯净版2023.10全新首发
  • Ghost Win10 64 纯净专业版2023.10(22H2)
  • Ghost Win11 64 纯净专业版2023.10(22H2)
  • 冬季之前 - 冷漠【FLAC/百度网盘】
  • 赐梦 (《云之羽》影视剧插曲) - 虞书欣【FL
联系我们
业务咨询、商务合作 182 - 7660 - 9175
官方 QQ 群 587842780 - 交流群 587842780 - 技术群
联系地址 中国 广西省贺州市钟山县
技术支持邮箱 349379187@qq.com
  • App下载

  • 微信二维码

QQ| Archiver|手机版|小黑屋| 电脑鬼技术论坛 ( 桂ICP备15009803号-12 )

Powered by 卓越网络 X3.5 Licensed© 2018-2022 电脑鬼技术论坛

桂公安网安备 1101050203323139 桂ICP备1523042119号-1

返回顶部 返回列表