rsync服务的安装、配置、使用及其安全问题

来源:互联网 发布:网络分为哪几类 编辑:程序博客网 时间:2024/06/07 14:55

rsync(remote sync)远程同步服务,该服务启动后监听TCP 873端口,采用客户端/服务器模式,用于在两台主机之间传输文件,类似于FTP服务。

rsync服务的安装与配置:

在这里我以CentOS 6.8为例1、yum -y install xinetd.x86_64 /* 安装xinetd服务 */2、yum -y install rsync.x86_64 /* 安装rsync软件 */3、vim /etc/rsyncd.conf /* 创建rsync服务端配置文件 */4、配置文件的内容如下,我只填写了部分配置指令,还有很多指令没有配置(采用默认值)### 全局配置 ###### start #### 日志文件log file = /var/log/rsyncd/rsyncd.log# 记录pidpid file = /var/log/rsyncd/pid.log# 目前不知道这个文件的作用,但这样配置没错lock file = /var/log/rsyncd/lock.log# 用户、密码保存文件secrets file = /var/log/rsyncd/passwd.log# 欢迎消息motd file = /var/log/rsyncd/motd.log# 以哪个用户启动进程uid = rootgid = root### end ###### 模块配置 ###### start #### tmp模块[tmp]# 是否只读, 修改为false则允许上传文件, 默认为trueread only = false# 允许的客户端IP地址hosts allow = 0.0.0.0/0# 禁止连接的IP地址hosts deny = 192.168.4.13# 是否允许列出目录结构list = true# 是否启用chrootuse chroot = false# 该模块对应的物理路径path = /tmp# 模块描述语句comment = this is tmp module.# 允许登录的用户, 这里的用户跟系统内置用户没有任何关系auth users = admin# 该模块最大并发连接数max connections = 5### end ###5、touch /var/log/rsyncd/rsyncd.log /* 创建日志文件 */6、touch /var/log/rsyncd/pid.log /* 创建PID文件 */7、touch /var/log/rsyncd/lock.log /* 创建lock文件 */8、echo "admin:123456" >> /var/log/rsyncd/passwd.log && chmod 600 /var/log/rsyncd/passwd.log /* 创建用户名:密码文件,并修改文件权限 */9、echo "Welcome to rsync server!" >> /var/log/rsyncd/motd.log /* 创建欢迎消息文件 */10、vim /etc/xinetd.d/rsync /* 修改rsync服务的xinetd文件,将文件里的disable选项设置为:no就行了 */11、service xinetd restart /* 重启xinetd服务,执行完这条命令后rsync服务也随之启动 */12、netstat -ant /* 查看TCP端口使用情况,开启rsync服务后873端口被监听 */
rsync客户端使用:
注释:-a /* 归档(archive)模式,以递归方式传输文件,并且保持所有文件属性不变 */-v /* 显示详细过程 */-L  /* 传输软连接的实际文件 */admin /* 登录rsync服务端使用的用户名 */1、rsync -a /root/scan /tmp/ /* 将本地计算机的/root/scan目录拷贝到本地主机的/tmp/目录下,等同于shell中的cp命令 */2、rsync -av admin@192.168.2.131::tmp/123.txt ./ /* 将远程主机(192.168.2.131)tmp模块下的123.txt文件下载到当前目录 */3、rsync -v ./kali.log admin@192.168.2.131::tmp/ /* 将当前目录下的kali.log上传到远程主机(192.168.2.131)的tmp模块下 */4、rsync -v admin@192.168.2.131::tmp/test/ /* 列出tmp模块下test目录的目录结构 */5、rsync 192.168.2.131:: /* 列出远程主机上所有可用的模块 */

rsync的安全问题:

1、rsync服务进程不要以root权限运行,除非你必须有这种需求。

你可以让rsync服务进程以nobody身份运行,但必须调整各模块相应路径的权限,让nobody用户具有合适的权限(读、写、执行)。

如果rsync存在代码执行漏洞,那么高权限的进程可能产生很大的危害。

2、重要数据文件所在模块要配置密码,不允许匿名访问。

例如,我曾遇到一种情况:某企业的游戏开发代码是利用rsync服务进行同步的,然而他们的某些模块不需要密码即可访问,我可以清楚地看到他们的目录结构,甚至下载了一些图片文件。

由此可见,没有密码保护的rsync服务就是互联网中的公开仓库,很容易被人盗取资料。

3、rsync采用明文传输数据,存在被窃听网络流量的可能,但是你可以结合SSH服务,让你的数据通道更加安全。

rsync -av root@192.168.2.131:/root/* ./root_2//* 将远程主机/root目录(绝对路径)下的所有文件下载到本机主机的./root_2目录;注意:使用SSH加密通道,root是登录SSH服务时使用的账号 */

原创粉丝点击