首页/安全/安全加固速查/rsync 873 未授权访问整治
服务与端口收敛50 条

rsync 873 未授权访问整治

rsync 守护进程未认证即可列目录与下载文件,备份数据泄露常见:auth users + secrets file + 来源白名单三件套。

安全加固速查安全更新于 2026-10-13

873 匿名可读的代价

rsync 以守护进程方式运行且未配置认证时,任何能连到 873 端口的人都可以列出模块并下载文件,备份数据泄露事件里这是常见原因。加固靠三件套:auth users 指定认证账号、secrets file 保存口令(权限必须是 600)、hosts allow 限制来源白名单。

基本信息

适用平台Linux(rsyncd)
默认端口873
风险等级高
基线要求禁用匿名访问并限制来源
配置文件/etc/rsyncd.conf,口令文件权限 600

典型使用场景

  • 备份服务器暴露到内网后的安全核查
  • 排查谁可以匿名列出与下载备份数据
  • 新增备份任务时配置认证与来源限制
  • 把备份链路迁移到走 SSH 的 rsync 模式
  • 例行巡检确认没有匿名模块

核查与加固

核查与加固
ss -tlnp | grep ':873 '                     # 确认守护进程监听情况
rsync rsync://127.0.0.1/ 2>/dev/null | head  # 本地尝试匿名列出模块
grep -E '^(auth users|secrets file|hosts allow|read only|uid|gid)' /etc/rsyncd.conf   # 查看关键配置项
ls -l /etc/rsyncd.secrets                   # 口令文件权限必须为 600
systemctl restart rsyncd                    # 改完配置重启服务

走 SSH 模式的替代

走 SSH 模式的替代
rsync -avz -e ssh /data/ user@backup:/backup/data/   # 复用 SSH 认证与加密,不需要常驻守护进程
rsync -avz -e "ssh -i ~/.ssh/id_ed25519" /data/ user@backup:/backup/   # 需要免密时使用密钥

配置项读法

配置项含义注意点
auth users允许访问该模块的账号未配置等于匿名可访问
secrets file存放口令的文件权限必须 600
hosts allow来源地址白名单写错网段等于全放行
read only是否只读备份目标侧应保持只读
uid 与 gid以哪个身份读写文件不宜使用 root
secrets file 权限必须设成 600:否则本机上任何用户都能读到备份账号口令,内网横向移动就有了现成入口。
能用走 SSH 的 rsync 模式就尽量替换守护进程:它复用 SSH 的认证与加密,也少了一个需要长期维护的常驻服务。hosts allow 改完要从非白名单来源实测一次,网段写错很常见,看着收紧实际仍全放行。
备份链路中断常常是定时任务静默失败:改完配置除了手动跑一次同步,还要看 cron 或定时任务的日志,确认下一个周期的备份真的成功了。

易错点

  • hosts allow 网段写错等于全放行,改完必须从非白名单来源实际验证一次
  • secrets file 权限过宽,本机任意用户都能读走备份账号口令
  • 模块没配 auth users 就开放,等于匿名可列出并下载备份数据
  • 以 root 身份运行 rsync 模块,一旦被利用影响面最大,应指定专用的低权限 uid 与 gid

数据来源与参考

  • man 5 rsyncd.conf
  • CIS Benchmark:rsync 条目

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