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

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

3天内不再提示

如何在Ubuntu Linux发行版上正确安装和设置 VSFTPD

454398 来源:网络整理 作者:网络整理 2019-12-12 09:18 次阅读

步骤1:背景信息

为什么使用VSFTPD?

VSFTPD代表非常安全的FTP守护程序,所以我想这很明显,对吧?老实说,我无法验证它是否确实是目前最安全的FTP服务器,但是我可以告诉您的是它是轻量级的,具有非常低的功能,最重要的是没有问题。请注意,根据您的发行版和执行的安装类型,您很有可能已经拥有了它。在这种情况下,您显然不需要重新安装。

为什么使用Ubuntu?

从技术上讲,不是我的计算机上安装了Ubuntu,而是PepperMint。 PepperMint是Mint Linux的简化版,后者又基于Ubuntu。我选择Ubuntu的唯一原因是因为这是我过去使用过的并且我更加熟悉。如果您使用的是其他类型的Linux,那么按照此说明进行操作不会有任何问题。我将尝试突出显示您需要进行更改的所有部分。

先决条件

如果您已阅读本文,我认为您使用计算机的目的不只是Farm ville。显然需要有可用的Linux机器。如果您正在寻找基于Windows的解决方案,我会推荐FileZilla,它易于设置和维护。除此之外,您唯一需要的就是要使用的计算机上的Internet访问。您可以选择将FTP服务器设置为仅供内部使用,但在这种情况下,您将必须手动下载并安装所需的软件包。

免责声明

设置FTP服务器(出于安全考虑)仅允许匿名访问,只能下载。甚至系统管理员也不能在服务器上上传内容。应使用其他方法将内容放在FTP目录中。从理论上讲,我将在这里向您展示的内容会损害您系统的安全性,因为我将创建一个具有上传特权的用户。尽管我已经采取了额外的预防措施以使其尽可能安全,但是如果您对安全性抱有偏执,请不要遵循这些说明。

步骤2:安装

pIYBAF2LDSGAKKwOAAC7mOh-ADw988.jpg

Linux中的软件包含在我们称为软件包中。在这里,我将不做太多详细介绍,有无数的地方可以阅读。但是,如果有您不了解的地方或需要帮助的地方,请提出问题,我将尽力回答。

为此,您需要Internet访问。如果要设置仅在LAN中使用的计算机,则必须使用另一台可以访问,手动下载和安装软件包的计算机。

在终端(控制台-命令行)上,键入以下内容:

sudo apt-get install vsftpd

然后会要求您输入密码。输入它,它将连接到互联网并搜索您告诉它的包裹。一段时间后,它将告诉您确切打算安装什么,并等待确认。按下键盘上的 Y ,等待安装完成。

恭喜!您已经安装了VSFTPD。

如果您使用的是其他发行版,则可能需要调整以上命令。例如,在Gentoo Linux中,出现了apt-get等效项,在Suse中,您使用zypper命令,依此类推。由于sudo可能不存在,您可能会想知道如何在自己的发行版中以root特权执行命令。

步骤3:创建FTP用户。

pIYBAF2LDSeATeU4AABtxjvZ2Lk099.jpg

o4YBAF2LDLiAJS0oAABG-89Nnzs562.jpg

pIYBAF2LDTSAaHYnAABzOy_M_Wg701.jpg

我已经说过,FTP服务器的最安全配置是只允许匿名访问而没有写权限。我们将偏离这一点。我们将创建两个用户,一个只能下载,另一个可以充当管理员,即上载和下载特权。请注意,这些用户也将是系统用户。因此,我们必须采取一些额外的步骤,以使整个过程变得更加安全。

首先,您必须确定FTP文件夹的位置。我选择了/home/ftp。因此,在终端类型中:

sudo mkdir/home/ftp

现在,我们需要添加用户,但首先要确保唯一新用户可以登录到我们的FTP服务器。每当您创建一个新的Linux用户时,就为他分配一个将要使用的默认Shell。如果您不确定我在说什么,请花一点时间阅读有关Shell的内容。使用您喜欢的编辑器,打开/etc/shells文件并添加一个不存在的文件。我将我的命名为“ dummy”,如下图所示。

计划是添加两个FTP用户,一个FTP用户既具有写访问权,又具有读取访问权,而一个简单的用户只能下载文件。这样,如果要让您的朋友下载文件,则不必授予他对服务器的写访问权限。

在创建用户之前,必须创建一个用户所属的组。 。默认情况下,Linux创建一个与用户同名的用户组,但是我们不希望这样。因此,在终端类型中:

sudo groupadd ftp-users

现在我们可以添加用户:

sudo useradd --home/home/ftp --group ftp用户--shell/bin/dummy ftpadmin

