Ubuntu 上通过 Apache 配置提升服务器安全性
一 基础加固
二 加密与传输安全
三 访问控制与攻击防护
<Directory "/var/www/html/upload">
<FilesMatch "\.(php|php3)$">
Require all denied
</FilesMatch>
</Directory>
SecRuleEngine On
SecRequestBodyAccess On
SecResponseBodyAccess On
SecAuditLog /var/log/modsec_audit.log
SecAuditLogParts ABIJDEFHZ
SecAuditLogRelevantStatus "^(?:5|4(?!04))"
SecDataDir /var/lib/modsecurity
SecTmpDir /tmp
四 运行监控与维护
五 一键最小加固示例
# 1) 系统与软件更新
sudo apt update && sudo apt full-upgrade -y && sudo reboot
# 2) 隐藏版本与签名
echo -e "ServerTokens Prod\nServerSignature Off" | sudo tee /etc/apache2/conf-available/security-hardening.conf
sudo a2enconf security-hardening
# 3) 禁用危险/无用模块(示例)
sudo a2dismod autoindex status userdir
# 4) 强制 HTTPS(Certbot)
sudo apt install -y certbot python3-certbot-apache
sudo certbot --apache -d example.com --redirect --hsts --uir
# 5) 强化 SSL/TLS(在 443 虚拟主机中确保存在)
# SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
# SSLCipherSuite HIGH:!aNULL:!MD5
# 6) 部署 ModSecurity(基础启用)
sudo apt install -y libapache2-mod-security2
sudo a2enmod security2
echo -e "SecRuleEngine On\nSecRequestBodyAccess On\nSecAuditLog /var/log/modsec_audit.log" | sudo tee /etc/modsecurity/modsecurity.conf.d/10-base.conf
# 7) 防火墙放行
sudo ufw allow 'Apache Full'
sudo ufw enable
# 8) 重启并自检
sudo systemctl restart apache2
sudo apache2ctl configtest
sudo tail -f /var/log/apache2/error.log