超级守护进程为什么要清理
xinetd 与 inetd 是超级守护进程,按需拉起 tftp、finger、chargen、echo 等一批历史服务。这些服务在现在的服务器上基本没有使用场景,其中 chargen 与 echo 这类 UDP 小服务还常被当作 DDoS 反射放大的素材。核查方法是逐文件看 disable 状态,最省事的处置通常是整包卸载。
基本信息
| 加固项 | 超级守护进程清理 |
|---|---|
| 适用平台 | Linux(xinetd 与 inetd) |
| 配置目录 | /etc/xinetd.d/ |
| 判定要点 | disable = no 表示该服务处于启用状态 |
| 迁移趋势 | 多数发行版已改用 systemd socket 单元 |
| 风险等级 | 中 |
典型使用场景
- 老系统基线核查:早期 RedHat 系主机常带 xinetd
- 反射攻击防护:chargen、echo、daytime 等 UDP 小服务必须关闭
- 资产清理:确认没有未知服务被按需拉起
- 迁移评估:仍有业务需求时把服务迁移到 systemd 单元托管
- 合规检查:确认无冗余的按需服务
核查与处置
核查与处置
# 列出托管服务与其启用状态
grep -rE 'disable\s*=\s*(no|NO)' /etc/xinetd.d/ 2>/dev/null
# 确认实际监听情况
ss -tulnp | head
# 无业务需求时停用超级守护进程
systemctl disable --now xinetd 2>/dev/null
# 确认没有残留的服务被按需唤起
systemctl list-sockets --no-pager | head配置写法判读
| 配置写法 | 含义 | 处置 |
|---|---|---|
| disable = yes | 服务关闭 | 保持现状 |
| disable = no | 服务启用 | 逐项确认业务需求后关闭 |
| 文件不存在 | 未安装该服务 | 无需处理 |
| systemd socket 单元 | 由 systemd 按需拉起 | 与 xinetd 分别核查,两处都要看 |
语义是倒装的:disable = no 才是启用,逐文件核对比只看服务名可靠得多。
chargen、echo、daytime 这类小服务没有业务需求时应一律关闭,它们是放大反射攻击的常用素材。
只查 /etc/xinetd.d 会漏掉由 systemd socket 单元托管的按需服务,两处必须分别核查。
tftp 与 finger 这类服务还有信息泄露问题:前者可被用来传输文件,后者能枚举系统上的账号。
落地检查点
- 逐文件核对 disable 状态,把仍启用的服务列成清单
- 对照业务需求确认哪些服务可以关闭,哪些需要迁移到 systemd 单元
- 关闭后用 ss 复核实际监听端口与服务进程
- 把 xinetd 的清理结果纳入基线报告,注明保留服务的业务理由