核心是让apache进程以最低必要权限运行:创建专用低权限用户(如apache)、配置user/group指令、禁用root运行;收紧配置文件(600)、认证文件(640)、日志目录(750)等关键路径权限;全局禁用.htaccess、硬隔离敏感目录、禁用非必要模块及危险options选项。

核心是让 Apache 进程以最低必要权限运行,避免因漏洞被利用后获得高权限——比如不以 root 启动、不给 Web 进程写配置或日志目录的权限、不让它读取敏感文件。
用专用低权限用户运行服务
Apache 默认可能以 root 启动(尤其在安装初期),但监听 80/443 端口后应立即切换到受限用户。不能长期用 root 或 nobody,而应创建专用账号:
- 执行 groupadd apache 和 useradd -r -s /sbin/nologin -g apache apache 创建无登录能力的系统用户
- 在 httpd.conf 或 apache2.conf 中明确指定:
User apache
Group apache - 重启服务后,用 ps aux | grep httpd 验证 worker 进程属主确实是 apache,而非 root 或 daemon
收紧关键路径的文件系统权限
即使进程权限降下来,若配置文件、密码文件、日志目录本身权限过宽,攻击者仍可能通过其他入口(如 WebShell)篡改或窃取:
PHP中文网提供Apache 2.4.62 官方 tar.gz 源码包下载,通过源码编译安装,开发者能够灵活定制模块、优化性能并精准控制安装路径,满足多样化的业务需求。
- 主配置文件(如 /etc/httpd/conf/httpd.conf)设为 600:仅 root 可读写
- 认证文件(如 /etc/httpd/.htpasswd)设为 640,属主 root、属组 apache,确保 Apache 进程能读、但普通用户不可见
- 日志目录(如 /var/log/httpd/)设为 750,属组 apache,允许 Apache 写入但禁止其他用户遍历
- 网站根目录(DocumentRoot)中,静态文件可设 644,脚本类文件(如 .php)避免设为可写;上传目录必须单独设为 755 且属组 apache,禁止执行权限
隔离敏感目录并禁用继承式覆盖
防止攻击者通过上传 .htaccess 文件绕过全局限制,必须从源头阻断:
- 在主配置中全局设置:AllowOverride None,彻底禁用 .htaccess 解析能力
- 对确需动态控制的子目录(如 CMS 后台),再显式启用:AllowOverride AuthConfig FileInfo,且仅限该目录
- 对备份目录(/backups)、Git 目录(/.git)、配置存档等,用
块硬隔离:
Require all denied
Options None
限制模块加载与能力暴露
运行权限不只是“谁在跑”,还包括“它能干什么”。关闭非必要模块,裁剪功能面:
- 卸载不用模块:如 a2dismod cgi cgid status info(Debian/Ubuntu)或注释掉 LoadModule 行(RHEL/CentOS)
- 在全局或站点级禁用危险能力:Options -ExecCGI -Includes -FollowSymLinks -Indexes,尤其对上传目录和日志目录强制生效
- 隐藏服务标识:ServerTokens Prod 和 ServerSignature Off,避免泄露版本号,降低针对性攻击风险










