在Ubuntu Apache服务器上实现防盗刷策略,可以通过以下几种方法来限制恶意访问和请求:
使用.htaccess文件设置限制规则:
在网站根目录下创建或编辑.htaccess文件,添加以下内容以限制单个IP地址在一定时间内的请求次数:
<IfModule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
</IfModule>
这将限制每个IP地址在1秒内最多请求2个页面,在10秒内最多访问50个页面。你可以根据需要调整这些参数。
使用mod_security模块:
安装mod_security模块:
sudo apt-get install libapache2-mod-security2
启用mod_security模块:
sudo a2enmod security2
重启Apache服务器:
sudo systemctl restart apache2
创建一个名为/etc/modsecurity.d/anti_brute_force.conf的文件,并添加以下内容:
SecAction "id:1234567,phase:2,t:none,deny,status:403,msg:'Brute force attack detected',log,auditlog"
SecAuditEngine RelevantOnly
SecAuditLog /var/log/apache2/audit.log
SecAuditLogParts ABIJDEFHZ
SecAuditLogType Serial
SecDataDir /var/cache/modsec_audit
SecRequestBodyAccess On
SecResponseBodyAccess Off
SecPcreMatchLimitRecursion 50000
SecPcreMatchLimit 50000
这将记录所有被阻止的请求,并将日志写入/var/log/apache2/audit.log文件。
使用fail2ban工具:
安装fail2ban:
sudo apt-get install fail2ban
启动并启用fail2ban服务:
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
创建一个名为/etc/fail2ban/jail.local的文件,并添加以下内容:
[DEFAULT]
bantime = 600
findtime = 600
maxretry = 3
[apache-brute-force]
enabled = true
filter = apache-auth
action = iptables-multiport[name=ApacheBruteForce, port="http,https", protocol=tcp]
logpath = /var/log/apache2/access.log
这将阻止在10分钟内尝试访问超过3次的IP地址。
这些方法可以帮助你提高Ubuntu Apache服务器的安全性,防止恶意访问和请求。请根据你的需求选择合适的方法,并定期检查和更新配置。