如何通过Apache配置提升Ubuntu服务器安全性
导读:Ubuntu 上通过 Apache 配置提升服务器安全性 一 基础加固 保持系统与软件为最新:执行 sudo apt update && sudo apt upgrade,及时获取安全补丁。 隐藏服务器标识:在 /etc/...
Ubuntu 上通过 Apache 配置提升服务器安全性
一 基础加固
- 保持系统与软件为最新:执行 sudo apt update & & sudo apt upgrade,及时获取安全补丁。
- 隐藏服务器标识:在 /etc/apache2/apache2.conf 中设置
- ServerTokens Prod(仅显示 Apache,不显示版本与 OS)
- ServerSignature Off(关闭错误页中的服务器签名)
- 以最小权限运行:确认 /etc/apache2/envvars 或主配置中的 User/Group 为低权限账户(Ubuntu 常见为 www-data),避免使用 root。
- 目录访问与索引:在站点或全局 中禁用自动索引(如 Options -Indexes),仅开启必要功能(如 FollowSymLinks),减少信息泄露面。
- 禁用不必要的模块:列出已启用模块 ls /etc/apache2/mods-enabled,对不需要的模块执行 sudo a2dismod module_name(如 autoindex、status、userdir 等)。
二 加密与传输安全
- 启用 HTTPS 并强制跳转:
- 安装证书工具:sudo apt install certbot python3-certbot-apache
- 获取并自动配置证书:sudo certbot --apache -d example.com
- 如无自动跳转,可在虚拟主机 80 段添加重写规则将 HTTP→HTTPS。
- 强化 SSL/TLS 配置(在 SSL 虚拟主机或全局 SSL 配置段中):
- 禁用弱协议:SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
- 使用强套件:SSLCipherSuite HIGH:!aNULL:!MD5
- 防火墙放行:使用 UFW 放行 Web 流量,推荐 sudo ufw allow ‘Apache Full’(同时开放 80/443)。
三 访问控制与攻击防护
- 访问控制与敏感目录:
- 限制上传与可执行脚本目录(示例):
< Directory "/var/www/html/upload"> < FilesMatch "\.(php|php3)$"> Require all denied < /FilesMatch> < /Directory> - 自定义错误页面,避免泄露路径与堆栈信息(如 ErrorDocument 403 /custom403.html)。
- 限制上传与可执行脚本目录(示例):
- 部署 WAF 与抗 DoS:
- 安装并启用 ModSecurity:sudo apt install libapache2-mod-security2 & & sudo a2enmod security2
- 基本配置示例:
SecRuleEngine On SecRequestBodyAccess On SecResponseBodyAccess On SecAuditLog /var/log/modsec_audit.log SecAuditLogParts ABIJDEFHZ SecAuditLogRelevantStatus "^(?:5|4(?!04))" SecDataDir /var/lib/modsecurity SecTmpDir /tmp - 可进一步集成 OWASP Core Rule Set 提升 Web 攻击防护能力。
- 抗慢速攻击(可选):安装 libapache2-mod-evasive 并启用 a2enmod evasive,按业务调整阈值与日志路径。
四 运行监控与维护
- 启用并审计日志:确保存在并轮转 /var/log/apache2/access.log 与 error.log;可使用 tail -f /var/log/apache2/error.log 实时排查;必要时采用 vhost_combined 格式增强可读性。
- 定期自检与验证:
- 检查模块状态:apache2ctl -M
- 语法检查:apache2ctl configtest
- 在线检测 SSL 配置强度(如 SSL Labs 测试)。
五 一键最小加固示例
- 执行以下命令完成常见加固(按需调整域名与目录):
# 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
- 风险提示:修改前备份配置(如 /etc/apache2/ 与 /etc/modsecurity/),变更后逐项验证站点可用性与安全策略生效。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何通过Apache配置提升Ubuntu服务器安全性
本文地址: https://pptw.com/jishu/787332.html
