Ubuntu 16.04 安装 VSFTPD

目前三种主流的FTP服务是PureFTPD, VsFTPD and ProFTPD,下面是VsFTPD的安装和配置过程

安装

服务器环境

cat /etc/issue
Ubuntu 16.04.1 LTS \n \l

更新源

sudo apt-get update

安装vsftpd 

sudo apt-get install vsftpd

安装好后,会默认创建一个ftp用户,它的家目录在 /srv/ftp, 这是默认的ftp目录。
如果想改变这个目录可以使用如下命令。比如把ftp的家目录改为 /srv/files/ftp

sudo mkdir /srv/files/ftp
sudo usermod -d /srv/files/ftp ftp 

重启ftp生效

sudo systemctl reload vsftpd

 查看21端口已经启动

netstat -ant | grep 21

配置FTP

打开配置文件

sudo vim /etc/vsftpd.conf

取消注释 

write_enable=YES
local_umask=022

取消下面一行的注释,防止用户访问家目录以外的目录

chroot_local_user=YES

在文件最后添加

allow_writeable_chroot=YES

继续添加如下几行,开启passive模式

pasv_enable=Yes
pasv_min_port=40000
pasv_max_port=40100

重启vsftpd

sudo systemctl reload vsftpd

现在ftp服务将监听21端口,用如下命令创建用户,使用 /usr/sbin/nologin 防止ftp用户使用bash shell

sudo useradd -m www -s /usr/sbin/nologin
sudo passwd www

允许nologin shell 有登录权限,打开 /etc/shells 添加下面一行代码到文件末尾

/usr/sbin/nologin

现在用ftp客户端(比如winscp,filezilla)测试一下连接吧,并且检查一下用户是否被限制在家目录。

配置SFTP

安装openssh-server

 sudo apt-get install openssh-server

为FTP用户创建 ftpaccess 组

sudo groupadd ftpaccess

打开 /etc/ssh/sshd_config 文件 

vim /etc/ssh/sshd_config

 找到以下行,并注释掉它

Subsystem sftp /usr/lib/openssh/sftp-server

并在后面添加如下代码 

Subsystem sftp internal-sftp
Match group ftpaccess
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

重启sshd服务 

sudo service ssh restart

在ftpaccess组下面创建一个用户,这个用户使用 /usr/bin/nologin 作为shell

sudo useradd -m john -g ftpaccess -s /usr/sbin/nologin
sudo passwd john

把用户 john 家目录的所有者改为root

sudo chown root /home/john

/home/john 目录下创建 www 目录,并把所有者改为 john 

sudo mkdir /home/john/www
sudo chown john:ftpaccess /home/john/www

上面是创建了一个新FTP用户,如果这个用户以前就存在,直接把用户加到ftpaccess组就可以了,如下

sudo usermod -g ftpaccess john

 检查22端口是否已经启动监听

netstat -ant | grep 22

现在试着用SFTP连接服务器吧

卸载 

sudo apt-get remove –purge vsftpd

如果创建的用户和组没有被删除,则使用如下命令手动删除 

userdel UserName
groupdel GroupName

 

参考:

https://help.ubuntu.com/lts/serverguide/ftp-server.html
http://www.krizna.com/ubuntu/setup-ftp-server-on-ubuntu-14-04-vsftpd/ 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*