伍佰目录 短网址
  当前位置:海洋目录网 » 站长资讯 » 站长资讯 » 文章详细 订阅RssFeed

CentOS下实现SFTP CHROOT的几种方法

来源:本站原创 浏览:52次 时间:2023-07-02

有些应用场景下需要限制用户只能使用SFTP,但不允许登陆系统SHELL。这里介绍几种方法来实现这样的需求。

一、通过MySecureShell实现什么是MySecureShell

MySecureShell is a sftp-server developing tool which help to make a ftp server like proftpd but very securised with SSH encryption. This software is highly configurable and very easy to install and use.

安装MySecureShell
  • 配置三方软件源

Centos 5
$ vim /etc/yum.repos.d/mysecureshell.repo[mysecureshell]name=MySecureShellbaseurl=http://mysecureshell.free.fr/repository/index.php/centos/5.5/enabled=1gpgcheck=0
Centos 6
$ vim /etc/yum.repos.d/mysecureshell.repo[mysecureshell]name=MySecureShellbaseurl=http://mysecureshell.free.fr/repository/index.php/centos/6.4/enabled=1gpgcheck=0
  • 安装MySecureShell

$ yum --disablerepo=\* --enablerepo=mysecureshell install mysecureshell
配置MySecureShell
$ vi  /etc/ssh/sftp_config主要修改以下几项LimitConnection         10      #max connection for the server sftpLimitConnectionByUser   1       #max connection for the accountLimitConnectionByIP     2       #max connection by ip for the accountHome                    /home/$USER     #overrite home of the user but if you want you can use                                        #environment variable (ie: Home /home/$USER)

LimitConnectionByUser、LimitConnectionByIP、LimitConnection根据需要可适当调大点,不然可能会现连接不上的现像。Home这项如果建用户时指定了主目录且不在缺省的/home下,可以把这项注释掉或修改为用户主目录所在位置。如果用户主目录在/home下可保持不变。

修改用户Shell为MySecureShell
$ chsh -s /bin/MySecureShell mike
二、通过OpenSSH的internal-sftp实现

如果要启用OpenSSH自带的的Chroot功能,OpenSSH版本必需在在4.8p1以上。

检查OpenSSH版本
$ rpm -qa|grep opensshopenssh-4.3p2-26.el5openssh-server-4.3p2-26.el5openssh-askpass-4.3p2-26.el5openssh-clients-4.3p2-26.el5

由于CentOS5.X自带的OpenSSH版本过低不支持SFTP CHROOT,所以需要先把SSH升级到4.8P1以上。升级可参考:CentOS下安装OpenSSH 5.8的三种方法

创建用于SFTP的用户
$ useradd  -d /home/TempUpload/ -M test2
配置sshd_config
$ vi  /etc/ssh/sshd_config#注释原本的Subsystem设置Subsystem    sftp    /usr/libexec/openssh/sftp-server#启用internal-sftpSubsystem       sftp    internal-sftpMatch User    test2 ChrootDirectory /home/TempUploadForceCommand    internal-sftp

Match user设定要被chroot的用户,若要设定多个帐号, 帐号间以逗号隔开。例如:Match user userA,userB

如果是群组的则将User改为Group后,再接群组名称。例如:Match Group rootedSFTP

ChrootDirectory设定要chroot的位置,可以加上PATTERNS做区隔。如/home/%u,%u表示用户变量,%h为限制到用户的主目录。更多可见:man sshd_config

设定Chroo目录权限
$ chown root:root /home/TempUpload$ chmod 755 /home/TempUpload

错误的目录权限设定会导致在log中出现”fatal: bad ownership or modes for chroot directory XXXXXX” 的讯息。
目录的权限设定有两个要点:
1、由ChrootDirectory指定的目录开始一直往上到系统根目录为止的目录拥有者都只能是root
2、由ChrootDirectory指定的目录开始一直往上到系统根目录为止都不可以具有群组写入权限

建立SFTP用户登入后可写入的目录
$ mkdir /home/TempUpload/Upload$ chown test2:test2 /home/TempUpload/Upload
检查sshd_config內容是否正确
$ sshd -T
重新启动sshd
$ service sshd restart
三、其它方法

  还可通过scponly和rssh实现,这两个的原理和MySecureShell差不多,不过这两个必须先做得做一个CHROOT环境,相对比较麻烦些。


  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net