我管理的网站和论坛不断受到垃圾邮件发送者、爬虫和来自那些对我们网站主题毫无兴趣的国家的不必要关注的轰炸。
我知道有几种方法可以使用 IIS、web.config、.htaccess 以及 phpBB 的内置功能(用于论坛)和用于爬虫的 robots.txt(假设它们遵守,但一家大公司似乎并未遵守)来阻止 IP 地址。
我很想知道其他人在这种情况下会做什么以及您会使用哪种选项。
是的,我知道我可能在躲藏,并且面临着持续的斗争,但是外面有一些不道德的人不遵守 robots.txt 等。
短暂性脑缺血发作
答案1
在处理来自不相关国家/地区的无休止的垃圾邮件、爬虫和不必要的流量时,采用整体和分层的安全策略可能特别有效。你总是会提高标准。我的两点看法:
直接 IP 和地理 IP 阻止
- 使用
.htaccess
(在 Apache 上)或web.config
(在 IIS 上)阻止已知有问题的 IP 地址 - 结合地理 IP 屏蔽功能,可自动限制与您的受众不符的特定国家/地区的访问
增强 phpBB 的安全设置
- 充分利用 phpBB 的反垃圾邮件功能
- 调整用户权限、实施 CAPTCHA 并激活用户验证流程
- 探索社区支持的增强垃圾邮件安全性的模块和插件
加强对不合规爬虫的服务器响应
- 保持更新
robots.txt
作为标准做法 - 对于忽略这些指令的爬虫,请考虑采取更积极的策略,例如直接从服务器设置根据其用户代理字符串发出 403 错误
部署 Web 应用程序防火墙 (WAF)
- WAF 可充当您网站的盾牌,阻止恶意流量并在恶意操作到达您的服务器之前将其过滤掉。Cloudflare 在这方面非常出色。
- 这可以有效抵御一系列威胁,包括垃圾邮件和自动机器人
持续监测和调整
- 利用分析和服务器日志分析工具来监控实施策略的有效性
- 保持适应能力并随时准备根据需要更新措施,应对新的攻击和威胁模式
通过整合这些方法,您可以创建一个全面的防御机制,不仅可以解决当前的问题,还可以为未来的挑战做好准备。
答案2
几乎任何 WAF(包括 mod_security)都可以做到这一点。我个人过去曾使用过 fail2ban 来实现这一点。
您没有告诉我们有关运行此程序的平台/环境的任何信息,所以我不知道 fail2ban 是否适合您。但 fail2ban 的优点是您可以将其配置为使用您可以编写脚本来应用禁令的机制。默认是通过 iptables 进行阻止,但您可以简单地维护一个数据库并从 PHP 检查它,或者在远程防火墙上调用 RPC 端点。
答案3
最好主要是一个见仁见智的问题。
您的选择大致分为两类,各有优点和缺点。
1. 在网络层阻止 IP
这些方法包括基于主机的防火墙、网络防火墙、空路由、网络 ACL、安全组等。
优点
计算成本低,不需要网络服务器提供太多资源
最安全,因为来自被阻止 IP 地址(范围)的所有数据包都将被阻止,甚至无法再访问 Web 服务
缺点
- 这样的阻止是绝对的。被阻止的站点访问者将收到如下 TCP/IP 错误“联系”拒绝或“连接超时”,但您无法显示“您的 IP 地址由于滥用或其他原因已被禁止”用户友好的错误消息。
- 当一台服务器托管多个网站时,被阻止的 IP 地址将被所有网站禁止访问。
2. 在应用层阻止 IP
这些方法是利用 Web 服务器、Web 应用程序或 HTTP 协议感知“应用程序”防火墙或类似设备中的安全设置。此外,内容分发网络并且其安全策略都可以归入此类别。
优点
- 允许细粒度的访问控制 - 例如允许访问主页,但阻止访问网站的管理/交互部分
缺点
- 维护起来可能更加复杂
- 不受欢迎的网站访问者受到限制,但并未完全被阻止。您限制了他们的滥用途径,但“被阻止”访问者的每条请求都需要进行评估,这仍然会占用资源,并可能使某些形式的滥用行为继续并得逞。
通常会结合多种方法。
利用 CDN 在 HTTP 级别进行保护并配置拒绝直接访问的防火墙策略,仅允许来自 CDN(和监控)的流量,以防止绕过 CDN 直接连接到您的服务器。
由于同一个 IPv4 IP 地址后面可能有许多非恶意且行为良好的网站访问者,因此网站通常不会屏蔽 IP 地址,而是花时间和精力检测和接纳合法用户,例如验证码以及其他技术。
答案4
我注意到一个我尝试使用 IIS 拒绝表阻止的网站被通过了。我猜他们可能在欺骗我看到的 IP 地址,所以我已将此添加到 web.config 和 .htaccess 中,并将监控进度。
我很惊讶他们突破了 IIS!!