Sftp 服务限制用户访问权限
Sftp 服务限制用户访问权限
    Sftp 服务要想限制用户的访问权限(即sftp服务用户只能访问特定的文件目录),那么系统的OpenSSH 服务软件的版本必须是4.8p1及以上版本才支持,如果低于该版本,就要首先升级OpenSSH版本。
 
第一步:查看OpenSSH软件版
 
[root@Oracle-2 ~]# rpm -qa | grep ssh
openssh-4.3p2-36.el5
openssh-clients-4.3p2-36.el5
openssh-server-4.3p2-36.el5
openssh-askpass-4.3p2-36.el5
 
或者:
 
[root@Oracle-2 ~]# ssh -V
OpenSSH_4.3p2, OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
 
发现操作系统的OpenSSH软件是4.3p2,低于4.8p1版本,所以需要做升级。
 
第二步:下载最新的OpenSSH软件
 
OpenSSH是免费的,可以到上进行下载: www.openssh
当前最高版本是OpenSSH6.0,我们就可以下载该版本:openssh-6.
 
下载的时候,我们需要看一看官方安装指导文档Installation instructions ,里面有安装该版本的注意事项和安装步骤说明,最好仔细阅读一下。
 
 
第三步:确认OpenSSH软件安装条件
 
在官方安装指导文档中提到,安装OpenSSH6.0需要具备两个条件:
 
You will need working installations of Zlib and OpenSSL.
Zlib 1.1.4 or 1.2.1.2 or greater (ealier 1.2.x versions have problems): 
/zlib/
自己染发 
OpenSSL 0.9.6 or greater:
/
上面指出了,OpenSSH6.0安装所依赖的两款软件ZlibOpenSSL的最低版本,如果服务器的软件版本不符合要求,就要先升级该两款软件。
 
妇女节几岁的人过首先我们需要确认服务器上ZlibOpenSSL软件的版本:
 
[root@Oracle-2 ~]# rpm -qa | grep -i zlib
zlib-devel-1.2.3-3
perl-Compress-Zlib-1.42-1.fc6
zlib-1.2.3-3
perl-IO-Zlib-1.04-4.2.1
 
[root@Oracle-2 ~]# rpm -qa | grep -i openssl
pyOpenSSL-0.6-1.p24.7.2.2
openssl-devel-0.9.8e-12.el5
openssl-0.9.8e-12.el5
 
可以看到,Zlib 的版本是1.42 ,OpenSSL的版本是0.9.8,满足OpenSSH6.0安装的要求。
 
第四步:卸载OpenSSH软件
 
安装之前,有下面几个工作需要完成:
 
1)停sshd服务
[root@Oracle-2 ~]# service sshd stop
Stopping sshd: [  OK  ]
 
2)备份sshd文件
说明:在卸载之前需要将 /etc/init.d/sshd 文件做个备份,安装完成后,需要再将备份的sshd文件拷贝到/etc/init.d/目录中,这样可以保证升级完成后可以继续使用service sshd start/stop/restart  的方式管理sshd服务,否则将不可使用。
[root@Oracle-2 ~]# cp /etc/init.d/sshd /root/sshd
 
3)卸载服务器上已经存在的OpenSSH软件
卸载OpenSSH,通过rpm -qa 命名查询出需要卸载的rpm软件包, 再用 rpm -e 命令卸载:
 
查询:
[root@Oracle-2 ~]# rpm -qa | grep -i openssh
openssh-4.3p2-36.el5
openssh-clients-4.3p2-36.el5
openssh-server-4.3p2-36.el5
openssh-askpass-4.3p2-36.el5
 
如何查车辆违章
卸载:
[root@Oracle-2 ~]# rpm -e openssh-4.3p2-36.el5 -deps
[root@Oracle-2 ~]# rpm -e openssh-clients-4.3p2-36.el5 -deps
[root@Oracle-2 ~]# rpm -e openssh-server-4.3p2-36.el5 -deps
[root@Oracle-2 ~]# rpm -e openssh-askpass-4.3p2-36.el5 -deps
 
