隐藏Linux服务Banner需修改各服务配置:SSH设DebianBanner no和VersionAddendum none;Nginx设server_tokens off;Apache设ServerTokens Prod和ServerSignature Off;vsftpd、Postfix等亦有对应参数,修改后重启服务并用telnet/curl/nmap验证。

隐藏Linux系统Banner信息,主要是防止远程服务(如SSH、HTTP、FTP等)在连接建立初期主动暴露操作系统、软件版本等敏感信息。攻击者常通过这些Banner识别目标环境,进而选择针对性漏洞利用方式。核心思路是关闭或修改服务自身输出的Banner,而非隐藏内核或系统层面的标识。
SSH服务Banner隐藏(最常见需求)
OpenSSH默认会在连接时显示服务版本,例如 SSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.6。可通过配置文件禁用:
- 编辑 /etc/ssh/sshd_config,添加或修改两行:
-
Debian/Ubuntu系:
DebianBanner no(禁用Debian定制Banner) -
通用隐藏:
VersionAddendum none(OpenSSH 6.9+ 支持,彻底移除版本后缀) - 保存后执行
sudo systemctl restart ssh生效
Web服务器(Nginx/Apache)Server头隐藏
HTTP响应头中的 Server: nginx/1.18.0 或 Server: Apache/2.4.52 同样泄露信息:
-
Nginx: 在 nginx.conf 的
http或server块中添加:server_tokens off; -
Apache: 编辑 /etc/apache2/conf-available/security.conf(或主配置),设置:
ServerTokens Prod和ServerSignature Off - 重启服务:
sudo systemctl restart nginx或sudo systemctl restart apache2
其他常见服务Banner控制
部分服务需手动调整或依赖编译选项,但多数可通过配置简化:
-
vsftpd(FTP): 在 /etc/vsftpd.conf 中设置
ftpd_banner=Welcome to FTP service.(自定义)或注释掉该行使用默认精简提示 -
Postfix(SMTP): 修改 /etc/postfix/main.cf,添加
smtpd_banner = $myhostname ESMTP(去掉版本号) -
Redis: 默认不暴露版本,但若启用了
info命令且未设密码,可能泄露。建议启用requirepass并禁用危险命令
验证是否生效
修改后务必测试,避免误配导致服务异常:
- SSH:用
telnet your-server-ip 22或nc -v your-server-ip 22查看原始响应 - HTTP:用
curl -I http://your-domain.com检查Server头是否已简化 - 通用扫描:可临时用
nmap -sV --script=banner target-ip辅助验证(仅限授权环境)


















