rsync安全设置
下面总结下rsync设置中要注意的安全问题
设置别的端口
虽然这个效果有限,但是有总比没有的好。
隐藏module信息
list = false
只读设置
不需要写入权限的module的设置为只读:
read only = true
IP限制
白名单限制,只允许必要访问的主机访问。
hosts allow = 123.123.123.123
基本用户验证
只允许指定的用户利用指定的密码使用rsync服务。
服务端配置:
auth users = ottocho
secrets file = /etc/rsyncd.secrets
而文件/etc/rsyncd.secrets
中写入使用的帐号密码,格式为每行username:password。这里password是明文。
而客户端使用时,可以利用 --password-file=/etc/rsyncd.secrets
参数,在/etc/rsyncd.secrets
中写入密码。
rsync -av --password-file=/etc/rsyncd.secrets test.host.com::files /des/path
以上提到的/etc/rsyncd.secrets
密码文件,用户用户组必须和使用者一致,且权限必须是600。
ssh
rsync并没有直接支持加密传输。也就是说,它是直接明文传输的。如果需要rsync重要性很高的数据,自然想到了ssh。
rsync同步有两种模式:当源路径或目的路径的主机名后面包含一个冒号分隔符时,rsync使用ssh传输;当源路径或目的路径的主机名后面包含两个冒号,或使用rsync://URL时,rsync使用TCP直接连接rsync daemon。
所以还是这样用吧,在配置好ssh后:
rsync -av test.host.com:/path/to/files /des/path
配置文件
rsync的配置文件的键值用等号连接。但是如果手抖漏了这个等号,它是不会报错的!!!!!它只会把语法出错的一行直接忽视!!!!!所以配置时,务必进行测试,对没有权限的情况进行特别的测试。
其他
对ip和端口利用ipfilter或iptables进行更低层级的限制。
乌云安全配置文章 http://drops.wooyun.org/papers/161