ident 是干什么的
ident(也称 auth,见 RFC 1413)是一套身份查询协议:一条 TCP 连接建立后,任何一方都能向对端 113 端口提问,问这条连接由哪个用户发起。查询内容就是一对端口号,应答里带 USERID 标记、操作系统名和登录用户名。IRC 时代服务器用它确认客户端身份,今天的系统基本默认关闭。
基本信息
| 服务 | ident(auth) |
|---|---|
| 协议 | TCP |
| 规范 | RFC 1413 |
| 查询参数 | 服务端口, 客户端端口 |
| 实现 | identd,多由 inetd/xinetd 拉起 |
| 现状 | 现代系统默认关闭 |
典型使用场景
- 老 IRC 网络在客户端接入时确认发起方身份
- 内网排障时确认某条连接究竟属于哪个登录用户
- 合规检查时确认主机上是否还挂着 identd
- 审计时判断 113 外联是否给连接建立带来额外等待
- 端口加固时确认不需要该服务的网段已经关闭它
基础用法
基础用法
printf '80, 54321\r\n' | nc -w2 192.0.2.10 113 # 手工发起一次查询
# 应答形如: 80, 54321 : USERID : UNIX : alice
ss -lntp | grep ':113 ' # 本机是否有 identd 在监听应答逐段读法
| 字段 | 含义 | 说明 |
|---|---|---|
| 80, 54321 | 被查询连接的服务端口与客户端端口 | 回答会原样带回这对端口号 |
| USERID | 响应类型,表示查到用户 | 查不到时返回 ERROR 一类文本 |
| UNIX | 对端自报的操作系统名 | 由对端填写,可以不真实 |
| alice | 本机登录者名称 | 可能是真实账号,也可能是占位值 |
不要把 ident 应答当安全依据:内容由对端自己生成,伪造毫无成本。它属于邻居告诉你他是谁的信任模型,只适合做辅助信息。
边界情况:服务端 113 无响应时,客户端可能等待超时。防火墙统一拒绝 113 的入站与外联,既减少暴露面,也去掉这类等待;确有老 IRC 客户端依赖时再按来源单独放行。
关闭方式:identd 通常挂在 inetd/xinetd 的服务列表里,注释掉对应条目并重启即可。主流 Linux 发行版默认不安装 identd,所以扫描到 113 开放,多半说明有人为兼容老客户端手工装过,值得追问用途。