rsync指定ssh端口进行文件同步的方法
有台服务器因为安全性需要,修改了默认的ssh端口为34778端口。
因此rsync使用ssh同步的时候需要指定ssh的端口
rsync提供了一个-e参数
-e参数的作用是可以使用户自由选择想使用的shell程序来连接远端服务器,因此也可以设置成使用默认的ssh来连接,这样我们就可以加入ssh的参数了
具体语句写法如下:
rsync -e 'ssh -p 34778' username@hostname:SourceFile DestFile
单引号,目的是为了使引号内的参数为引号内的命令所用
实例:
rsync -auz -e 'ssh -p 43378' /data/svn/ [email protected]:/data/backup
详解:
通过rsync,并使用auz参数,结合-e修改ssh的端口,将本地的/data/svn作为源数据,用root用户推到远端服务器192.168.1.254的/data/backup目录下。
需要注意的是源目录和目标目录是否带"/"结尾是有很大区别的
源目录带"/"结尾而目标目录不带,表示将源目录里面的所有文件(/data/svn/*)都同步到目标目录下(/data/backup/*)。
源目录带"/"结尾而目标目录也带“/”结尾,则表示将源目录作为文件夹,同步到目标目录下(/data/backup/svn/*)。
端口攻击之873端口rsync默认口令漏洞
1、简介:
rsync是Unix下的一款应用软件,它能同步更新两处计算机的文件与目录,并适当利用差分编码以减少数据传输。
2、Rsync使用教程:
用途:
当成镜像备份功能。
优点:
速度快,可对比本地文件,差异备份。
用法:
1、将/etc/内复制到/tmp/etc
rsync Cav /etc /tmp
2、将rsh.server的/etc 复制到本地 /tmp
rsync Cav Ce ssh [email protected]:/etc /tmp
3、通过rsync提供的服务(daemon),rsync使用873端口
Server:启动rsync,看:
/etc/xinetd.d/rsync
编辑:
/etc/rsyncd.conf
设置client端连接账号密码
Client:rsync Cav Cuser@hostname::/dir/path /local/path
三种模式差异在几个分号 :
命令:
Rsync [-avrlptgoD] [-e ssh] [user@hostIP:/dir] [/local/path]
-v 观察模式,输出更多资讯
-q 与 Cv 相反,仅显示错误信息
-r 递归复制,针对目录
-u 仅更新较新的文件
-l 复制连接的属性
-p 复制时保持属性不变
-g 保存原有群组
-o 保存原有拥有人
-D 保存原有装置属性
-t 保存原有时间属性
-I 忽略更新时间属性,档案比对较快
-z 加上压缩参数
-e 使用协议通道,例如ssh,-e ssh
-a 相对于-rlptgoD,所以-a最常用
3、安全问题:
rsync默认的端口是873,可以使用nmap扫描IP是否开放该端口。
nmap -n --open -p 873 x.x.x.x/24
找到开放端口后,查看时候可默认口令登陆。使用命令查看:
rsync -av x.x.x.x::
既然是同步文件,自然有选择查看、上传或者下载的能力,这要视权限设定。
运气好的情况下秒杀站点。
4、安全配置注意事项
注意两种方式防御,一是限定访问的IP,另一个是不允许匿名访问,添加用户口令。
限定IP的两种方式
IPTables防火墙
给rsync的端口添加一个iptables。
只希望能够从内部网络(192.168.101.0/24)访问:
iptables -A INPUT -i eth0 -p tcp -s 192.168.101.0/24 --dport 873 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 873 -m state --state ESTABLISHED -j ACCEPT
除此之外rsyncd.conf中的hosts allow也可以设置只允许来源ip。
hosts allow = X.X.X.X #允许访问的IP
添加用户口令
添加rsync用户权限访问,注意配置的是rsyncd.conf中的:
secrets file = /etc/rsyncd.secrets #密码文件位置,认证文件设置,设置用户名和密码
auth users = rsync #授权帐号,认证的用户名,如果没有这行则表明是匿名,多个用户用,分隔。