用openssh下的sftp通过chroot控制用户
一、编译安装软件
1、安装zlib
- # tar zxvf zlib-1.2.5.1.tar.gz
- # cd zlib-1.2.5.1
- # ./configure --prefix=/usr/local/zlib
- # make && make install
2、安装openssl
- # tar zxvf openssl-1.0.0g.tar.gz
- # cd openssl-1.0.0g
- # ./config --prefix=/usr/local/ssl
- # make && make install
3、安装openssh
- # tar zxvf openssh-5.9p1.tar.gz
- # cd openssh-5.9p1
- # ./configure --prefix=/usr/local/ssh --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/ssl
- # make && make install
二、创建控制组和登陆用户
- # groupadd sftp
- # useradd -g sftp -s /usr/sbin/nologin -d /data/sftp/ sftp
三、修改openssh服务配置文件
- # override default of no subsystems
- #Subsystem sftp /usr/local/ssh/libexec/sftp-server
- Subsystem sftp sftp internal-tftp
- Match Group sftp #限制组
- ChrootDirectory /data/sftp #限制用户所在根目录
- AllowTcpForwarding no
- ForceCommand internal-sftp
四、创建限制目录,并添加权限
- # mkdir /data/sftp
- # chown root.root /data/sftp
- # mkdir /data/sftp/upload //创建可以上传的目录
- # chmod 775 /data/sftp/upload
- # mkdir /data/sftp/download //创建可以下载的目录
- # chmod 755 /data/sftp/upload
五、重启sshd服务
- # kill -9 sshd_pid
- # /usr/local/ssh/sbin/sshd
六、测试sftp上传和下载
$ sftp sftp@192.168.1.115