Ubuntu上Apache安全如何保障
导读:Ubuntu上Apache安全加固清单 一 基础与系统防护 保持系统与软件包为最新,及时修补漏洞:执行sudo apt update && sudo apt upgrade。 仅开放必要端口与协议,使用UFW限制访问:例如...
Ubuntu上Apache安全加固清单
一 基础与系统防护
- 保持系统与软件包为最新,及时修补漏洞:执行sudo apt update & & sudo apt upgrade。
- 仅开放必要端口与协议,使用UFW限制访问:例如sudo ufw allow ‘Apache Full’(同时放行80/443),或按需仅放行80/tcp与443/tcp。
- 以最小权限运行服务:Ubuntu 默认以www-data运行 Apache,避免以root直接启动;如需自定义运行用户,可在**/etc/apache2/envvars中设置APACHE_RUN_USER/APACHE_RUN_GROUP**并重启服务。
- 禁用不需要的 Apache 模块以减少攻击面:如a2dismod status、a2dismod autoindex、a2dismod dav、a2dismod dav_fs等(按需评估)。
二 传输加密与证书管理
- 全站启用HTTPS:优先使用Let’s Encrypt自动签发与续期证书,命令示例:sudo apt install certbot python3-certbot-apache,随后sudo certbot --apache -d yourdomain.com -d www.yourdomain.com;续期建议加入cron或systemd timer自动执行。
- 如为手动配置证书,准备站点证书、中间证书链与私钥,启用mod_ssl并在虚拟主机中正确指向证书与私钥路径,确保仅开放443并做HTTP→HTTPS跳转。
三 运行与访问控制
- 隐藏服务器标识,降低信息泄露风险:在**/etc/apache2/apache2.conf或/etc/apache2/conf-available/security.conf中设置ServerTokens Prod与ServerSignature Off**。
- 禁止目录浏览与危险方法:在站点或全局**中设置Options -Indexes +FollowSymLinks**;如业务不需要,禁用WebDAV与相关模块;对不需要的PUT/DELETE/TRACE等方法返回403,可用mod_rewrite在对应路径拦截。
- 上传与可执行防护:对上传目录(如**/var/www/html/upload**)禁止脚本执行,示例:
< Directory "/var/www/html/upload"> < FilesMatch "\.(php|php3|phtml)$"> Require all denied < /FilesMatch> < /Directory> - 文件与目录权限:网站根目录建议www-data:www-data,目录755、文件644,避免全局可写。
- 访问控制与 WAF/抗DoS:基于来源 IP、时间、路径实施Require规则;必要时部署mod_security2(WAF)与mod_evasive(抗DoS/暴力请求)并调优阈值与日志路径。
四 安全响应头与内容安全
- 启用并配置关键安全头(需mod_headers):
启用方式:sudo a2enmod headers & & sudo a2enconf security & & sudo systemctl restart apache2。< 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> - 自定义错误页面,避免泄露路径、框架与数据库信息:
并将相应静态页面放置于站点目录中。ErrorDocument 403 /custom403.html ErrorDocument 404 /custom404.html ErrorDocument 500 /custom500.html
五 日志监控与入侵防护
- 启用并持续监控日志:访问与错误日志默认位于**/var/log/apache2/access.log与/var/log/apache2/error.log**,可用tail -f实时查看,结合LogFormat与LogLevel进行审计与告警。
- 部署Fail2Ban防御暴力破解:安装后启用apache-auth等监狱,示例(/etc/fail2ban/jail.local):
执行sudo systemctl enable --now fail2ban。[apache-auth] enabled = true filter = apache-auth action = iptables-multiport[name=Apache, port="http,https", protocol=tcp] logpath = /var/log/apache2/access.log bantime = 3600 - 变更前后语法检查与重启:使用sudo apache2ctl configtest验证配置,无误后sudo systemctl restart apache2;定期关注Apache 安全公告与更新。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu上Apache安全如何保障
本文地址: https://pptw.com/jishu/784900.html