4)删除 /etc/ssh/ 目录下的ssh文件
rm -rf /etc/ssh/*
 
第五步:安装OpenSSH软件
洛克人x8
 
解压下载的软件包 openssh-6.
[root@Oracle-2 ~]# tar -zxvf openssh-6.
 
安装OpenSSH软件:
进入解压出的文件夹,按照顺序执行下面的编译和安装命令:
[root@Oracle-2 ~]# ./configure prefix=/usr sysconfdir=/etc/ssh with-pam with-md5-passwords mandir=/usr/share/man
[root@Oracle-2 ~]# make
[root@Oracle-2 ~]# make install
 
执行完成后,就可以用 ssh -V 命名查看openssh的版本,验证安装结果:
[root@Oracle-2 ~]# ssh -V
OpenSSH_6.0p1, OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
 
可以看到版本已经变成6.0p1了,说明安装没有问题。
 
接下来,恢复sshd文件,将备份的sshd文件复制到 /etc/init.d/ 目录下:
[root@Oracle-2 ~]# cp /root/sshd /etc/init.d/sshd
 
测试sshd服务的启动和停止:
[root@Oracle-2 ~]# service sshd restart
Stopping sshd: [  OK  ]
Starting sshd: [  OK  ]
 蛋糕店的名字
OK,到这里,OpenSSH 的升级就做完了。
 
注意:
这样升级完成,在服务器关机启动后,sshd服务不会自动启动,为了使sshd服务在开机时自动启动,我们需要执行下面的命令:
 
[root@Oracle-2 ~]# chkconfig --add sshd
[root@Oracle-2 ~]# chkconfig --level 123456 sshd on
 
这样开机后就可以自动启动sshd服务了。
 
参考内容:www.sunnyu/?p=37
 
第六步:配置sftp服务用户的访问权限
 
1)创建sftp用户的主根目录
[root@Oracle-2 ~]# mkdir -p /home/sftp
[root@Oracle-2 ~]# chmod -R 755 /home/sftp
 
2)创建sftp用户组和一个sftp用户
[root@Oracle-2 ~]# groupadd sftp
[root@Oracle-2 ~]# useradd -g sftp -d /home/sftp/blog blog
[root@Oracle-2 ~]# passwd blog
 
3)权限设置
设置 /etc/ssh/sshd_config配置文件,通过Chroot限制用户的根目录。
 
[root@Oracle-2 ~]# vi /etc/ssh/sshd_config
# override default of no subsystems
#注释掉原来的Subsystem设置
#Subsystem      sftp    /usr/libexec/sftp-server
#启用internal-sftp
Subsystem sftp internal-sftp
 
# Example of overriding settings on a per-user basis
#Match User anoncvs
#      X11Forwarding no
#      AllowTcpForwarding no
#      ForceCommand cvs server星空棒棒糖
#限制blog用户的根目录
Match User pay
        ChrootDirectory /home/sftp/blog/
        X11Forwarding no
        AllowTcpForwarding no
        ForceCommand internal-sftp
 
保存退出,重启sshd服务:
[root@Oracle-2 ~]# service sshd restart
 
4)测试sftp权限控制
使用blog用户尝试登录sftp ,发现无法登陆,给出的提示也很难看懂,什么原因呢?
 
原来要使用Chroot功能实现用户根目录的控制,目录权限的设置非常重要,否则将会无法登陆。
 
目录权限设置上要遵循2点:
ChrootDirectory设置的目录权限及其所有的上级文件夹权限,属主和属组必须是root;
ChrootDirectory设置的目录权限及其所有的上级文件夹权限,只有属主能拥有写权限,也就是说权限最大设置只能是755。
如果不能遵循以上2点,即使是该目录仅属于某个用户,也可能会影响到所有的SFTP用户。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。