用rssh配置chroot的sftp

    平常网络管理中上传和下载文件,广泛都是使用ftp,可是因为ftp的安全性。咱们如今都会使用sftp和scp替代ftp。可是咱们更但愿用户只能scp和sftp来传文件,不但愿用户能登陆系统。     rssh就是这样一个软件,能够配合openssh把用户chroot在特定目录内上传和下载,并使该用户没法登陆终端shell。     从 http://www.pizzashack.org/rssh/ 下载 rssh-2.3.2.tar.gz。     编译安装rssh:     $./configure –prefix=/usr --sysconfdir=/etc     $make     $su -     #make install     新增一名用户做测试:     #useradd test   #安装普通方式创建用户     #usermod -s /usr/bin/rssh  test   #更改用户的shell     #sh mkchroot.sh /home/test    #设置用户登陆的目录为chroot     #vi /etc/rssh.conf     修改一下参数:     allowsftp     user=077:00010:“/home/test”     FAQ     因为用户登陆进chroot目录中后即没法访问/dev/log,因此用下面的命令在chroot目录中创建一个FIFO文件.         # service syslog stop         # /sbin/syslogd -a /home/test/dev/log         # service syslog start         查看/home/test/dev下面多了一个log文件。 10. # mknod -m 666 /home/test/dev/null c 1 3     # 此处会解决在Linux下用sftp链接时提示connection closed,而且syslog中没有任何错误提 示的状况。 11. 此时在linux下使用 # sftp read@serverip 或者 在win下使用filezilla经过sftp方式便可登陆。 问:想把用户限制在某个特定的目录下,该怎么办? 答:好比把read用户限制在 /usr/local/tomcat/webapps/ 下面,则:       1.  确保 /etc/passwd 中read用户的登陆shell为/usr/local/bin/rssh       2.  复制 /opt/chroot/user/ 下面的全部内容到/usr/local/tomcat/webapps 下面,而后修改/usr/local/tomcat/webapps下面的dev、etc等刚复制 过来的目录的拥有者为read,而且修改chroot目录下的 home/read的全部者和组为read。         3.  编辑/usr/local/etc/rssh.conf,修改user=.....中的目录到相应目录便可。 4.   登陆测试。 问:我想再添加一个受限用户,咋办? 答:凉拌。        1。 # useradd -s /usr/local/bin/rssh rsshtest & passwd rsshtest        2。 # grep rsshtest /etc/passwd >> /opt/chroot/user/etc/passwd        4。 编辑/usr/local/etc/rssh.conf,添加 user=rsshtest:022:00011:"/opt/chroot/user"        5。而后便可登录测试,若是想限制在其余特定的目录中,请参考上面的问题解答。 注意:        1.   若是在不一样的chroot目录中,只有从新执行/sbin/syslogd -a /chroot/user/dev/log才能在日志中记录新的用户的信息。        2.  若是不能登陆,试着把/chroot/user/dev/下的null删了重建。        3.  若是在/etc/ssh/sshd_config中作了allowUsers的限制,确保新加的用户在容许列表里面。 问:我彻底按照你的步骤作了,但win下使用filezilla没法登陆,系统日志中提示: 答:执行 ldd /usr/libexec/openssh/sftp-server,出现下面的文件,         libcrypto.so.6 => /lib64/libcrypto.so.6 (0x00002aaaaacc6000)         libutil.so.1 => /lib64/libutil.so.1 (0x00002aaaab00d000)         libz.so.1 => /usr/lib64/libz.so.1 (0x00002aaaab210000)         libnsl.so.1 => /lib64/libnsl.so.1 (0x00002aaaab425000)         libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00002aaaab63c000)         libresolv.so.2 => /lib64/libresolv.so.2 (0x00002aaaab870000)         libgssapi_krb5.so.2 => /usr/lib64/libgssapi_krb5.so.2 (0x00002aaaaba86000)         libkrb5.so.3 => /usr/lib64/libkrb5.so.3 (0x00002aaaabcb0000)         libk5crypto.so.3 => /usr/lib64/libk5crypto.so.3 (0x00002aaaabf38000)         libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00002aaaac15e000)         libdl.so.2 => /lib64/libdl.so.2 (0x00002aaaac360000)         libc.so.6 => /lib64/libc.so.6 (0x00002aaaac564000)         libkrb5support.so.0 => /usr/lib64/libkrb5support.so.0 (0x00002aaaac8b3000)         /lib64/ld-linux-x86-64.so.2 (0x00002aaaaaaab000)        检查 /opt/chroot/user下对应的目录中是否有上面所列的文件,没有的话复制进来,完成后再试就能够了。 本文参考以下文章: http://hi.baidu.com/feixingqi/blog/item/27f70d33fdd866fd1b4cff5d.html http://www.dup2.org/node/296
相关文章
相关标签/搜索