温馨提示×

centos怎样隐藏apache

小樊
46
2026-09-11 21:20:08
栏目: 智能运维

在 CentOS 上“隐藏 Apache”通常指隐藏或伪装 Apache 的版本信息、Banner 以及特征,从而降低被扫描和攻击的风险。下面是常用且实用的做法。


一、隐藏 Apache 版本信息(最重要)

1. 修改 httpd.conf

编辑配置文件(路径可能不同):

vi /etc/httpd/conf/httpd.conf

找到并修改以下两项:

ServerTokens Prod
ServerSignature Off

说明:

  • ServerTokens Prod:只显示 Apache,不显示版本和模块
  • ServerSignature Off:关闭错误页中的 Apache 信息

2. 重启 Apache

systemctl restart httpd

验证:

curl -I http://localhost

应看不到 Server: Apache/2.4.6 (CentOS) 这样的详细版本。


二、隐藏或修改 Server 头(伪装)

Apache 默认仍会发送:

Server: Apache

方法 1:使用 mod_headers(推荐)

vi /etc/httpd/conf/httpd.conf

添加:

<IfModule mod_headers.c>
    Header unset Server
    Header always set Server "WebServer"
</IfModule>

重启 Apache:

systemctl restart httpd

方法 2:使用 mod_security(更彻底)

yum install mod_security -y

配置中启用:

SecServerSignature "Unknown"

三、隐藏 PHP 信息(如果用了 PHP)

vi /etc/php.ini

修改:

expose_php = Off

重启 Apache。


四、修改错误信息页面(避免泄露)

vi /etc/httpd/conf/httpd.conf
ErrorDocument 404 /404.html
ErrorDocument 500 /500.html

创建自己的页面,不要使用默认 Apache 页面。


五、关闭目录浏览

Options -Indexes

六、可选:修改监听端口(降低扫描)

vi /etc/httpd/conf/httpd.conf
Listen 8080

七、防火墙配合(进一步隐藏)

firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload

总结(最小必做)

ServerTokens Prod
ServerSignature Off
Header unset Server
expose_php = Off(如用 PHP)

如果你指的是**“让 Apache 不对外可见 / 完全隐藏进程”“隐藏网站入口”**,可以告诉我你的具体场景,我可以给更针对性的方案。

0