sudo passwd ftpadmin 《为用户提供密码后,就完成了。对第二个用户重复相同的过程。我命名为ftpguest。您可以选择所需的任何名称。尝试使用您创建的任一新用户登录系统。如果您做对了所有事情,则应该无法登录。

我们快完成了。我们只需要向用户授予我们在上面创建的FTP目录的正确权限。首先,我们将目录的所有者从根目录更改为ftpadmin:

sudo chown -R ftpadmin/home/ftp

然后:

sudo chmod 755/home/ftp

这两个命令的结果是目录所有者(ftpadmin)将拥有对该目录及其中文件的完全访问权限而世界其他地区则只能读取访问权限。执行ls -l,您应该会看到类似第三张图片的画面(这也使我忘记了对ls命令:P的正确切换)。

您可以在此处阅读有关文件权限的更多信息。

步骤4:编辑配置文件

pIYBAF2LDUSAdhHRAADACbHUWr4537.jpg

与Windows不同,Linux没有注册表文件。就我个人而言,我认为这是一种祝福,因为没有诸如注册表太大之类的事情,这意味着您的系统变慢且不稳定。每个程序都有自己的包含配置选项的文件。在这一步中,我们将对VSFTPD的配置文件进行一些调整。

我认为这很明显,但是我必须指出,在开始使用它之前,我们需要首先进行复制,以防万一出了问题。 。如果您发现自己经常弄乱配置文件,那么创建一个目录来存储所有这些文件的备份并不是一个坏主意。假设此目录为/home/cfgbackup,请在终端中键入以下命令:

sudo cp/etc/vsftpd.conf/home/cfgbackup

现在,使用您喜欢的编辑器(您可能已经注意到,我更喜欢nano)打开vsftpd.conf。

令人难以置信的是,有许多设置可供您使用,我只会指出我所做的更改。

首先,请找到标有anonymous_enable的行,并确保其为 anonymous_enable = NO 。请注意,此处以#开头的行是注释,因此,删除#时,您可以激活这些行(这称为取消注释)。 br》找到显示local_enable的行,并将其更改为 local_enable = YES 。使用 write_enable 执行相同的操作。到目前为止,您已经禁止匿名用户访问服务器,并且仅允许系统用户登录。根据配置文件,每个用户都具有写权限,但是我们在上一步中已经处理了此权限,还记得吗?

下一步是将我们的FTP用户包含到其主目录中。此方法称为“ Root jail”,它使用chroot命令。检查下面的图片,并相应地更改您自己的文件。接下来的两行是我添加的,因此不要尝试在您自己的文件中找到它们(至少它们在我的文件中不存在)。添加它们以仅允许一部分用户登录到您的服务器。请注意,我们在此处声明了文件名:vsftpd.chroot_list,由于该文件不存在,我们现在必须创建该文件。创建它并添加您创建的两个用户,每个用户都在自己的行中。创建另一个名为vsftpd.user_list的文件,并在其中也添加这两个用户。这两个文件都应该在/etc目录中。

在终端中键入:

sudo服务vsftpd restart

新设置将生效您的新FTP服务器就可以使用了!

步骤5:结束语

o4YBAF2LDOOAM95qAAHVXQLe***4484.jpg

您已经成功设置了自己的FTP服务器。它具有尽可能高的安全性(当然要考虑我们的要求),它使您可以从世界任何地方传输文件,与朋友共享文件以及更接近可怕的Linux终端。

看到配置文件中有关chroot的“警告”的警告,让我告诉你,无论我多么努力地搜索,我发现的唯一内容是“如果有人知道他在做什么,他也许可以绕过它”,但是什么也没有更加具体。我已经告诉过您,我们将偏离建议的FTP安全性明智使用,因此这是我愿意承担的风险之一。

我在本指南中未涉及的唯一部分是如何访问您的服务器是来自外部的,但基本上是从路由器转发端口22(或在配置文件中选择的端口),如果没有静态IP地址,则可能会设置一个动态dns帐户。我敢肯定那里有很多关于如何执行此操作的教程,所以我在这里没有包含这样的说明。

责任编辑:wv

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

    关注

    87

    文章

    10942

    浏览量

    206543
  • vsftpd
    +关注

    关注

    0

    文章

    3

    浏览量

    1697
