Apache2安全配置要点
定期更新Apache2及相关系统组件(如内核、PHP等),及时修补已知安全漏洞。例如,在Ubuntu上使用sudo apt update && sudo apt upgrade,在CentOS上使用sudo yum update命令。
使用防火墙限制对Apache2的访问,仅开放必要端口(HTTP 80、HTTPS 443)。
sudo ufw allow 'Apache Full'(允许HTTP/HTTPS)、sudo ufw enable(启用防火墙);sudo firewall-cmd --permanent --add-service=http、sudo firewall-cmd --permanent --add-service=https、sudo firewall-cmd --reload(重载规则)。禁用未使用的Apache模块(如autoindex、cgi、status等),减少攻击面。例如,使用sudo a2dismod autoindex(Ubuntu/Debian)或注释LoadModule指令(CentOS)禁用模块,重启Apache生效。
通过配置隐藏Apache版本及服务器信息,防止攻击者利用已知版本漏洞攻击。在Apache配置文件(如/etc/apache2/apache2.conf或/etc/httpd/conf/httpd.conf)中添加:
ServerTokens Prod(仅显示“Apache”而非版本号)、ServerSignature Off(禁用页面底部的服务器信息)。
.htaccess或主配置文件设置访问控制,要求用户输入用户名/密码。例如:<Directory "/var/www/html/restricted"> AuthType Basic AuthName "Restricted Area" AuthUserFile /etc/apache2/.htpasswd Require valid-user </Directory> 其中,AuthUserFile存储加密后的用户名/密码(使用htpasswd命令生成)。Require指令限制特定IP或用户访问敏感目录。启用HTTPS加密数据传输,防止中间人攻击。推荐使用Let’s Encrypt免费证书(sudo apt install certbot python3-certbot-apache、sudo certbot --apache),或手动配置证书:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt;/etc/apache2/sites-available/default-ssl.conf):<VirtualHost *:443> ServerName yourdomain.com SSLEngine on SSLCertificateFile /etc/apache2/ssl/apache.crt SSLCertificateKeyFile /etc/apache2/ssl/apache.key </VirtualHost> 重启Apache后生效。/var/www/html)的所有者设为Apache用户(Ubuntu/Debian为www-data,CentOS为apache),权限设为755(所有者可读/写/执行,其他用户可读/执行):sudo chown -R www-data:www-data /var/www/html、sudo chmod -R 755 /var/www/html。/var/www/html/uploads),允许Apache用户写入(775权限):sudo chmod -R 775 /var/www/html/uploads。/etc/apache2、/var/log/apache2等目录的访问,仅允许root用户访问。Require all denied,禁止非法访问上级目录。Header set X-XSS-Protection "1; mode=block" Header set X-Content-Type-Options "nosniff" mod_security模块(sudo a2enmod security2)过滤恶意请求。启用详细日志记录,定期检查异常行为。确保ErrorLog(错误日志)和CustomLog(访问日志)路径正确(如Ubuntu默认路径为/var/log/apache2/error.log、/var/log/apache2/access.log),日志级别设置为warn或error(LogLevel warn)。
部署WAF(如ModSecurity)增强防护,过滤SQL注入、XSS、DDoS等攻击。例如,安装ModSecurity模块:sudo apt install libapache2-mod-security2(Ubuntu),并配置规则集(如OWASP Core Rule Set)。
通过LimitRequestBody指令限制上传文件大小(如50MB),防止资源耗尽攻击:
LimitRequestBody 52428800(50MB=50×1024×1024字节)。
/etc/apache2/apache2.conf、虚拟主机配置)是否有未授权修改或多余指令。/var/www/html)和配置文件(/etc/apache2),例如使用tar命令:sudo tar -czvf /backup/apache2-backup.tar.gz /etc/apache2 /var/www/html。