




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Rsync + ssh 安全通道进行同步出自学习笔记跳转到: 导航, 搜索目录 1 应用说明 1.1 加密传输 1.2 同步方向 2 环境说明 2.1 硬件环境 2.2 网络环境 2.3 系统环境 3 软件简介 3.1 SSH的简介 3.2 RSYNC的简介 4 软件安装 4.1 SSH的安装 4.2 RSYNC的安装 4.2.1 ports方式安装 4.2.2 手工安装 4.3 ssh的配置 4.3.1 创建帐户 4.3.2 生成公钥和私钥 4.3.3 拷贝到客户端 4.3.4 测试登录 5 Rsync的配置 5.1 Rsync的常用参数 5.2 控制脚本 6 运行 7 结束语 8 附录 8.1 1 RSYNC 参数详解 8.2 2 中文编码问题 应用说明 正如很多人知道的那样,Rsync可是开源同步软件中的老大哥。很多人(当然也包括我自己)都在使用它来进行同步、备份工作。它的功能强大,应用灵活,就不多说了。如果对Rsync前世今生很感兴趣,那么一会看看简介,然后到他们官方网站好好看看。 虽然Rsync很强大,但是它并没有直接支持加密传输。也就是说,它是直接明文传输的,对于一些安全要求高的数据,那就不太保险了。不信?你可以用抓包工具试试看。 如果要传输保密文件,那怎么办?放心,Rsync提供了ssh通道功能。也就是通过ssh安全通道来传输,传输过程中,数据是经过ssh加密的。不信?你还是可以抓包看看。 这就是我们要进行的工作了,配置一个具有ssh安全通道的,安全级别高的同步体系。 加密传输 我们利用SSH来达到安全通道的目的。SSH 的 RSA 和 DSA 认证协议的基础是一对专门生成的密钥,分别叫做 专用密钥和 公用密钥(简称 私钥和公钥,下面我们都使用简称)。使用这些基于密钥的认证系统的优势在于:在许多情况下,有可能不必手工输入密码就能建立起安全的连接。 尽管基于密钥的认证协议相当安全,但是如果不注意保护,把私钥泄露了,那么别人也就可以登录到有公钥的服务器。那就很不安全了。 因此居于安全考虑,我们进行的同步配置,是居于普通用户来进行备份的。 同步方向 在这里采用的,不是常见的C/S模式,即源服务器运行rsync -daemon模式,备份服务器主动同步。而是采用SSH通道模式,不需要配置rsync -daemon。从源服务器直接同步到备份服务器。 环境说明 我配置的是A、B 两台主机,A主机做为源服务器,B主机作为客户端。 硬件环境 两台服务器的配置一样,硬件配置如下: 单志强2.4G CPU2G 内存36G SCSI硬盘1G inter网卡网络环境 两台服务器在同一个机房,但是不同网段。IP地址分别设置如下: A服务器的IP地址:B服务器的IP地址:1系统环境 操作系统: A、B两台服务器均安装了FreeBSD 6.2-RELEASE-p2(通过make world升级到最新)。SSH是系统自带的版本: # ssh -VOpenSSH_4.5p1 FreeBSD-20061110, OpenSSL 0.9.7e-p1 25 Oct 2004软件简介 由于我们是在unix/linux下使用SSH和RSYNC,因此仅仅介绍SSH和RSYNC,而不介绍系统以及其他软件。 SSH的简介 SSH是英文Secure Shell的简写形式。通过使用SSH,你可以把所有传输的数据进行加密,这样中间人这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为 FTP、Pop、甚至为PPP提供一个安全的通道。 最初的SSH是由芬兰的一家公司开发的。但是因为受版权和加密算法的限制,现在很多人都转而使用OpenSSH。OpenSSH是SSH的替代软件包,而且是免费的,可以预计将来会有越来越多的人使用它而不是SSH。目前所发行的开源UNIX/Linux,默认都会带有OpenSSH(一些可能需要你额外的安装一下)。 如果你喜欢的话,也可以安装SSH,他虽然有限制,但是对于非商业用户,是可以免费使用的。 相关链接如下: /products/ssh_secure_shell/RSYNC的简介 在RSYNC的官方网站上,对于RSYNC的介绍非常简单。 rsync 是一个开放源码的快速的文件同步工具,是在GUN的GPL2协议下发布的。所以任何人都可以免费的使用设置修改和再发行它。rsync的作者是 Wayne Davison。 相关链接如下: /软件安装 SSH的安装 由于系统会自带有SSH,我们就直接使用系统自带的SSH,而不再单独安装。 我会另外写一个SSH安装配置的专题文章。 RSYNC的安装 我是在FreeBSD上进行的安装配置,因此同时给出利用FreeBSD的ports安装和手工安装两种方式。其中手工安装方式,也可以在Linux下进行。 ports方式安装 在开始ports安装之前,先做一次ports更新。这样做的目的是让ports保持最新,并且让通过ports安装的软件是最新的。 用CVSUP更新: # cvsup -L2 -g /opt/etc/ports-supfile 你需要根据自己的ports-supfile文件路径来指定。进入rsync的ports目录: # cd /usr/ports/net/rsync/查看软件版本信息: # cat distinfoMD5 (rsync-2.6.9.tar.gz) = 996d8d8831dbca17910094e56dcb5942SHA256 (rsync-2.6.9.tar.gz) = ca437301becd890e73300bc69a39189ff1564baa761948ff149b3dd7bde633f9SIZE (rsync-2.6.9.tar.gz) = 811841由此我们可以得知rsync的版本是 2.6.9,也就是目前最新的发行版本。 选择配置: # make config POPT_PORT Use popt from devel/popt instead of bundled one X TIMELIMIT Time limit patch X FLAGSP File system flags support patch, adds -flags ACLSP ACL support patch, adds -acls X SSH Use SSH instead of RSH 在出现选项界面里,通过移动上下键和空格键,选择SSH,也就是用SSH替换RSH。其他的默认就可以了。 完成安装: # make install clean很简单吧?使用ports的好处就是,安装太方便了。只要执行 make install 它会自动下载,编译,安装。clean 是告诉ports,安装完后,清楚源码文件和其他过程文件。 手工安装 下载安装包 下载页面: /ftp/rsync/具体下载链接: /ftp/rsync/rsync-2.6.9.tar.gz解压和配置 # tar -zxvf rsync-2.6.9.tar.gz # cd rsync-2.6.9 # ./configure -disable-debug -with-rsh=ssh 说明: 由于 -with-rsh=默认就是ssh,所以也可以不显式指定这个配置项; 还可以通过 -prefix=/path 来指定安装目录,默认则安装到/usr/local/bin目录; 关闭调试模式 -disable-debug; 也可以通过 ./configure -help 查看更多选项,再根据自己的需要来设定。编译和安装 # make # make install至此,没有出现什么错误的话,整个手工安装过程就完毕了。 ssh的配置 在这里的配置,当然不是指如何配置SSH服务啦。而是指配置用来SSH登录相关的帐户的公钥、私钥。 注意: 备份服务器必须运行sshd服务。创建帐户 在A、B两台服务器上各创建一个普通帐户,不需要设置密码。 在FreeBSD下创建帐户: # pw user add -d /home/mybackup -n mybackup在Linux下创建帐户: # useradd -d /home/mybackup mybackup生成公钥和私钥 这些操作是在同步源服务器,就是有需要做备份数据的服务器。这里是指A主机。 首先,切换到mybackup帐户以及该帐户的用户目录下: # su mybackup$ cd $ pwd/home/mybackup$ mkdir .ssh$ cd .ssh$ pwd/usr/home/mybackup/.ssh生成公钥、私钥: $ ssh-keygen -t dsa -b 1024Generating public/private dsa key pair.Enter file in which to save the key (/home/mybackup/.ssh/id_dsa):Enter passphrase (empty for no passphrase):Enter same passphrase again:Your identification has been saved in /home/mybackup/.ssh/id_dsa.Your public key has been saved in /home/mybackup/.ssh/id_dsa.pub.The key fingerprint is:20:7c:c3:b4:69:a7:e1:af:f3:e3:ae:e7:9d:0a:b6:69 注意:当提示 Enter passphrase (empty for no passphrase): 时,不要输入,直接回车;并且提示 Enter same passphrase again: 时,也直接回车。这时候,我们就会得到公钥、私钥两个文件在.ssh目录下。我们查看一下: $ ls -al .sshtotal 8drwxr-xr-x 2 mybackup mybackup 512 Mar 22 17:48 .drwxr-xr-x 3 mybackup mybackup 512 Mar 22 17:46 .-rw- 1 mybackup mybackup 672 Mar 22 17:48 id_dsa-rw-r-r- 1 mybackup mybackup 613 Mar 22 17:48 id_dsa.pub其中 id_dsa 是密钥文件,id_dsa.pub 顾名思义,是公钥文件啦。 拷贝到客户端 因为我们之前生成的公钥、密钥,都是在源服务器上操作。而客户端(做备份的服务器)上,需要有刚才生成的公钥,才能不提示输入密码,直接登录ssh。 使用scp来远程拷贝: $ scp /home/mybackup/.ssh/id_dsa.pub root1:/home/mybackup/.ssh/authorized_keys如果用户名、密码和文件路径没有错误,在按提示输入1的root密码后,很快就会把id_dsa.pub文件拷贝过去了。 测试登录 将公钥拷贝到客户端后,我们来测试下能不能在源服务器上不用输入密码ssh登录客户端服务器。 $ ssh -l mybackup 1或者: $ ssh mybackup1如果没有提示输入密码,就登录到1 服务器,那恭喜你,说明配置成功了。 Rsync的配置 事实上,我们在利用SSH通道来运行RSYNC时,是不需要配置一个Rsync服务器的。在这里我们指的配置,是有两方面,一是运行rsync的参数,一是运行同步控制的脚本。 Rsync的常用参数 rsync 常用的运行参数说明: -v, verbose 详细模式输出-c, checksum 打开校验开关,强制对文件传输进行校验-a, archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD-r, recursive 对子目录以递归模式处理-p, -perms 保持文件权限-o, -owner 保持文件属主信息-g, -group 保持文件属组信息-e, -rsh=COMMAND 指定替代rsh的shell程序-delete 删除那些DST中SRC没有的文件-progress 显示备份过程-t, -times 保持文件时间信息-z, -compress 对备份的文件在传输时进行压缩处理-stats 给出某些文件的传输状态测试rsync同步,将A主机的/opt/etc同步到B主机的/tmp/myetc目录下: $ rsync -vzrtopg -progress -stats -delete -e ssh /opt/etc mybackup1:/tmp/myetc然后到B主机的/tmp/myetc目录下看看,是不是发现一个etc目录,并且这个etc目录下面的文件,跟A主机的/opt/etc目录下面的文件一样。 控制脚本 因为往往备份的目录是相对固定的,如果每次备份都要输入那么长一串,会不会觉得很麻烦呢?那我们写一个脚本来工作,并且利用crontab来定时定点的执行同步工作。 控制脚本代码如下: #!/bin/sh# rsyncer.sh# author Jonsen Yang( 16hot )# home # date 2007-03-20#LOCAL_DIR=/opt/etc;REMOTE_USER=mybackup;REMOTE_HOST=1;REMOTE_DIR=/tmp/myetc;RSYNC_CMD=/usr/local/bin/rsync;RSYNC_LOG=/opt/var/log/rsync.log;RSYNC_RUN=$RSYNC_CMD -vzrtopg -progress -stats -delete -e ssh $LOCAL_DIR $REMOTE_USER$REMOTE_HOST:$REMOTE_DIR;$RSYNC_RUN $RSYNC_LOG 2&1;# end rsyncer.sh将 rsyncer.sh 脚本保存到 /opt/bin(或者你自己的工作目录)目录下,还要注意保证设置好mybackup用户可以执行的属性。 $ chmod +x /opt/bin/rsyncer.sh另外,要注意 /opt/var/log/rsync.log 也必须是mybackup帐户可以读写才行。 运行 经过上面的步骤后,可谓万事俱备,只欠运行了。其实也很简单,我们只需要设置crontab,定时执行备份脚本进行备份就可以了。 $ crontab -e0 3 * * * /opt/bin/rsyncer.sh这样,每天凌晨3点,就会自动执行 /opt/bin/rsyncer.sh 进行备份了。 结束语 在开源软件里,很多很多很好用而且分文不收的软件。我们合理的利用这些软件,可以为我们带来很多很多好处。比如,节省成本,提高工作效率等等。 因此,多学习开源软件,是很好的。 作者: Jonsen Yang( 16hot、 杨明茂 ) 附录 1 RSYNC 参数详解 -v, verbose 详细模式输出-q, quiet 精简输出模式-c, checksum 打开校验开关,强制对文件传输进行校验-a, archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD-r, recursive 对子目录以递归模式处理-R, relative 使用相对路径信息-b, -backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为filename。可以使用-suffix选项来指定不同的备份文件前缀。-backup-dir 将备份文件(如filename)存放在在目录下。-suffix=SUFFIX 定义备份文件前缀-u, -update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件)-l, -links 保留软链结-L, -copy-links 想对待常规文件一样处理软链结-copy-unsafe-links 仅仅拷贝指向SRC路径目录树以外的链结-safe-links 忽略指向SRC路径目录树以外的链结-H, -hard-links 保留硬链结-p, -perms 保持文件权限-o, -owner 保持文件属主信息-g, -group 保持文件属组信息-D, -devices 保持设备文件信息-t, -times 保持文件时间信息-S, -sparse 对稀疏文件进行特殊处理以节省DST的空间-n, -dry-run现实哪些文件将被传输-W, -whole-file 拷贝文件,不进行增量检测-x, -one-file-system 不要跨越文件系统边界-B, -block-size=SIZE 检验算法使用的块尺寸,默认是700字节-e, -rsh=COMMAND 指定替代rsh的shell程序-rsync-path=PATH 指定远程服务器上的rsync命令所在路径信息-C, -cvs-exclude 使用和CVS一样的方法自动忽略文件,用来排除那些不希望传输的文件-existing 仅仅更新那些已经存在于DST的文件,而不备份那些新创建的文件-delete 删除那些DST中SRC没有的文件-delete-excluded 同样删除接收端那些被该选项指定排除的文件-delete-after 传输结束以后再删除-ignore-errors 及时出现IO错误也进行删除-max-delete=NUM 最多删除NUM个文件-partial 保留那些因故没有完全传输的文件,以是加快随后的再次传输-force 强制删除目录,即使不为空-numeric-ids 不将数字的用户和组ID匹配为用户名和组名-timeout=TIME IP超时时间,单位为秒-I, -ignore-times 不跳过那些有同样的时间和长度的文件-size-only 当决定是否要备份文件时,仅仅察看文件大小
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农业种植区域技术承包协议
- 供水管网消隐改造工程实施方案
- 《电磁波谱及其应用:高中物理进阶课程教案》
- 化学无机化学知识点梳理与练习
- 《罗马法的起源与影响:大学法律专业教案》
- 电竞行业赛事组织流程
- 企业间技术咨询顾问协议
- 2025年气候变化对水资源管理的影响及应对能力测试卷及答案
- 2025年可持续发展与环境政策考试试题及答案
- 2025年机械设计与制造考试试题及答案
- 低压电工证考试试题及答案
- 2025年大学生学术研究洞察报告
- 2025年广东中考化学模拟演练化学试卷B(含答案)
- 2025年全国二卷数学高考真题文字版
- 成都香城悦动置业有限公司招聘考试真题2024
- T/CTRA 01-2020废轮胎/橡胶再生油
- 可信数据空间解决方案星环科技
- 2025广西专业技术人员公需科目培训考试答案
- 钳工安全测试题及答案
- 2023年北京西城区初一(下)期末数学试题及答案
- 负压气力输送系统
评论
0/150
提交评论