我有一个简单的Apache Web服务器设置和基本的IP表(ufw)为开发服务器。 在我的日志中,我看到这样的行:
[Fri May 16 10:10:36.258369 2014] [:error] [pid 15926] [client 69.147.158.130:8396] script '/var/www/html/wp-login.php' not found or unable to stat
我根本没有运行WordPress,而且我意识到这是一个非常小的尝试(有更复杂的攻击Apache)。 不过,我想自动阻止这个IP地址(暂时),而不需要安装IDS / IPS如Snort。
我只是寻找一个简单的方法来阻止试图连接到wp-admin或wp-login的地址。 有没有一个Apache模块可以处理这样的事情?
虽然你明确要求解决scheme来阻止IP地址,但我不认为这是一个好的解决scheme。
原因是你看到的这些尝试是来自各个IP地址,最有可能由一个主系统控制。 这就是现在DDoS和黑客攻击行为的本质。
相反,你应该考虑实施ModSecurity 。 它是一个作为Web服务级防火墙的Apache模块。 它分析所有网站stream量到您的网站,如果它检测到已知的exception行为,访问我们通过“403:禁止”响应阻止死亡的轨道。
现在稍微消极的一面是,MidSecurity有几十个默认的规则集运行良好,但可能会导致误报。 所以,当你实施它,你将很可能需要调整它的头几个星期。
但最终的结果是在这个“了解你”的时期之后,你将拥有一个启发式保护你的网站免受已知不良行为的工具。 而不仅仅是保留一个IP地址列表。
我不会build议自动尝试这样做,我会build议手动阻止IP。 我会做的唯一的自动化系统将是一个脚本或类似的东西,parsing您的日志类似的错误。
用ufw阻止一个IP
sudo ufw deny from <ip address>
与iptables
sudo iptables -I INPUT -s <ip address> -j DROP
我的解决scheme是fail2ban,正如@ceejayoz的评论所指出的那样
@iain – 这实际上是重复的 – 谢谢你指出。