自动黑名单失败的Auth尝试通过htaccess?

Ubuntu 9.10 Apache 2.2.12

嗨,大家好,

我正在使用一个非常基本的htaccess设置来“保护”我的网站的一部分(非关键部分,但我想要的基本身份validation)。

有没有一种方法可以将IP无法提供适当的凭证多次? 我想阻止用户有机会反复猜测用户名/密码组合…

你有权限访问服务器? 有几个程序监视日志文件的变化,检查失败的authentication尝试。 在多次尝试失败(用户可configuration)之后,他们会阻止发起的IP地址(如果需要,可以暂时使用)。

我记得的两个是:

  • Fail2ban :在Ubuntu中安装sudo apt-get install fail2ban ,然后更改/etc/fail2ban/jail.local文件(如果不存在,只需sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local )。 “jail.local”中的选项非常自我解释,但是如果您想了解更多信息,可以查看http://www.fail2ban.org/wiki/index.php/Main_Page上的文档

  • BlockHosts:(它有点老,我不知道它是否仍然是最新的)要安装,请按照http://aczoom.com/cms/blockhosts

  • 有可能是整个堆更多…

我不认为Apache有任何内置的function,可以让你做到这一点。 这是应该工作的东西,但有点哈克:

  1. 编写一个parsingApache错误日志的cron作业,查找包含“身份validation失败”的条目
  2. 当某个IP地址有X个validation失败时,拒绝。
  3. 拒绝IP可以通过Apache访问控制来完成,也可以使用/etc/hosts.deny文件。

你应该能够通过一个cron作业自动化所有这些。

你可以考虑一个函数,添加条目到你的.htaccess,在PHP中,你可以这样做:

 if(is_writable('.htaccess')) { $h = fopen('.htaccess','a+'); fwrite($h,"\nDeny from: ".$_SERVER['REMOTE_ADDR']); fclose($h); }