以下是在Ubuntu上优化Apache安全设置的关键步骤:
更新系统与软件包
定期更新系统和Apache相关包,修补安全漏洞:
sudo apt update && sudo apt upgrade
隐藏敏感信息
修改配置文件(/etc/apache2/apache2.conf),隐藏版本信息:
ServerSignature Off
ServerTokens Prod
禁用不必要的模块
列出已启用模块并禁用非必需模块(如autoindex):
apache2ctl -M # 查看模块
sudo a2dismod autoindex # 禁用示例模块
sudo systemctl restart apache2
启用SSL/TLS加密
安装SSL模块并配置证书(可使用Let’s Encrypt免费证书):
sudo a2enmod ssl
sudo apt install certbot python3-certbot-apache
sudo certbot --apache # 自动生成证书并配置
配置防火墙
使用UFW限制访问,仅允许HTTP/HTTPS流量:
sudo ufw allow 'Apache Full'
sudo ufw enable
限制访问权限
<Directory /var/www/html>
Options -Indexes +FollowSymLinks
Require all granted
</Directory>
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html
启用安全模块
安装并启用mod_security(Web应用防火墙):
sudo apt install libapache2-mod-security2
sudo a2enmod security2
sudo systemctl restart apache2
监控与日志管理
定期查看访问日志和错误日志,配置日志轮转:
sudo tail -f /var/log/apache2/access.log
sudo nano /etc/logrotate.d/apache2 # 调整日志保留策略
强化SSH访问(辅助安全)
禁用root登录,使用密钥认证:
sudo nano /etc/ssh/sshd_config
# 修改以下配置
PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication no
sudo systemctl restart sshd
注:配置后需重启Apache服务使更改生效,生产环境建议结合自动化工具(如Ansible)批量部署安全策略,并定期进行渗透测试。