使用服务器搭建了一个静态网站,需要上传更新网页,于是想到了使用ftp服务来完成这个过程。

什么是vsftpd

vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开发源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。

安装vsftpd

登录CentOS服务器,执行以下命令安装vsftpd

1
sudo yum install vsftpd

如果还需要FTP客户端,可以运行

1
sudo yum install ftp

确保启动时运行vsftpd服务

1
chkconfig vsftpd on

启动vsftpd服务

1
sudo service vsftpd start

添加ftp用户并修改权限

添加一个ftpuser用户用来登录ftp,主目录在apache的网页目录下,禁止此用户登录SSH和shell,并限制其访问其它目录

1
useradd -d /var/www/html -g ftp -s /sbin/nologin ftpuser

设置用户口令

1
passwd ftpuser

修改/var/www/html的权限

1
sudo chmod 777 /var/www/html

配置vsftpd

vsftpd的配置文件在/etc/vsftpd/vsftpd.conf,打开这个文件

1
sudo vi /etc/vsftpd/vsftpd.conf

修改以下配置

1
2
3
4
5
6
7
8
9
anonymous_enable=NO #禁止匿名登录
local_enable=YES #设置本地用户可以访问
chroot_local_user=YES #用户不能离开主目录
ascii_upload_enable=YES
ascii_download_enable=YES #设定支持ASCII模式的上传和下载功能
pam_service_name=vsftpd #PAM认证文件名。PAM将根据/etc/pam.d/vsftpd进行认证
local_root=/var/www/html
allow_writeable_chroot=YES #允许主目录写入

重启vsftpd

1
sudo service vsftpd start

使用

现在可以使用一个ftp客户端通过普通的用户名密码方式登录ftp了,主目录限定在apache的目录下可以用来更新网站文件。