如何在 Debian 11 上安装 vsftpd FTP 服务器并使用 TLS 保护它如何在 Debian 11 上安装 vsftpd FTP 服务器并使用 TLS 保护它如何在 Debian 11 上安装 vsftpd FTP 服务器并使用 TLS 保护它如何在 Debian 11 上安装 vsftpd FTP 服务器并使用 TLS 保护它
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Debian 11 上安装 vsftpd FTP 服务器并使用 TLS 保护它

本教程适用于这些操作系统版本

  • Debian 11(Bullseye)
  • Debian 6(Squeeze)

在此页

  1. 先决条件
  2. 1。安装 Vsftpd
  3. 2。创建 FTP 用户并配置 FTP 登录
  4. 3。创建FTP用户目录
  5. 4。配置 Vsftpd
  6. 5。在防火墙中允许 vsftpd 并访问 vsftpd 服务器
  7. 6。使用 SSL/TLS 保护 Vsftpd
  8. 7.通过 SSL/TLS 访问 FTP
  9. 结论

文件传输协议或 FTP 是一个非常古老且最著名的网络协议之一。如今与 SFTP 或 SCP 相比,它并不安全,但仍然是许多用户在服务器和客户端之间传输文件的首选。 FTP 被认为是不安全的,因为它在没有任何类型的加密的情况下传输数据和用户凭据。

现在我们有大量可用的开源 FTP 服务器,例如 FTPD、VSFTPD、PROFTPD 和 pureftpd。其中,VSFTPD 是一种非常安全、快速且使用最广泛的协议,用于在两个系统之间传输文件。

VSFTPD 也被称为“非常安全的文件传输协议守护进程”,支持 SSL , IPv6, 显式和隐式 FTPS。

在本指南中,我们将向您展示如何在 Debian 11 上安装 vsftpd FTP 服务器。

先决条件

运行 Debian 11 的服务器。
具有 sudo 权限的非根用户。

1.安装Vsftpd

在开始安装之前,通过在终端中执行以下命令来更新您的 Debian 11 服务器:

sudo apt update -y
sudo apt upgrade -y

Debian 有一个非常大的存储库,官方存储库中提供了 vsftpd 包,因此您可以通过运行以下命令轻松安装 vsftpd:

sudo apt install vsftpd -y

安装包后,启动Vsftpd服务,检查服务状态,启动时启用服务。

sudo systemctl start vsftpd

sudo systemctl status vsftpd

systemctl enable vsftpd.service

2、创建FTP用户并配置FTP登录

现在,为 FTP 创建一个新的用户帐户,稍后我们将使用该用户登录 FTP 服务器。

sudo adduser sohan

在vsftpd.userlist 文件中添加的用户具有访问FTP 服务器的权限。

接下来,我们需要在vsftpd 用户列表中添加sohan 用户。打开文件并通过执行以下命令添加用户:

echo "sohan" | sudo tee -a  /etc/vsftpd.userlist

3.创建FTP用户目录

接下来,我们需要为我们的 FTP 用户创建一个 FTP 目录,并使用以下命令设置所有权:

sudo mkdir -p /home/sohan/ftp_directory

sudo chown nobody:nogroup /home/sohan/ftp_directory

sudo chmod a-w /home/sohan/ftp_directory

现在,创建一个可以上传文件的目录,并通过执行命令将所有权授予 sohan 用户:

sudo mkdir -p /home/sohan/ftp_directory/ftp_data
sudo chown sohan:sohan /home/sohan/ftp_directory/ftp_data
cd /home/sohan/ftp_directory/
chmod -R 777 ftp_data

4.配置Vsftpd

接下来,您需要更改一些默认参数以设置 FTP 服务器。

首先,创建原始 vsftpd 配置文件的备份副本。

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

在 FTP 服务器中,匿名用户默认被授予访问权限。为了使 FTP 服务器更安全,我们将禁用匿名用户登录,只授予特定用户访问权限。

接下来,打开 vsftpd.conf 文件并进行如下更改:

vim /etc/vsftpd.conf
anonymous_enable=NO

local_enable=YES

我们需要在配置中进行一些其他更改,首先打开 vsftpd.conf

sudo vim /etc/vsftpd.conf

接下来,确保 vsftpd.conf 应包含以下行:

listen=NO
listen_ipv6=YES
anonymous_enable=NO
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
user_sub_token=$USER
local_root=/home/$USER/ftp_directory
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO

保存并关闭文件。您可以根据需要更改上述配置。

现在重启vsftpd服务并通过执行以下命令检查服务状态:

sudo systemctl restart vsftpd


接下来,通过在终端中执行以下命令确保vsftpd服务处于运行状态:

sudo systemctl status vsftpd

5.在防火墙中允许vsftpd并访问vsftpd服务器

接下来,如果您使用的是防火墙,则通过运行以下命令允许端口 21 和端口 22:

sudo ufw allow 21/tcp

sudo ufw allow 22/tcp

然后重新加载防火墙以应用更改:

sudo ufw reload

接下来,打开任何 FTP 客户端(如 FileZilla)并输入您的服务器详细信息,如协议、主机、用户:

然后,它将显示如下详细信息,单击“确定”。

此时,您已连接到 FTP 服务器,您可以上传和下载文件/文件夹。

6. 使用 SSL/TLS 保护 Vsftpd

假设您想通过 FTP 传输加密数据,为此您需要创建 SSL 证书并需要启用 SSL/TLS 连接。

您可以使用以下命令使用 OpenSSL 创建证书:

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

现在,您需要编辑 vsftpd.conf 文件并进行一些更改:

sudo vim /etc/vsftpd.conf

最后添加以下几行:

rsa_cert_file=/etc/cert/vsftpd.pem
rsa_private_key_file=/etc/cert/vsftpd.pem
ssl_enable=YES
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

保存并退出文件,然后使用以下命令重新启动 Vsftpd:

sudo systemctl restart vsftpd

7. 通过 SSL/TLS 访问 FTP

接下来,输入您的密码:

结论

在上面的指南中,我们在 Debian 11 上安装了 VSFTPD 服务器。我们还学习了如何使用 SSL 证书通过非加密和加密连接进行连接。

©2015-2025 艾丽卡 support@alaica.com