Apache2的防盗篡改功能主要通过mod_security模块实现,该模块提供了强大的安全防护功能,包括防止SQL注入、跨站脚本攻击(XSS)、文件包含漏洞等。以下是配置Apache2防盗篡改的基本步骤:
更新系统包列表:
sudo apt update
安装mod_security:
sudo apt install libapache2-mod-security2
启用mod_security模块:
sudo a2enmod security2
编辑配置文件:
打开Apache的主配置文件/etc/apache2/apache2.conf或/etc/apache2/httpd.conf,并找到<Directory>、<Location>或<Files>块来添加mod_security的规则。
也可以创建一个单独的配置文件来管理mod_security规则,例如/etc/apache2/conf-available/security2.conf,然后在/etc/apache2/apache2.conf中包含它:
Include /etc/apache2/conf-available/security2.conf
添加基本规则: 在配置文件中添加以下基本规则来防止常见的攻击:
<IfModule security2_module>
SecRuleEngine On
SecRequestBodyAccess On
SecResponseBodyAccess On
SecAuditEngine RelevantOnly
SecAuditLog /var/log/apache2/security_audit.log
SecAuditLogParts ABIJDEFHZ
SecAuditLogType Concurrent
SecDataDir /var/cache/mod_security
SecPcreMatchLimitRecursion 50000
SecPcreMatchLimit 50000
SecAction "id:500001,phase:2,t:none,log,deny,status:403,msg:'Access Denied'"
</IfModule>
自定义规则: 根据你的具体需求,可以添加更多的自定义规则。例如,防止SQL注入:
SecRule REQUEST_URI|ARGS|REQUEST_BODY "@detectSQLi" "id:500002,phase:2,t:none,log,deny,status:403,msg:'SQL Injection Detected'"
完成配置后,重启Apache服务器以使更改生效:
sudo systemctl restart apache2
检查mod_security是否启用:
sudo apachectl -M | grep security2
查看日志文件:
检查/var/log/apache2/security_audit.log文件以查看是否有安全事件记录。
通过以上步骤,你可以为Apache2服务器配置基本的防盗篡改功能。根据你的具体需求,可以进一步定制和优化这些规则。