rsync安全配置

来源:互联网 发布:sql server数据类型 编辑:程序博客网 时间:2024/05/28 06:05

rsync是类unix系统下的数据镜像备份工具——remote sync。一款快速增量备份工具 Remote Sync,远程同步 支持本地复制,或者与其他SSH、rsync主机同步。

rsync 包括如下的一些特性:

  • 能更新整个目录和树和文件系统;
  • 有选择性的保持符号链链、硬链接、文件属于、权限、设备以及时间等;
  • 对于安装来说,无任何特殊权限要求;
  • 对于多个文件来说,内部流水线减少文件等待的延时;
  • 能用rsh、ssh 或直接端口做为传输入端口;
  • 支持匿名rsync 同步文件,是理想的镜像工具;


0x01 Rsync服务器架设(kali系统为例)

安装Rsync和xinetd包

$ apt-get -y install xinetd rsync

确保xinetd运行在levels 3或4或5。

$ chkconfig --level 345 xinetd on

--level    <等级代号>  指定读系统服务要在哪一个执行等级中开启或关毕。

  • 等级0表示:表示关机
  • 等级1表示:单用户模式
  • 等级2表示:无网络连接的多用户命令行模式
  • 等级3表示:有网络连接的多用户命令行模式
  • 等级4表示:不可用
  • 等级5表示:带图形界面的多用户模式
  • 等级6表示:重新启动

修改rsync xinetd配置文件

$ vim /etc/xinetd.d/rsync
service rsync{        disable = no        socket_type     = stream        wait            = no        user            = root        server          = /usr/bin/rsync        server_args     = --daemon --config=/etc/rsyncd.conf        log_on_failure  += USERID}

创建rsync共享配置文件

$ vim /etc/rsyncd.conf
secrets file = /etc/rsyncd.secrets #密码文件位置,认证文件设置,设置用户名和密码read only = no  #yes只读 值为NO意思为可读可写模式,数据恢复用NOlist = yes uid = nobody  #以什么身份运行rsyncgid = nobody[out] #模块名 path = /var/www #rsync同步的路径hosts allow = 192.168.74.130 #允许访问的IPauth users = test #/etc/rsyncd.secrets中的用户名UID = 0 #设置后以uid = nobody 运行不会报错GID = 0

创建rsync的密码文件,格式 username:password

$ vim /etc/rsyncd.secrets

修改权限与所有权,重启xinetd服务:

$ chown root.root /etc/rsyncd.*$ chmod 600 /etc/rsyncd.*$ service xinetd restart

然后就可以通过如下命令访问了:

下载文件: rsync -vzrtopg --progress --delete test@192.168.74.129::www /var/www/

本地同步远程时候,本地同步后的路径和远程一样,也就是说远程/var/www,本地获取远程的内容也会保存在本地的/var/www/目录下

上传文件: rsync -vzrtopg --progress /var/www/add.txt test@192.168.74.129::www

参数说明

-vzrtopg里的v是verbose,z是压缩,r是recursive,topg都是保持文件原有属性如属主、时间的参数。--progress是指显示出详细的进度情况--delete参数会把原有getfile目录下的文件删除以保持客户端和服务器端文件系统完全一致test@192.168.74.129中的test是指定密码文件中的用户名,192.168.74.129为服务器ip地址www是指在rsyncd.conf里定义的模块名/var/www 是指本地要备份目录

0x02 默认不当的危害

默认是匿名访问,也就是说不需要账户密码就可以登录。那么就可以下载配置路径下的任意的文件了,还可以上传人已文件,本例中为web配置的路径/var/www,我们上传webshell后网站只要上线,我们便能成功getshell。

乌云案例

http://www.wooyun.org/bugs/wooyun-2010-091383

http://www.wooyun.org/bugs/wooyun-2013-039025

http://www.wooyun.org/bugs/wooyun-2010-085829


0x03 如何防范

配置用户密码,杜绝匿名访问,也要注意弱口令

配置host allow = 192.168.74.130 只允许配置的ip访问

rsync默认端口是873,设置iptables,添加一条规则,只允许内部网络访问873端口

iptables -A INPUT -i eth0 -p tcp -s 192.168.101.0/24 --dport 873 -m state --state NEW,ESTABLISHED -j ACCEPTiptables -A OUTPUT -o eth0 -p tcp --sport 873 -m state --state ESTABLISHED -j ACCEPT

 

 

0 0
原创粉丝点击