本篇博客用于记录我们进修课程计算与信息学设计的团队项目,所写内容基于我们团队项目开发历程与成果,主要用于记录我们小组服务器搭建方面的过程,不得用于其他用途。
本文将介绍如何在华为云弹性云服务器上使用vsftpd软件搭建FTP站点。vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。
搭建完FTP站点后可以使用FileZilla等软件进行linux云服务管理。
该指导具体操作以CentOS 7 64位操作系统为例。Linux实例搭建FTP站点具体操作步骤可以分为三步:
- 安装vsftpd
- 配置vsftpd
- 云服务器设置安全组
1.安装vsftpd
在linux命令行中输入以下命令安装vsftpd:
yum install -y vsftpd
设置FTP服务开机自启动:
systemctl enable vsftpd.service
启动FTP服务:
systemctl start vsftpd.service
默认的ftp端口为21,当然也可以执行下面的命令进行查看FTP服务端口:
netstat -antup | grep ftp
回显信息如下:
2.配置vsftpd
vsftpd安装后默认开启了匿名FTP的功能,使用匿名FTP,用户无需输入用户名密码即可登录FTP服务器,但没有权限修改或上传文件。我们需要编辑vsftpd中的配置文件关闭匿名ftp功能,并设置账号密码用来远程登陆云服务器。
创建用户,此处“lzuftpadmin”用户为示例,可根据实际情况创建相应的用户:
useradd lzuftpadmin
按照提示设置“lzuftpadmin”用户密码:
passwd lzuftpadmin
创建供FTP使用的文件目录,此处以“/var/ftp/lzu”为例:
mkdir /var/ftp/lzu
将创建的文件目录所有者改为用于登录FTP的本地用户:
chown -R lzuftpadmin:lzuftpadmin /var/ftp/lzu
修改“vsftpd.conf”配置文件(使用vi命令打开配置文件,此处需要使用vim编辑器,大家需要掌握常用的vim编辑器命令):
vi /etc/vsftpd/vsftpd.conf
按i键进入编辑模式修改打开的“vsftpd.conf”文件(这里以配置被动ftp模式为例):
需要修改的内容为:
anonymous_enable=NO #不允许匿名登录FTP服务器
local_enable=YES #允许本地用户登录FTP服务器
local_root=/var/ftp/lzu #FTP本地用户使用的文件目录
chroot_local_user=YES #所有用户都被限制在其主目录
chroot_list_enable=YES #启用例外用户名单
chroot_list_file=/etc/vsftpd/chroot_list #例外用户名单
allow_writeable_chroot=YES
listen=YES
listen_ipv6=NO
#在修改文件时请找到对应的代码并修改,如果没有找到相应的代码请进行添加。
在这里如果不关闭ipv6模式将会引起冲突报错:
修改完毕后按键esc退出编辑模式,并输入:wq保存后退出
在“/etc/vsftpd/”目录下创建“chroot_list”文件(“chroot_list”文件是限制在主目录下的例外用户名单。如果需要设置某个用户不受只可以访问其主目录的限制,可将对应的用户名写入该文件。如果没有例外也必须要有“chroot_list”文件,内容可为空。):
touch chroot_list
重启vsftpd服务使配置生效:
systemctl restart vsftpd.service
3.云服务器设置安全组
搭建好FTP站点后,需要在弹性云服务器安全组的入方向添加一条放行FTP端口的规则:
方向 | 协议 | 端口 |
入方向 | TCP协议 | 20端口和21端口 |
最后可以通过FileZilla等软件进行linux远程管理:
这里的主机填入云服务器的公网ip,端口为20或21 ,用户和密码填入上面设置的内容即可成果连接。