收藏 人收藏

    评论

    相关推荐

    Linux上怎么配置NTP时间同步呢?

    。下面是一个详细的关于如何在Linux上配置NTP时间同步的指南。 第一步:安装NTP服务器软件 在开始配置NTP之前,我们首先需要确保系统中已经安装了NTP服务器软件。在大多数
    的头像 发表于 01-16 16:03 287次阅读

    何在Ubuntu Linux上释放/boot分区中的空间

    Ubuntu Linux上,/boot分区是用于存储启动相关的文件的。随着时间的推移,这个分区可能会变满,导致系统无法安装新的内核和更新。本文将介绍如何释放/boot分区中的空间,并提供详细的步骤。
    的头像 发表于 11-28 10:04 279次阅读

    2023年10个最佳Linux服务器发行版

    Debian Server: Debian是最古老的Linux发行版之一,并以其稳定性而闻名。它拥有强大的软件包管理系统,并提供稳定版、不稳定版和测试版三个版本。Debian被广泛用作其他发行版的基础,并支持多种计算机架构。
    的头像 发表于 09-13 16:00 1124次阅读
    2023年10个最佳<b class='flag-5'>Linux</b>服务器<b class='flag-5'>发行版</b>

    技巧|ubuntu20安装

    linux发行版可以说是非常多的, 这里主要是介绍ubuntu20的安装, 以及安装完后的一些技巧, 推荐使用
    的头像 发表于 09-10 10:43 831次阅读
    技巧|<b class='flag-5'>ubuntu</b>20<b class='flag-5'>安装</b>

    何在Ubuntu 22.04上搭建ftp服务器

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

    适用于Linux的Emulex驱动程序 版本RHEL 7.x 12.6.240.48所有其他发行版12.6.240.45

    电子发烧友网站提供《适用于Linux的Emulex驱动程序 版本RHEL 7.x 12.6.240.48所有其他发行版12.6.240.45.pdf》资料免费下载
    发表于 08-04 09:55 0次下载
    适用于<b class='flag-5'>Linux</b>的Emulex驱动程序 版本RHEL 7.x 12.6.240.48所有其他<b class='flag-5'>发行版</b>12.6.240.45

    龙架构Arch Linux发行版正式发布

    近日,龙架构Arch Linux发行版官方网站宣布结束beta状态,正式支持龙架构。Arch Linux是一种轻量级、可定制、灵活的Linux操作系统。作为一款简单、现代、开放的操作系
    的头像 发表于 07-18 11:16 587次阅读

    SUSE 将开发一个与 RHEL 兼容的发行版

    投资千万美金只为确保用户自由使用 SUSE 将通过投资持续支持 SUSE Linux Enterprise 发行版及相关开源项目的发展,驱动创新 SUSE 计划将源代码贡献给开源基金会 北京2023
    的头像 发表于 07-12 21:36 269次阅读
    SUSE 将开发一个与 RHEL 兼容的<b class='flag-5'>发行版</b>

    5个最漂亮的Arch Linux发行版

    如果你是窗口管理器的粉丝,想要一个令人惊艳的 Arch Linux 发行版,试试 Mabox Linux 吧。Mabox Linux 专注于简单和优雅。它是 Manjaro
    的头像 发表于 07-04 10:30 549次阅读
    5个最漂亮的Arch <b class='flag-5'>Linux</b><b class='flag-5'>发行版</b>

    恒讯科技分析:Linux VPS服务器之CentOS和Ubuntu的区别

    由于有大量可用的替代方案,为我们的服务器选择操作系统可能是一个困难的过程,特别是如果我们选择使用Linux发行版Linux VPS有多种选择,但没有一个像Ubuntu或CentOS那
    的头像 发表于 06-28 17:15 377次阅读

    微软发布自己的Linux发行版

    Azure Linux 发行版源于 CBL-Mariner 项目,其中 CBL 代表 Common Base Linux。Perrin 称,微软启动 CBL-Mariner 项目是因为它需要一个内部
    的头像 发表于 05-30 14:59 557次阅读
    微软发布自己的<b class='flag-5'>Linux</b><b class='flag-5'>发行版</b>!

    微软发布 Azure Linux 正式版

    服务(AKS)的一个开源容器主机操作系统,它针对 Azure 进行了优化,旨在使开发人员更容易使用微软的工具来部署和管理容器工作负载。Azure Linux 源于微软的 CBL-Mariner 项目,是“自我独立的 Linux 发行版
    发表于 05-28 08:34

    又该换Linux版本了!

    最近,知名技术网站The Register上发布的一篇文章引起了网友的热烈讨论,详细讲述了一位博主为什么选择“将Ubuntu替换成Fedora”(Ubuntu和Fedora是Linux的两个不同
    的头像 发表于 05-12 16:28 941次阅读
    又该换<b class='flag-5'>Linux</b>版本了!

    简述Ubuntu安装软件的四种方式

    Ubuntu应该是目前最流行的Linux桌面系统了,本节会介绍在Ubuntu Linux系统上软件安装的几种方式。 下面会依次介绍ap
    的头像 发表于 05-12 15:25 1.2w次阅读
    简述<b class='flag-5'>Ubuntu</b><b class='flag-5'>安装</b>软件的四种方式

    求助,有人可以指点我如何从Linux发行版的ISO文件转到能够在此板运行它的说明吗?

    有人可以指点我如何从 Linux 发行版的 ISO 文件转到能够在此板运行它的说明吗?我能找到的所有说明都是基于使用 NXP 的 LSDK 版本
    发表于 04-19 06:27