#基于 Ubuntu 搭建 FTP 文件服务#
##实验内容##
FTP 是一个很实用的文件传输协议,方便在客户端和服务器之间进行文件的传输。本实验带您使用 vsftpd 来搭建一个 FTP 服务,并且创建专有的 FTP 登录账户,保障服务器安全。
##实验资源##
云服务器
##软件环境##
Ubuntu 18.04.1 LTS 64位
##目录##
1.安装并启动FTP服务
2.配置用户访问目录
3.准备域名和证书
4.访问FTP服务
##1.安装并启动FTP服务##
###安装vsftpd###
使用apt-get安装vsftpd
sudo apt-get install vsftpd -y
vsftpd是在Linux上被广泛使用的FTP服务器,可能是UNIX-like系统下最安全和最快速的FTP服务器软件。
###启动vsftpd###
安装完成后vsftpd会自动启动,通过netstat命令可以看到系统已经监听了21端口。
sudo netstat -nltp | grep 21
如果没有启动,可以手动开启vsftpd服务:
sudo systemctl start vsftpd.service
FTP协议默认使用21端口作为服务端口
##2.配置用户访问目录##
###新建用户主目录###
在/home新建文件夹uftp:
sudo mkdir /home/uftp
创建登录欢迎文件:
sudo touch /home/uftp/welcome.txt
方便用户登录后可以看到欢迎信息,并且确定用户确实登录到了主目录上。
用户的主目录是用户通过FTP登录后看到的根目录。
###新建用户uftp并设置密码###
创建一个用户uftp:
sudo useradd -d /home/uftp -s /bin/bash uftp
其中 -d 指定用户登录时的主目录,-s 指定用户登录后所使用的shell,uftp是用户名。
为用户uftp设置密码:
sudo passwd uftp
删除掉pam.d中的vsftpd,因为该配置文件会导致使用用户名登录ftp失败:
sudo rm /etc/pam.d/vsftpd
###限制该用户仅能通过FTP访问###
限制用户uftp只能通过FTP访问服务器,而不能直接登陆服务器:
sudo usermod -s /sbin/nologin uftp
###修改vsftpd配置###
sudo chmod a+w /etc/vsftpd.conf
修改/etc/vsftpd.conf文件中的配置:
vi /etc/vsftpd.conf
直接将如下配置添加到配置文件最下方:
#限制用户对主目录以外目录访问
chroot_local_user=YES
#指定一个userlist存放允许访问ftp的用户列表
userlist_deny=NO
userlist_enable=YES
#记录允许访问ftp用户列表
userlist_file=/etc/vsftpd.user_list
#不配置可能导致莫名的530问题
seccomp_sandbox=NO
#允许文件上传
write_enable=YES
#使用utf8编码
utf8_filesystem=YES
按下esc,保存配置文件:
:wq
新建文件夹/etc/vsftpd.user_list,用于存放允许访问ftp的用户:
sudo touch /etc/vsftpd.user_list
sudo chmod a+w /etc/vsftpd.user_list
修改/etc/vsftpd.user_list:
vi /etc/vsftpd.user_list
加入刚刚创建的用户:
uftp
按下esc,保存文件:
:wq
###设置访问权限###
设置主目录访问权限(只读):
sudo chmod a-w /home/uftp
新建公共目录,并设置权限(读写):
sudo mkdir /home/uftp/public && sudo chmod 777 -R /home/uftp/public
重启vsftpd服务:
sudo systemctl restart vsftpd.service
##3.准备域名和证书##
注:如果你不需要通过域名访问ftp服务器则可跳过这一步。
###域名注册###
###域名解析###
域名购买完成后,需要将域名解析到云服务器上。
域名设置解析后需要过一段时间才会生效,通过ping命令检查域名是否生效,如:
ping www.yourdomain.com
如果ping命令返回的信息中含有你设置的解析的ip地址,说明解析成功。
终止ping命令运行:
按ctrl+c
##4.访问ftp服务##
根据你个人的工作环境,选择一种方式来访问已经搭建的FTP服务
###通过FTP客户端工具访问###
FTP客户端工具众多,下面推荐两个常用的:
$FileZilla-跨平台的FTP客户端,支持Windows和Mac
$WinSCP-Windows下的FTP和SFTP连接客户端
下载和安装 FTP 客户端后,使用下面的凭据进行连接即可:
主机:你的云服务器的IP地址(对应的域名)
用户:uftp
输入密码后,如果能正常连接,你就可以开始使用FTP服务器了。
###通过浏览器访问###
复制下面的[链接]到浏览器的地址栏访问:
ftp://uftp:密码@<IP地址>
或
ftp://uftp:密码@<对应域名>