Ubuntu17.10上安装FTP服务器 (vsftpd)

我在Ubuntu17.10上安装FTP服务器 (vsftpd)

1.安装vsftpd

更新可用软件包列表和安装 vsftpd

sudo apt-get update
sudo apt-get install vsftpd

检查vsftpd 的状态

sudo service vsftpd status
● vsftpd.service - vsftpd FTP server
   Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: e
   Active: active (running) since Sat 2022-08-06 19:59:12 UTC; 16s ago
 Main PID: 31602 (vsftpd)
   CGroup: /system.slice/vsftpd.service
           └─31602 /usr/sbin/vsftpd /etc/vsftpd.conf
Aug 06 19:59:12 myserver systemd[1]: Starting vsftpd FTP server...
Aug 06 19:59:12 myserver systemd[1]: Started vsftpd FTP server.

上面我们可以看到FTP 服务器现在已经启动并运行。

2.配置防火墙

启用ufw防火墙。在启用ufw防火墙之前,添加SSH 规则。如果你不想设置防火墙,请跳到步骤 3。

sudo ufw allow OpenSSH

为 FTP打开端口 20 和 21,VSFTPD要求打开 40000-50000 端口范围。TLS需要开放端口 990,后面讲开启TLS

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp
sudo ufw allow 990/tcp

启用防火墙

sudo ufw enable

检查防火墙的状态

sudo ufw status

3.创建一个FTP用户

创建一个新用户ftpuser

sudo adduser ftpuser

可能还会要求你输入一些联系信息。你可以一直按ENTER默认。

如果你只想ftpuser使用 FTP 登录,你可以通过将他们的用户名添加到 SSH 配置文件来禁用他们的 SSH/SFTP 访问。否则,跳到第 4 步。

在 vim 中打开 SSH 配置。

sudo vim /etc/ssh/sshd_config

替换ftpuser为你要拒绝 SSH 和 SFTP 访问的用户。你可以在此处添加多个用户,并用一个空格分隔。

vim /etc/ssh/sshd_config
DenyUsers ftpuser

重新启动 SSH 服务。

sudo service sshd restart

4.目录权限

现在需要配置ftp可以访问的目录,假如我们需要ftpuser用户可访问的根目录是/var/www/html,那么就需要设置该目录的权限。

sudo usermod -d /var/www ftpuser
sudo chown ftpuser:ftpuser /var/www/html

5.配置vsftpd

在编辑配置文件之前,创建一个备份。

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak

打开配置文件。

sudo vim etc/vsftpd.conf
write_enable=YES //允许写入文件
chroot_local_user=YES //防止用户访问/var/www/html之外的目录
local_umask=022  //为上传的文件和文件设置默认的权限
force_dot_files=YES //显示以点开头的文件
pasv_min_port=40000 //VSFTPD要求打开
pasv_max_port=50000

重启 vsftpd。

sudo systemctl restart vsftpd

6.测试FTP

使用FileZilla测试,它适用于 Windows、Mac 和 Linux。

输入你的服务器 IP、你之前创建的 FTP 用户名和密码,然后点击Quickconnect

图片

如果有错误可以使用tail查看日志。

sudo tail /var/log/vsftpd.log -n 200

7. 使用 TLS 保护 FTP(可选)

FTP协议默认没有加密,凭据和内容是明文发送的,因此很容易被拦截。要解决这个问题,可以使用 FTPS(基于 SSL/TLS 的 FTP)连接到 vsftpd。

使用它openssl来创建一个新证书。

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

会让输入一些详细信息,例如国家/地区等。你可以按ENTER默认。

私钥已经创建,修改vsftpd.conf配置文件开启ssl

sudo vim etc/vsftpd.conf
ssl_enable=NO

将其更改为:

sudo vim etc/vsftpd.conf
ssl_enable=YES

添加以下配置

sudo vim etc/vsftpd.conf
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH
pasv_min_port=40000
pasv_max_port=50000

重启 vsftpd。

sudo systemctl restart vsftpd

8. 使用 FileZilla 测试 TLS

输入你的服务器 IP、你之前创建的 FTP 用户名和密码,然后单击Quickconnect

你可能会看到未知证书警告。单击在以后的会话中始终信任此证书然后单击确定 。

如果你通过 TLS 连接,它会在连接日志中显示。并且在界面的右下角出现有个小锁的图标。

图片

【Linux常用命令速查手册】关注【入门小站】,后台回复 「1001」 自取。

近期热文

Linux

Linux

Linux8访MySQLMariaDBGUI

双系统成为过去:Windows和Linux现在合二为一

图片
入门小站
全栈入门知识
169篇原创内容
公众号
收录于合集 #Linux
 478
上一篇抓住Linux黄金60秒下一篇linux中的13个基本Cat命令示例
阅读 904
 
写下你的留言
精选留言
  • ubuntu版本有点低哦
     
    老系统啊,新系统一样的[呲牙]
     
已无更多数据
 
posted @ 2022-08-14 19:09  往事已成昨天  阅读(158)  评论(0编辑  收藏  举报