如何在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>