0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何在Ubuntu 20.04安装和配置FTP服务器

CHANBAEK 来源:myfreax 作者:myfreax 2022-12-05 16:04 次阅读

教程介绍如何在Ubuntu 20.04安装和配置,用于在设备之间共享文件的FTP服务器。

FTP 文件传输协议,是用于将文件传输到远程网络的标准网络协议。有几种可用于Linux的开源FTP服务器。

最着名和广泛使用的是pureftpd,Proftpd,VSFTPD。我们将安装VSFTPD,稳定,安全和快速的FTP服务器。

我们还将向您展示如何配置服务器以将用户限制在其家目录,并使用SSL/TLS加密传输。

虽然FTP是一个非常流行的协议,但对于更安全和更快的数据传输,您应该使用SCP 或SFTP。

vsftpd包在Ubuntu存储库中可用。要安装它,请运行命令sudo apt update && sudo apt install vsftpd

当安装完成后,FTP服务将自动启动。要验证它,可以运行命令sudo systemctl status vsftpd打印vsftpd服务状态。输出应显示VSFTPD服务处于active状态。

sudo apt update
sudo apt install vsftpd
sudo systemctl status vsftpd
● vsftpd.service - vsftpd FTP server
     Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2021-03-02 15:17:22 UTC; 3s ago
...

配置VSftpd

VSftpd服务器配置文件位于etc/vsftpd.conf。VSftpd服务器设置都在此文件中。要查看所有可用选项,请访问VSFTPD文档页面。

在以下章节中,我们将介绍配置安全VSFTPD安装所需的一些重要设置。首先打开VSFTPD配置文件使用你喜欢的文本编辑器。

在本教程中,我们使用vim打开文件etc/vsftpd.conf。

sudo vim etc/vsftpd.conf

FTP 本地用户

我们仅允许本地用户访问FTP服务器。搜索anonymous_enablelocal_enable指令并将anonymous_enable的值改为NO,local_enable的值改为YES。

anonymous_enable=NO
local_enable=YES

etc/vsftpd.conf

启用上传

搜索write_enable并取消注释write_enable指令,允许文件系统的更改,例如上载和删除文件。

write_enable=YES

etc/vsftpd.conf

Chroot Jail

为了防止本地FTP用户访问其家目录之外的文件,请更改chroot_local_user的值为YES。

默认情况下,出于安全原因,当启用chroot时,如果用户被锁定的目录是可写的,则VSFTPD将拒绝上传文件。

因此还需要启用allow_writeable_chroot指令,请将allow_writeable_chroot指令改为YES,这将允许用户上传文件chroot的目录。

chroot_local_user=YES
allow_writeable_chroot=YES

etc/vsftpd.conf

被动 FTP 连接

默认情况下,VSFTPD使用主动模式。要使用被动模式,请设置端口的最小和最大范围。

您可以使用任何端口进行被动的FTP连接。启用被动模式时,FTP客户端在所选范围内的随机端口上打开与服务器的连接。

pasv_min_port=30000
pasv_max_port=31000

etc/vsftpd.conf

限制用户登录

您可以配置VSFTPD以仅允许某些用户登录。要执行此操作,请在文件末尾添加以下配置。

当启用这些选项时,您需要明确将用户名添加到etc/vsftpd.user_allow_list文件来指定允许登录的用户。

该文件每一行用户,仅可指定一个用户名。vsftpd.user_allow_lis文件默认是不存在的,你可以使用vim创建文件etc/vsftpd.user_allow_list

userlist_enable表示启用user列表,userlist_file表示指定用户列表的文件,文件的名称可以你喜欢的任何名称。

userlist_deny指定是允许用户列表的用户还是拒绝用户列表的用户。

userlist_deny的值为NO时,这将会拒绝所有用户。仅在用户列表文件的用户是允许的。

userlist_deny的值为YES时,这将会允许所有用户,仅在用户列表文件的用户是拒绝的。

注意 :用户名是Linux系统的用户名,也就是说使用useradd命令创建的用户。

userlist_enable=YES
userlist_file=etc/vsftpd.user_allow_list
userlist_deny=NO

etc/vsftpd.conf

重启 vsftpd 服务

这是本教程的vsftpd配置文件。这将配置vsftpd限制用户在其家目录中,允许用户上传文件到家目录任何文件夹。

仅允许指定用户可以访问FTP服务器,你可以在etc/vsftpd.user_allow_list文件添加允许的用户。

当完成配置后,保存文件并退出vim。然后运行命令sudo systemctl restart vsftpd重启vsftpd服务。

listen=NO
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
chroot_local_user=YES
allow_writeable_chroot=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
pasv_min_port=30000
pasv_max_port=31000
userlist_enable=YES
userlist_file=etc/vsftpd.user_allow_list
userlist_deny=NO

etc/vsftpd.conf

sudo systemctl restart vsftpd

设置防火墙

如果您正在运行UFW防火墙,您需要允许FTP流量。打开FTP命令端口21,FTP数据端口端口20和被动端口范围30000-31000,运行ufw命令。

为了避免被锁定,确保SSH打开端口22,运行命令sudo ufw allow OpenSSH。然后重新启用UFW来重新加载UFW规则。

运行命令sudo ufw disable && sudo ufw enable。你也可以运行命令sudo ufw status查看对防火墙的更改。

sudo ufw allow 20:21/tcp
sudo ufw allow 30000:31000/tcp
sudo ufw allow OpenSSH

sudo ufw disable
sudo ufw enable
Status: active

To                         Action      From
--                         ------      ----
20:21/tcp                  ALLOW       Anywhere
30000:31000/tcp            ALLOW       Anywhere
OpenSSH                    ALLOW       Anywhere
20:21/tcp (v6)             ALLOW       Anywhere (v6)
30000:31000/tcp (v6)       ALLOW       Anywhere (v6)
OpenSSH (v6)               ALLOW       Anywhere (v6)

