mathcontao/ng-apache-firewall-for-contao

这只是关于如何在Contao CMS中配置nG防火墙(由Jeff Starr制作)的一小部分资料。这是一个关于如何在Contao CMS中配置nG防火墙(由Jeff Starr)的小集合。

0.0.12 2021-01-03 14:59 UTC

This package is auto-updated.

Last update: 2024-09-05 04:10:06 UTC


README

Latest Version on Packagist Installations via composer per month Installations via composer total

nG-Apache-Firewall-for-Contao

这只是关于如何在Contao CMS中配置nG防火墙(由Jeff Starr制作)的一小部分资料。

这是一个关于如何在Contao CMS中配置nG防火墙(由Jeff Starr)的小集合。

目标

各种爬虫和机器人定期扫描互联网以寻找漏洞或搜索内容(例如,电子邮件地址)。网站也经常受到影响。网站尝试了各种“家庭疗法”,以将此类爬虫和机器人拒之门外。

为什么不在它们访问网站时就阻止这些爬虫和机器人呢?

nG Apache Firewall/Blacklist

Jeff Starr (https://perishablepress.com/) 多年来一直免费提供易于配置的 "nG Firewall"。

许可证

开源且免费供所有人使用(“开源且免费供所有人使用”)。只需在 .htaccess 中保留一个小小的引用即可。

技术要求

  • 服务器:Apache 2.0+
  • 访问 .htaccess 文件
  • 本指南针对与Contao CMS(https://contao.org)一起使用的情况。以下列出了一些已知错误及其解决方案。

7G Firewall 指南

一般

  • 所有这些步骤都由您自己承担风险。所有信息仅供参考。
  • 但这并不难,实际上只需要基本知识。
  • 原始指南用英文写成: https://perishablepress.com/7g-firewall/

别忘了备份

像往常一样:备份总有帮助。特别要记住的是,必须先(!)备份 .htaccess。

步骤 1:下载

步骤 2:编辑 .htaccess 文件

  • Contao 4.9: /web/.htaccess
  • 备份(安全第一!)
  • 将 7G 下载文件的內容插入到 .htaccess 文件的开始处(不要覆盖任何之前的内容)
  • 保存并在相同位置保存到 Web 服务器上

步骤 3:测试

  • 使用例如 "/vbulletin/" 在地址中调用网站(例如: https://domain.tld/vbulletin/
  • 在白色背景上可以看到简短的文本 "Goodbye"
  • 服务器返回 403 错误(禁止访问)

附加:了解被阻止的内容

此防火墙可能会阻止过多内容。为此,您可以创建一个日志。更详细的英文描述: https://perishablepress.com/7g-firewall-log-blocked-requests/ 请使用此处的 "问题" 功能 在GitHub上分享您的经验

步骤 5:准备日志功能

  • 下载: https://perishablepress.com/7g-firewall-log-blocked-requests/#download(版本 1.1,2KB,截至 2020 年 8 月,ZIP 文件:7G-Log-Blocked-Requests-v1.1.zip)
  • 解压 ZIP 文件
  • 需要 2 个文件:** 7g_log.php(包含由 .htaccess 调用的工具,并将数据写入日志文件)** 7g_log.txt(日志文件)
  • 将这两个文件上传到服务器,放置在 .htaccess 文件旁边(在 Contao 4.9 中:/web/)
  • 可能需要调整文件权限(需要:CHMOD 644)

第 6 步:保护日志

  • 如果 Apache 服务器版本为 2.3 及以下,则在 .htaccess 文件开头插入以下内容:
<IfModule !mod_authz_core.c>
	<Files ~ "7g_log\.txt">
		Deny from all
	</Files>
</IfModule>

从 Apache 服务器 2.4 开始

<IfModule mod_authz_core.c>
	<Files ~ "7g_log\.txt">
		Require all denied
	</Files>
</IfModule>

第 7 步:启用日志记录

  • 打开 .htaccess 文件(见上面)
  • 多次取消注释 RewriteRule .* - [F,L](在前面写上 #),注释掉 RewriteRule .* /7g_log.php?....(移除前面的 #

示例行 58-60:(之前)

	RewriteRule .* - [F,L]
	
	# RewriteRule .* /7g_log.php?log [L,NE,E=7G_QUERY_STRING:%1___%2___%3]

(之后)

 	# RewriteRule .* - [F,L]
	
	RewriteRule .* /7g_log.php?log [L,NE,E=7G_QUERY_STRING:%1___%2___%3]

其他行:96-98,113-115,126-128,140-142,153-155

第 8 步:查看日志

常见问题

布局损坏/无法加载 CSS 文件

  • 请参阅 Issue#1(包括解决方案):#1

/web/systems 目录被阻止

  • 请参阅 Issue#2(包括解决方案):#2

日志配置

在 7g_log.php 中可以调整日志记录

日志目录

define('SEVENGLOGPATH', dirname(__FILE__) .'/');

HTTP 错误代码

define('SEVENGSTATUS', 403); // 403 = 禁止

日志文件名

define('SEVENGLOGFILE', '7g_log.txt');

User Agent 长度

define('SEVENGUALENGTH', 0); // 0 = 所有

显示的阻止文本

define('SEVENGEXIT', 'Goodbye');

更改示例

define('SEVENGEXIT', '7G: 错误 - 403. 再见');

日志时区

date_default_timezone_set('UTC');

更改适用于德国的正确时区的示例

date_default_timezone_set('UTC+2');

经验

2020 年 12 月 3 日

我的网站大约运行了 2 个月(约 70 天)使用 7G。阻止日志大约 1MB 大小(3879 行)。防火墙工作得非常好。阻止的访问

  • 1375 次来自 http://www.opensiteexplorer.org/dotbot 的访问
  • 122 次来自一个神秘的 "python" 脚本
  • 501 次来自 360Spider 的访问
  • 62 次来自 Ahref 的访问
  • 334 次来自 mj12bot 的访问
  • 12 次来自 SeznamBot 的访问
  • 甚至抄袭检查软件 Turnitin 也想在这里看看

安全

  • 24 次来自试图欺骗您 URL 的神秘网站的访问
  • 1403 次尝试通过参数进行选择数据库查询的访问
  • 408 次似乎尝试通过 CMD 进行基准查询的访问
  • 123 次搜索 wp-content 或 wp-admin 的访问

在 Wiki 中现在可以找到记录已阻止的恶意攻击的示例。

许可证:MIT(见 LICENCE.md)