Ubuntu下Apache2安全设置
导读:Ubuntu下Apache2安全设置清单 一 基础加固 保持系统与软件为最新:执行sudo apt update && sudo apt upgrade,及时修补漏洞。 隐藏版本与系统信息:在**/etc/apache2/...
Ubuntu下Apache2安全设置清单
一 基础加固
- 保持系统与软件为最新:执行sudo apt update & & sudo apt upgrade,及时修补漏洞。
- 隐藏版本与系统信息:在**/etc/apache2/conf-enabled/security.conf中设置ServerTokens Prod与ServerSignature Off**,减少信息泄露。
- 禁用目录列表:在站点或全局配置中将目录选项设为Options -Indexes,防止无索引时暴露目录结构。
- 以最小权限运行:确认进程以www-data用户/组运行(查看进程或配置),避免使用root启动。
- 文件与目录权限:网站根目录建议chown -R www-data:www-data /var/www/html,chmod -R 755 /var/www/html,仅对上传等特定目录按需放宽。
- 禁用不必要的模块:列出模块apache2ctl -M,禁用不需要的模块(如a2dismod autoindex等)以缩小攻击面。
二 传输加密与端口管理
- 启用并强制使用HTTPS:安装证书工具sudo apt install certbot python3-certbot-apache,获取并自动配置证书sudo certbot --apache -d yourdomain.com -d www.yourdomain.com;或手动启用mod_ssl并配置证书路径。
- 防火墙放行:使用ufw仅开放必要端口,推荐sudo ufw allow ‘Apache Full’(同时放行80/443),并启用sudo ufw enable。
- 端口变更(可选):如需变更监听端口,编辑**/etc/apache2/ports.conf**(如将80/443改为5000/4443),并同步更新虚拟主机与防火墙放行规则。
三 访问控制与请求防护
- 访问控制:对管理后台或敏感目录使用Require ip 192.168.1.0/24或Deny from x.x.x.x进行白/黑名单控制;基于目录配置示例:
< Directory “/var/www/html/admin”>
Options -Indexes
AllowOverride None
Require ip 192.168.1.0/24
- 基础认证:对特定路径启用HTTP Basic Auth,先生成口令文件sudo htpasswd -c /etc/apache2/.htpasswd user,再在配置中加入:
< Directory “/var/www/html/secret”>
AuthType Basic
AuthName “Restricted”
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
- 安全响应头:启用mod_headers并添加:
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 Content-Security-Policy “default-src ‘self’; script-src ‘self’ ‘unsafe-inline’ ‘unsafe-eval’; object-src ‘none’; ”
- 请求限流与抗DoS:安装并配置libapache2-mod-evasive缓解暴力与DDoS;按需部署libapache2-mod-qos对抗Slowloris等低速攻击。
四 日志监控与入侵防护
- 日志与告警:确保ErrorLog与CustomLog已启用,结合fail2ban监控异常登录/扫描并自动封禁:
sudo apt install fail2ban,启用服务sudo systemctl start fail2ban & & sudo systemctl enable fail2ban。 - WAF能力:部署libapache2-mod-security2并加载规则集,增强对SQL注入/XSS等常见攻击的拦截能力。
- 运行时防护:启用并正确配置AppArmor对**/usr/sbin/apache2进行域限制(如sudo aa-enforce /etc/apparmor.d/usr.sbin.apache2**),切勿直接移除AppArmor。
- 审计与巡检:定期查看**/var/log/apache2/access.log与error.log**,可使用logwatch做日报分析。
五 快速检查与生效
- 配置语法检查:sudo apache2ctl configtest
- 重启服务:sudo systemctl restart apache2
- 验证要点:
- 访问不存在资源返回自定义错误页且不泄露版本;目录无索引时不列文件;
- 访问http://自动跳转https://;
- 敏感路径返回401需认证;可疑来源被fail2ban封禁;
- 模块按需启用/禁用(如ssl、headers、evasive、security2)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu下Apache2安全设置
本文地址: https://pptw.com/jishu/762144.html
