单纯靠重定向无法屏蔽非法嗅探,真正有效的是让80端口对非法Host请求返回444、禁用默认server块、隐藏版本号、自定义错误页并配合防火墙限制访问。
单纯靠重定向无法屏蔽非法嗅探,它只能把 HTTP 请求转走,但端口本身仍开放、仍可被探测或发起连接。真正有效的安全加固,是让 80 端口不响应非法请求,同时确保合法跳转行为可控、不暴露后端细节。
只对已知域名做精准 301 跳转
避免使用
或通配符匹配所有 Host。攻击者常伪造 Host 头发起探测,若 Nginx 对任意 Host 都返回 301,等于主动确认该 IP 正在运行 Web 服务,反而暴露存在性。
应明确列出允许跳转的域名:
不在列表中的请求,统一返回 444(Nginx 特有“关闭连接”状态码),不发任何响应头或 body
这样既阻断非法 Host 探测,又不影响真实用户访问
禁用默认 server 块响应
Nginx 启动时总会有一个默认 server 块处理未匹配的请求。若未显式配置,它可能返回默认欢迎页或版本信息,泄露 Nginx 版本等敏感数据。
做法是添加一个“兜底” server 块,监听 80 端口但不做跳转:
Nginx
在宝塔面板中轻松管理Nginx高性能Web服务器。提供可视化配置反向代理、负载均衡、SSL证书及HTTP缓存功能,一键优化高并发性能,助您高效搭建稳定、快速的网站运行环境。
下载
放在所有其他 server 块之前,确保它优先匹配未声明的请求
444 状态码会让连接直接断开,无响应、无日志(默认)、无指纹泄漏
关闭不必要的响应头与错误页
即使做了跳转,Nginx 默认可能返回
这类头,或在出错时显示带版本号的错误页,都属于信息泄露。
在对应 server 块中加入:
—— 隐藏版本号
+ 自定义精简错误页(不含服务器标识)
避免使用
,改用
,更轻量、更可控、不触发正则引擎
配合防火墙限制非必要访问
重定向是应用层手段,底层防护不能缺。建议补充:
用
或
限制 80 端口仅允许主流搜索引擎 User-Agent(如 Googlebot、Bingbot)或已知 CDN IP 段访问(可选)
对高频、无 Host 头、User-Agent 为空或含扫描特征(如 sqlmap、nmap)的请求,直接 DROP
注意:此步需谨慎测试,避免误伤正常爬虫或移动端请求
server_name _;server_name example.com www.example.com;server { listen 80 default_server; return 444; }Server: nginx/1.18.0server_tokens off;error_page 400 403 404 405 497 /404.html;rewrite ... permanentreturn 301ufwiptables