如何在ubuntu12.04 LTS中安装和配置启用chroot的FTP服务器
时间:2019-08-20 17:58:15 来源:igfitidea点击:
优点:启用chroot后,ftp用户只允许登录到它的home目录,用户只能在自己的home目录内更改目录。
我们还可以定义哪些用户可以更改到其他系统目录,包括其home目录。
下载安装vsftpd包
tux@ubuntu:~$ sudo su - [sudo] password for tux: root@ubuntu:~# root@ubuntu:~# cd /root/ root@ubuntu:~# wget http://security.ubuntu.com/ubuntu/pool/main/v/vsftpd/vsftpd_3.0.2-1ubuntu2_i386.deb root@ubuntu:~# root@ubuntu:~# dpkg -i vsftpd_3.0.2-1ubuntu2_i386.deb #### Install the dependency of VSFTPD #### root@ubuntu:~ # apt-get install libcap2
备份vsftpd.conf文件
#cp -p vsftpd.conf.dpkg-new vsftpd.conf # cp -p /etc/vsftpd.conf /etc/vsftpd.conf.orig
在/etc/vsftpd.conf中启用下面的参数
root@ubuntu:/# vi /etc/vsftpd.conf listen=YES anonymous_enable=NO local_enable=YES write_enable=YES dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key allow_writeable_chroot=YES root@ubuntu:/#
重启vsftpd服务
service vsftpd restart
现在可以登录ftp服务器,上传下载文件。
使用命令行、或者ftp客户端filezilla、cyberduck、fireftp等登录到ftp服务器测试。
允许部分用户切换到其他系统目录,包括其主目录
创建一个vsftpd.chroot_list文件,添加可以chroot的用户。
# touch /etc/vsftpd.chroot_list # vi /etc/vsftpd.chroot_list username1 joe
在/etc/vsftpd.conf文件启用参数chroot_list_file
vi /etc/vsftpd.conf chroot_list_file=/etc/vsftpd.chroot_list
重启vsftpd服务
service vsftpd restart
测试
用户joe可以更改到其他系统目录。
用户tux无法更改到除主目录中的目录之外的其他目录。
Hyman@theitroad:~$ ftp 10.10.0.13 Connected to 10.10.0.13. 220 (vsFTPd 3.0.2) Name (10.10.0.13:linux): joe 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> cd /home/tux 250 Directory successfully changed. ftp> cd /opt 250 Directory successfully changed. ftp> bye 221 Goodbye. Hyman@theitroad:~$ Hyman@theitroad:~$ ftp 10.10.0.13 Connected to 10.10.0.13. 220 (vsFTPd 3.0.2) Name (10.10.0.13:linux): tux 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> cd /home/joe 550 Failed to change directory. ftp> cd /opt 550 Failed to change directory. ftp>