citadel 与 504 端口
504 是 IANA 早期登记的服务名 citadel 对应的端口,登记对象是开源协作/群件平台 Citadel 的邮件与协同组件。它落在 0-1023 的系统端口区间,按 RFC 6335 的口径由 IANA 集中管理;当年登记只要求给出名称、用途说明和联系人,所以注册表里有条目,不代表今天还能找到可运行的实现。
基本信息
| 服务名 | citadel(Citadel 群件) |
|---|---|
| 传输层 | TCP 与 UDP 各占一条登记记录 |
| 号码区间 | 0-1023 系统端口(RFC 6335) |
| 登记联系人 | Art Cancro |
| 公开实现 | 无资料,属历史登记 |
| 绑定权限 | Linux/macOS 需 root 或 CAP_NET_BIND_SERVICE |
什么情况下会遇到
- 资产扫描报表里出现一个没人认领的低位端口,需要先给它定性
- 老系统或虚拟化模板迁移时,存量进程清单里翻出上个世纪的软件残留
- /etc/services 里查得到名字,被误当成「本机在跑 Citadel」
- 防火墙或安全组里留着历史放行规则,来源已经说不清
- 合规评审要求逐个说明开放端口的业务归属与必要性
排查判定对照
| 观察到的情况 | 倾向判断 | 处理动作 |
|---|---|---|
| 有监听,进程属在用业务 | 业务自建或改造过 | 登记业务归属,按业务要求加固 |
| 有监听,进程是遗留或未知二进制 | 历史软件或植入物 | 留取证快照后隔离,再决定清理 |
| 无进程监听,但有防火墙放行 | 规则残留 | 走变更流程收口,记录依据 |
| 出现到公网地址的外联会话 | 需按失陷排查 | 断链取证,查进程父子关系与定时任务 |
| 只在 /etc/services 有名字 | 注册表遗留 | 无需处置,写进资产说明即可 |
四步定位
四步定位
ss -lntup 'sport = :504' # 看谁在监听(TCP/UDP 都看)
sudo lsof -i :504 # 拿到进程与可执行文件路径
ss -tnp state established '( sport = :504 )' # 查已建立的会话
ps -o pid,ppid,user,cmd -p <PID> # 核对进程属主与启动方式
grep -w 504 /etc/services # 看本地登记表里的名字
getent services 504/tcp # 走 NSS 再确认一次/etc/services 的名字来自 IANA 注册表,只能说明「这个号码被登记过」,不能证明本机在处理对应业务。任何程序都可以绑定 504,名字和实际监听者之间没有强制关系。
查原始登记用 IANA 的 CSV:curl -s https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.csv | grep -w 504。CSV 的字段是服务名、端口号、传输层、说明、指派人、联系人、登记日期与参考号,比二手端口表可靠。
低位端口在公网可达时的暴露成本很高:扫描器会把它当作服务指纹线索。若确认没有业务使用,优先在边界封禁,而不是只在本机停进程。