禁用 shell 访问

默认情况下,在创建用户时,如果未明确指定,用户也可以通过SSH访问服务器。要禁用 shell 访问权限,

请创建一个新的shell,将打印消息,告诉用户其帐户仅限于ftp访问。运行echo命令和chmod命令,创建/bin/ftponly文件并使其可执行。

然后运行命令将新创建的shell追加到etc/shells文件中,最后将用户登录shell更改为/bin/ftponly

您可以使用相同的命令更改要仅提供FTP访问的所有用户,newftpuser是Linux 用户的名称,记得更改为你用户。

echo -e '#!/bin/sh
echo "This account is limited to FTP access only."' | sudo tee -a  /bin/ftponly

sudo chmod a+x /bin/ftponly

echo "/bin/ftponly" | sudo tee -a etc/shells

sudo usermod newftpuser -s /bin/ftponly

结论

我们向您展示如何在Ubuntu 20.04安装和配置FTP服务器。如果您有任何问题或反馈,请随时留下评论。点击下方阅读原文获取更好排版格式。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    10981

    浏览量

    206687
  • 服务器
    +关注

    关注

    12

    文章

    8088

    浏览量

    82433
  • FTP
    FTP
    +关注

    关注

    0

    文章

    98

    浏览量

    40278
  • Ubuntu
    +关注

    关注

    5

    文章

    531

    浏览量

    28792
收藏 人收藏

    评论

    相关推荐

    何在Ubuntu 22.04上搭建ftp服务器

    本文将在Ubuntu 22.04上搭建ftp服务器,对于其他版本Ubuntu系统或者其他系列的Linux发行版,配置都差不多。
    发表于 08-21 09:18 417次阅读
    如<b class='flag-5'>何在</b><b class='flag-5'>Ubuntu</b> 22.04上搭建<b class='flag-5'>ftp</b><b class='flag-5'>服务器</b>

    【飞腾派4G版免费试用】如何在飞腾开发板上安装EMQX MQTT服务器

    系统中搭建一个单节点的MQTT服务器。 1. 安装EMQX 本文演示的环境为: 硬件:飞腾派开发板,ARMV8架构 操作系统:Ubuntu 20.04 EMQX
    发表于 12-26 11:16

    Ubuntu 16.04 如何使用Samba服务器

    本帖最后由 weidongshan 于 2018-1-25 15:54 编辑 对于Windows与Ubuntu之间的数据传输,我们习惯于使用FTP工具,不过还是有学员问到samba服务器搭建
    发表于 01-25 15:51

    使用Python创建简单的FTP服务器

    可以利用 Python 的 Pyftpdlib 模块快速搭建FTP 服务器实现文件上传下载功能,以下是具体做法:安装 Pyftpdlib 模块$ sudo pip install pyftpdlib
    发表于 05-04 16:17

    46FTP服务器配置步骤

    46FTP服务器配置
    发表于 10-31 09:27

    ubuntu下搭建NFS服务器

    ubuntu下搭建NFS服务器何在ubuntu下搭建NFS服务器,是困扰很多人的一个问题,下面是ubu
    发表于 11-02 16:08

    润和Hi3559A开发板和ubuntu服务器如何配置网络?

    本帖最后由 TruAnT 于 2022-3-15 16:17 编辑 要在板子上跑例程,ubuntu服务器安装好了NFS文件系统,要把ubuntu
    发表于 03-15 15:15

    Ubuntu Server菜鸟配置手册

    Ubuntu Server菜鸟配置手册──目录 1 安装Ubuntu Server 4 2 简单的配置
    发表于 05-22 00:54 54次下载

    FTP服务构成及FTP服务器介绍

    FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为
    的头像 发表于 08-22 14:22 4843次阅读

    手把手教你Linux搭建FTP服务器

    Windows搭建FTP服务器相当简单, 下载FTP服务器软件后, 按指示点击下一步下一步便完成, 但Linux因为没有图像操作, 所以相对地困难, 我们会为大家展示
    的头像 发表于 10-19 09:01 3826次阅读
    手把手教你Linux搭建<b class='flag-5'>FTP</b><b class='flag-5'>服务器</b>

    如何配置FTP服务器

    所有运行FTP协议的服务器相连,以访问服务器上的大量程序和信息。FTP的主要作用就是让用户连接一个远程计算机(这些计算机上运行着FTP
    的头像 发表于 01-10 09:03 2054次阅读

    Windows11 wsl2安装Ubuntu-20.04

    Windows11 wsl2安装Ubuntu-20.04
    的头像 发表于 08-16 10:04 599次阅读
    Windows11 wsl2<b class='flag-5'>安装</b><b class='flag-5'>Ubuntu-20.04</b>

    ftp服务器有什么作用?

    ftp服务器是一种软件应用程序或服务,有助于通过网络(通常是互联网)在计算机之间传输文件。ftp服务器的主要用途是使用户能够上传、下载和管理
    的头像 发表于 09-19 17:24 2477次阅读

    ubuntu20.04安装教程

    Ubuntu 20.04安装步骤如下: 制作启动U盘。首先下载Ubuntu 20.04的镜像文件和UltraISO(镜像制作工具)。然后
    的头像 发表于 11-13 16:59 950次阅读

    服务器linux搭建ftp服务访问不了怎么解决?

    如果你在云服务器linux上搭建了FTP服务但无法访问,这可能是由于几种原因引起的。以下是一些常见问题和解决方法: 1、防火墙配置:确保防火墙允许F
    的头像 发表于 04-18 17:23 88次阅读