在Ubuntu上配置Apache服务器以防止盗篡改,可以通过以下几种方法来实现:
mod_rewrite模块可以用来重写URL,从而防止直接访问敏感文件。
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/html
<Directory /var/www/html>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} \.(htaccess|htpasswd|ini|conf)$
RewriteRule ^ - [F,L]
</VirtualHost>
mod_security是一个强大的Web应用防火墙(WAF),可以防止各种攻击,包括SQL注入、XSS等。
首先,安装mod_security和libapache2-mod-security2:
sudo apt-get update
sudo apt-get install libapache2-mod-security2
然后,启用mod_security:
sudo a2enmod security2
编辑/etc/modsecurity/modsecurity.conf文件,配置规则:
SecRuleEngine On
SecRequestBodyAccess On
SecResponseBodyAccess On
SecAuditEngine RelevantOnly
SecAuditLog /var/log/modsec_audit.log
在网站的根目录下创建或编辑.htaccess文件,添加以下内容:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} \.(htaccess|htpasswd|ini|conf)$
RewriteRule ^ - [F,L]
</IfModule>
<FilesMatch "\.(php|pl|py|jsp|asp|sh|cgi)$">
Order Allow,Deny
Deny from all
</FilesMatch>
如果你的系统启用了SELinux或AppArmor,可以进一步限制Apache的权限,防止恶意访问。
sudo apt-get install selinux-basics selinux-policy-default
sudo setenforce 1
然后,配置SELinux策略以限制Apache的访问。
sudo apt-get install apparmor apparmor-utils
sudo aa-enforce /etc/apparmor.d/usr.sbin.apache2
定期备份网站文件和数据库,并设置监控系统(如Fail2Ban)来检测和阻止恶意访问。
sudo apt-get install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
通过以上方法,你可以大大提高Ubuntu Apache服务器的安全性,防止盗篡改。