目录
- 介绍
- 更新系统包
- 在 Ubuntu 上安装 vsftpd 服务器
- 备份配置文件
- 创建 FTP 用户
- 配置防火墙以允许 FTP 流量
- 连接到 Ubuntu FTP 服务器
- 如何通过命令行连接到FTP服务器
- 如何通过 GUI 连接到 FTP 服务器
- 配置和保护 Ubuntu vsftpd 服务器
- 更改默认目录
- 验证 FTP 用户
- 如何配置匿名FTP登录
- 如何更改默认的FTP监听端口
- 保护 FTP
- 限制用户访问
- 使用 FTPS 加密流量
- “连接被拒绝”FTP 连接错误故障排除
- 结论
介绍
在本文中,我们将向您展示如何在 Ubuntu Linux 上设置和使用 FTP 服务器。 我们还将介绍一些基本配置和安全措施,以帮助您入门。
更新系统包
在开始之前,最好将系统包更新到最新版本。 您可以通过运行以下命令来执行此操作:
sudo apt-get update sudo apt-get upgrade
在 Ubuntu 上安装 vsftpd 服务器
现在您的系统是最新的,您可以通过运行以下命令来安装 vsftpd 服务器包:
sudo apt-get install vsftpd
备份配置文件
在对配置文件进行任何更改之前,最好进行备份以防出现问题。 您可以通过运行以下命令来执行此操作:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
创建 FTP 用户
现在安装了 vsftpd 服务器,您需要创建一个用于连接到服务器的用户。 您可以通过运行以下命令来执行此操作:
sudo adduser ftpuser
系统将提示您输入用户密码。 创建用户后,您需要通过运行以下命令将其添加到 FTP 组:
sudo usermod -a -G ftp ftpuser
配置防火墙以允许 FTP 流量
如果您的 Ubuntu 服务器上启用了防火墙,则需要允许 FTP 流量通过它。 您可以通过运行以下命令来执行此操作:
sudo ufw allow ftp
连接到 Ubuntu FTP 服务器
现在服务器已配置,您可以使用 FTP 客户端连接到它。 为了这 example,我们将使用 Filezilla 客户端。
首先,打开 Filezilla 并单击“站点管理器”图标。
接下来,单击“新建站点”按钮并输入以下信息:
- 主持人: Enter 服务器的 IP 地址或主机名
- 港口: Enter 21
- 协议:选择“FTP – 文件传输协议”
- 加密:选择“仅使用普通 FTP(不安全)”
- 登录类型:选择“普通”
- 用户: Enter 您之前创建的 FTP 用户名
- 密码: Enter FTP 用户的密码
现在单击“连接”按钮,您应该连接到您的 FTP 服务器。
如何通过命令行连接到FTP服务器
如果您更喜欢使用命令行,您可以通过运行以下命令连接到您的 FTP 服务器:
ftp hostname
系统将提示您输入 FTP 用户的密码。 登录后,您将进入 FTP 提示符,您可以在其中输入各种命令。 类型 help
查看可用命令列表。
如何通过 GUI 连接到 FTP 服务器
如果您使用的是 Linux 桌面,则可以使用 GUI 客户端(例如 Filezilla 或 Nautilus)连接到 FTP 服务器。
要使用 Filezilla 进行连接,请打开程序并单击“站点管理器”图标。
接下来,单击“新建站点”按钮并输入以下信息:
- 主持人: Enter 服务器的 IP 地址或主机名
- 港口: Enter 21
- 协议:选择“FTP – 文件传输协议”
- 加密:选择“仅使用普通 FTP(不安全)”
- 登录类型:选择“普通”
- 用户: Enter 您之前创建的 FTP 用户名
- 密码: Enter FTP 用户的密码
现在单击“连接”按钮,您应该连接到您的 FTP 服务器。
要使用 Nautilus 进行连接,请打开程序并单击“文件”菜单,然后选择“连接到服务器”。
在“服务器地址”字段中,输入以下信息:
- 服务类型:选择“FTP”
- 服务器: Enter 服务器的 IP 地址或主机名
- 港口: Enter 21
- 用户名: Enter 您之前创建的 FTP 用户名
- 密码: Enter FTP 用户的密码
现在单击“连接”按钮,您应该连接到您的 FTP 服务器。
配置和保护 Ubuntu vsftpd 服务器
现在您已经启动并运行了一个基本的 FTP 服务器,让我们看看一些可用的配置选项。
更改默认目录
默认情况下,vsftpd 服务器会将您的目录更改为 /var/ftp
登录时的目录。 如果你想改变这个,你可以编辑 /etc/vsftpd.conf
文件并更改以下行:
#chroot_local_user=YES
至
chroot_local_user=YES
您还需要创建要使用的新目录。 为了 example如果你想使用 /home/ftpuser
目录,您可以通过运行以下命令来执行此操作:
sudo mkdir /home/ftpuser
验证 FTP 用户
默认情况下,vsftpd 服务器将允许任何人使用任何用户名和密码登录。 如果您只想限制特定用户的访问权限,您可以编辑 /etc/vsftpd.conf
文件并更改以下行:
#anon_upload_enable=YES
至
anon_upload_enable=NO
您还需要取消注释以下行:
#local_enable=YES
如何配置匿名FTP登录
如果你想允许匿名 FTP 登录,你可以编辑 /etc/vsftpd.conf
文件并更改以下行:
#anon_upload_enable=YES
至
anon_upload_enable=YES
您还需要取消注释以下行:
#anon_mkdir_write_enable=YES
如何更改默认的FTP监听端口
默认情况下,vsftpd 服务器在端口 21 上侦听 FTP 流量。 如果你想改变这个,你可以编辑 /etc/vsftpd.conf
文件并更改以下行:
#listen=YES
至
listen=NO
您还需要取消注释以下行并输入新的端口号:
#listen_port=
保护 FTP
为确保 FTP 服务器安全,您可以做的最重要的事情之一就是对流量进行加密。 您可以使用 SSL/TLS 执行此操作。 为此,您需要通过运行以下命令生成自签名 SSL 证书:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
系统将提示您输入有关证书的一些信息。 生成证书后,您需要编辑 /etc/vsftpd.conf
文件并更改以下行:
#ssl_enable=NO #rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem #rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
至
ssl_enable=YES rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem
您还需要取消注释以下行:
#force_local_data_ssl=YES
限制用户访问
如果您想限制用户对您的 FTP 服务器的访问,您可以创建一个用户列表文件。 为此,您需要编辑 /etc/vsftpd.conf
文件并更改以下行:
#userlist_deny=NO
至
userlist_deny=YES
您还需要取消注释以下行并输入用户列表文件的路径:
#userlist_file=/etc/vsftpd.userlist
用户列表文件是一个简单的文本文件,其中包含一个 FTP 用户列表,每行一个。 您可以通过运行以下命令来创建此文件:
sudo nano /etc/vsftpd.userlist
将以下行添加到文件中:
ftpuser
Save 文件并退出。
使用 FTPS 加密流量
如果要加密 FTP 服务器和客户端之间的流量,可以使用 FTPS。 为此,您需要编辑 /etc/vsftpd.conf
文件并更改以下行:
#ssl_enable=NO #allow_anon_ssl=NO #force_local_data_ssl=NO #force_local_logins_ssl=NO
至
ssl_enable=YES allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES
您还需要取消注释以下行:
#rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
“连接被拒绝”FTP 连接错误故障排除
如果您在连接到 FTP 服务器时遇到问题,您可能会看到“连接被拒绝”错误。 这通常是由防火墙阻止 FTP 流量引起的。 要解决此问题,您需要允许 FTP 流量通过防火墙。
如果您使用的是 UFW 防火墙,则可以通过运行以下命令来执行此操作:
sudo ufw allow ftp
如果您使用的是其他防火墙,则需要查阅文档以获取有关如何允许 FTP 流量的说明。
结论
在本文中,我们向您展示了如何在 Ubuntu Linux 上设置和使用 FTP 服务器。 我们还介绍了一些帮助您入门的基本配置和安全措施。