Linux Apache2 防护实践清单
一 基础加固
二 网络与访问控制
sudo ufw allow 'Apache Full' && sudo ufw enablesudo firewall-cmd --permanent --add-service=http --add-service=https && sudo firewall-cmd --reload三 加密与认证
sudo apt install certbot python3-certbot-apachesudo yum install certbot python3-certbot-apachesudo certbot --apache -d yourdomain.com -d www.yourdomain.com(按提示选择“Redirect to HTTPS”以强制跳转)。sudo htpasswd -c /etc/apache2/.htpasswd username<Directory "/var/www/html/secret">
AuthType Basic
AuthName "Restricted"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
</Directory>
四 安全头与请求限制
<IfModule mod_headers.c>
Header always set X-Content-Type-Options "nosniff"
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-XSS-Protection "1; mode=block"
Header always set Referrer-Policy "no-referrer-when-downgrade"
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
Header always set Content-Security-Policy "default-src 'self'; script-src 'self'; object-src 'none';"
</IfModule>
sudo apt install libapache2-mod-evasivesudo mkdir -p /var/log/apache2/evasive && sudo chown www-data:root /var/log/apache2/evasiveDOSHashTableSize 2048
DOSPageCount 20
DOSPageInterval 1.0
DOSSiteCount 300
DOSSiteInterval 1.0
DOSBlockingPeriod 10.0
DOSLogDir "/var/log/apache2/evasive"
五 运行时防护与审计
sudo apt install libapache2-mod-security2sudo a2enmod security2sudo apt install fail2ban && sudo systemctl enable --now fail2ban。LogLevel warn、ErrorLog ${APACHE_LOG_DIR}/error.log、CustomLog ${APACHE_LOG_DIR}/access.log combinedsudo tar -czvf /backup/apache2-backup_$(date +%F).tar.gz /etc/apache2 /var/www/html。