在 CentOS 上“隐藏 Apache”通常指隐藏或伪装 Apache 的版本信息、Banner 以及特征,从而降低被扫描和攻击的风险。下面是常用且实用的做法。
httpd.conf编辑配置文件(路径可能不同):
vi /etc/httpd/conf/httpd.conf
找到并修改以下两项:
ServerTokens Prod
ServerSignature Off
说明:
ServerTokens Prod:只显示 Apache,不显示版本和模块ServerSignature Off:关闭错误页中的 Apache 信息systemctl restart httpd
验证:
curl -I http://localhost
应看不到 Server: Apache/2.4.6 (CentOS) 这样的详细版本。
Apache 默认仍会发送:
Server: Apache
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
mod_security(更彻底)yum install mod_security -y
配置中启用:
SecServerSignature "Unknown"
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 不对外可见 / 完全隐藏进程”或“隐藏网站入口”**,可以告诉我你的具体场景,我可以给更针对性的方案。