Ubuntu Server 搭建 FTP 服务器
现在我们来做一下FTP实验记录把
我们这次的环境还是Ubuntu 20.04 LTS
安装 vsftpd
我们先来安装vsftpd这个包
| 1 | sudo apt update | 
安装完毕之后,我们使用下面指令看它是否成功运行
| 1 | sudo systemctl status vsftpd | 
输出应显示vsftpd服务处于活动状态并正在运行如下图所示
 
打开防火墙
如果您正在运行UFW防火墙 ,则需要开放FTP端口
要打开端口21(FTP 命令端口)、端口20(FTP 数据端口)
和30000-31000(被动端口范围),请运行以下命令
| 1 | sudo ufw allow 20:21/tcp | 
为避免被锁定,请确保端口22已打开
| 1 | sudo ufw allow OpenSSH | 
通过禁用和重新启用UFW重新加载UFW规则:
| 1 | sudo ufw disable | 
我们需要来验证一下是否正确运行:
| 1 | sudo ufw status | 
 
创建 FTP 用户
为了测试FTP服务器,我们将创建一个新用户
创建一个名为 的新用户ftptest并设置强密码:
| 1 | sudo adduser ftptest | 
如果您只想ftpuser通过FTP登录
您应该通过在 SSH 配置文件中
将他们的用户名列入黑名单
来禁用他们的 SSH 访问
在文本编辑器中打开SSH配置
| 1 | sudo vi /etc/ssh/sshd_config | 
将以下内容添加到文件底部
替换ftptest为您要拒绝SSH和SFTP访问的用户
您可以在此处添加由单个空格分隔的多个用户
| 1 | DenyUsers ftptest | 
然后重启SSH服务令其生效
| 1 | sudo service sshd restart | 
配置vsftpd
在开始在使用 FTP 之前,我们必须对 vsftpd 配置文件进行一些更改
| 1 | sudo mv /etc/vsftpd.conf /etc/vsftpd.conf.bak | 
使用你喜欢的编辑器创建一个新的配置文件
| 1 | sudo vi /etc/vsftpd.conf | 
我现在在用的参数就是以下内容:
| 1 | listen=NO | 
然后我们就重新启动vsftpd
| 1 | sudo systemctl restart vsftpd | 
目录权限
您现在需要决定允许这个新的 FTP 用户在哪里查看和上传文件
vsftpd使用chroot jails将用户限制在他们的主目录中,并要求主目录不可写
本次我仅仅是想限制目标用户在对应主目录中
在用户的主目录中创建一个名为的新目录ftp
在下面的这个例子中,我们的用户被称为ftptest
我们将创建一个新目录/ftp,用户可以在其中查看和上传文件
| 1 | sudo mkdir /home/ftpuser/ftp | 
将此目录的所有权分配给我们的新FTP用户,否则他们将无法写入该目录
| 1 | sudo chown ftptest:ftptest /home/ftptest/ftp | 
插曲
其实本人直接生成新账号的根目录
直接使用ftp是无法访问的
我们现在需要做简单的几步
| 1 | sudo rm -rf /home/ftptest | 
只要我们重新新建文件夹
然后就应该可以成功连接到FTP服务器了
测试FTP
我们现在可以测试vsftpd查看我们是否可以以我们之前创建的用户身份登录
我们现在使用WinSCP来尝试登录



