使用.htaccess来减轻拒绝服务攻击

时间:2013-06-13 02:01:22

标签: php .htaccess ddos

我有一个需要登录的应用程序。

只能通过单一登录页面访问该网站。

我关注DDOS并且(感谢这里的朋友)能够编写一个脚本来识别潜在的DDOS攻击并锁定特定的IP以防止站点访问(也是一种防止多个密码/用户名组合猜测的安全措施) )

阻止那些冒犯.htaccess的IP是否有任何价值。我可以简单地修改文件,以防止我的服务器允许访问违规的IP一段时间,但它会做任何好事吗?即使.htaccess阻止它们被提供,或者它是否会减少允许真正请求的负载,传入的请求是否仍然会打破系统?

值得注意的是,我的大多数请求都来自有限范围的真正IP,因此我打算采用以下方式:

如果怀疑DDOS攻击,则仅允许从一段时间内之前有过良好登录的IP访问。除非已经手动取消阻止请求,否则阻止永久没有良好登录的所有可疑IP。

您的圣人建议将不胜感激。如果您认为这是浪费时间,请告诉我!

实现非常纯粹的PHP。

1 个答案:

答案 0 :(得分:2)

如果被.htaccess阻止,DDOS攻击造成的负载将会降低,因为不需要的连接会被提前拒绝,并且不允许调用PHP脚本。

以请求登录脚本为例,您的apache服务器将调用PHP脚本(我假设)在某种数据库中进行用户查找。这是负载。

Request <---> Apache <---> PHP <---> MySQL (maybe)

如果你阻止和ip(比如说1.2.3.4),你的htacess会有一个额外的行:

Deny from 1.2.3.4

请求会有点像这样:

Request <---> Apache <-x-> [Blocked]

并且不会发生PHP脚本或数据库调用,这比前一个示例的负载要少。

这还可以防止对登录表单的暴力攻击。您必须决定何时将IP添加到阻止列表中,可能是他们在一分钟内提供20次错误凭据或者连续超过半小时提供错误凭据。

防火墙

最好使用防火墙来阻止请求,而不是使用.htaccess。这样请求永远不会到达apache,这是服务器根据IP地址规则丢弃数据包的简单操作。

以下行是一个shell命令(当以root身份运行时)将添加 iptables 规则以丢弃源自该IP地址的所有数据包:

/sbin/iptables -I INPUT -s 1.2.3.4 -j DROP