在Ubuntu上使用Apache2實現防盜刷功能,可以通過以下幾種方法來限制惡意訪問和請求:
Fail2Ban是一個入侵防御軟件框架,可以監控日志文件并根據規則禁止惡意IP地址。
sudo apt update
sudo apt install fail2ban
編輯Fail2Ban的配置文件:
sudo nano /etc/fail2ban/jail.local
添加或修改以下內容:
[DEFAULT]
bantime = 600
findtime = 600
maxretry = 3
[apache-auth]
enabled = true
filter = apache-auth
action = iptables-multiport[name=Apache, port="http,https", protocol=tcp]
logpath = /var/log/apache2/access.log
創建過濾器文件:
sudo nano /etc/fail2ban/filter.d/apache-auth.conf
添加以下內容:
[Definition]
failregex = ^<HOST> -.*"(GET|POST|HEAD).*HTTP.*" 401
ignoreregex =
重啟Fail2Ban服務:
sudo systemctl restart fail2ban
ModSecurity是一個開源的Web應用防火墻(WAF),可以用來檢測和阻止惡意請求。
sudo apt update
sudo apt install libapache2-mod-security2
啟用ModSecurity模塊:
sudo a2enmod security2
重啟Apache2服務:
sudo systemctl restart apache2
編輯ModSecurity的配置文件:
sudo nano /etc/modsecurity/modsecurity.conf
添加或修改規則,例如限制請求頻率:
SecAction \
"phase:1,\
nolog,\
pass,\
ctl:ruleEngine=Off,\
id:1000001,\
tag:'application-multi',\
tag:'language-multi',\
tag:'platform-multi',\
tag:'attack-reconnaissance',\
tag:'OWASP_CRS/WEB_ATTACK/REQUEST_RATE_LIMIT',\
tag:'WASCTC/WASC-21',\
tag:'OWASP_TOP_10/A7',\
tag:'PCI/6.5.10',\
setvar:'ip.req_rate_limit=5/m',\
setvar:ip.req_rate_limit_burst=10,\
expirevar:'ip.req_rate_limit=60m'"
你可以手動將惡意IP地址添加到Apache的配置文件中,禁止這些IP訪問你的網站。
編輯Apache的配置文件:
sudo nano /etc/apache2/apache2.conf
添加以下內容:
<Directory "/var/www/html">
Order Deny,Allow
Deny from 192.168.1.100
Deny from 192.168.1.101
</Directory>
重啟Apache2服務:
sudo systemctl restart apache2
Cloudflare是一個內容分發網絡(CDN)和DDoS保護服務,可以自動檢測和阻止惡意流量。
以上方法可以幫助你在Ubuntu上使用Apache2實現防盜刷功能。你可以根據具體需求選擇合適的方法,或者結合多種方法來提高安全性。