apache安全加固是持续过程,需围绕最小暴露、最小权限、纵深防御,在编译选模块、配置调参数、运行控访问、系统做隔离四层面落实。

一、编译安装时就打好安全底子
源码编译是加固起点,别等装完再补漏:
- 必须启用
--enable-so(支持动态加载模块),否则所有=shared参数无效 - 按需启用关键安全模块:
--enable-ssl=shared(HTTPS)、--enable-headers=shared(加安全头)、--enable-rewrite=shared(重定向控制) - 第三方模块如
mod_security要提前放入modules/对应子目录,并在configure中显式声明--enable-security2=shared - 依赖库提前装好:OpenSSL开发包(
openssl-devel或libssl-dev)、libxml2-dev、libpcre3-dev等,否则模块编译会失败
二、配置文件里堵住常见漏洞口
绝大多数攻击利用的是默认配置的宽松性,重点改这几项:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
-
隐藏版本信息:在
httpd.conf中设ServerTokens Prod和ServerSignature Off,避免泄露Apache版本和模块列表 -
禁用目录浏览:把
Options Indexes FollowSymLinks改成Options -Indexes +FollowSymLinks,防止文件结构被爬出 -
限制HTTP方法:用
<limitexcept get post head> Deny from all </limitexcept>只放行必要方法,封掉PUT、DELETE、TRACE -
关闭.htaccess覆盖:全局设
AllowOverride None,只在确需覆盖的<directory></directory>块里单独启用 -
根目录默认拒绝:对
<directory></directory>块设Require all denied和Options None,从最严开始
三、运行时加一层防护网
光靠配置不够,得有主动防御能力:
- 启用
mod_evasive防简单洪水攻击:编译时加入,配置里设DoSMaxRequestsPerSecond和DoSEmailNotify - 用
mod_ssl配强TLS:禁用SSLv2/SSLv3,只开TLSv1.2和TLSv1.3,加密套件优先选ECDHE前向保密类 - 加
Content-Security-Policy头防XSS:Header set Content-Security-Policy "default-src 'self'; script-src 'self' https://cdn.example.com" - 对后台目录做IP白名单:
<directory> Require ip 203.0.113.50 </directory>
四、系统层降低被攻破后的危害
即使Apache被突破,也要让它干不了坏事:
- 用专用低权限用户运行进程,比如创建
www-data用户,User www-data、Group www-data写进httpd.conf - 网站根目录及子目录权限设为
755,静态文件644,可执行脚本除外;禁止php等脚本目录有write权限 - 删掉无用组件:
rm -rf /usr/share/httpd/manual、rm -rf /var/www/cgi-bin/ - 防火墙只开
80和443,管理端口如22单独限制IP访问










