步骤1:背景信息
为什么使用VSFTPD?
VSFTPD代表非常安全的FTP守护程序,所以我想这很明显,对吧?老实说,我无法验证它是否确实是目前最安全的FTP服务器,但是我可以告诉您的是它是轻量级的,具有非常低的功能,最重要的是没有问题。请注意,根据您的发行版和执行的安装类型,您很有可能已经拥有了它。在这种情况下,您显然不需要重新安装。
为什么使用Ubuntu?
从威廉希尔官方网站 上讲,不是我的计算机上安装了Ubuntu,而是PepperMint。 PepperMint是Mint Linux的简化版,后者又基于Ubuntu。我选择Ubuntu的唯一原因是因为这是我过去使用过的并且我更加熟悉。如果您使用的是其他类型的Linux,那么按照此说明进行操作不会有任何问题。我将尝试突出显示您需要进行更改的所有部分。
先决条件
如果您已阅读本文,我认为您使用计算机的目的不只是Farm ville。显然需要有可用的Linux机器。如果您正在寻找基于Windows的解决方案,我会推荐FileZilla,它易于设置和维护。除此之外,您唯一需要的就是要使用的计算机上的Internet访问。您可以选择将FTP服务器设置为仅供内部使用,但在这种情况下,您将必须手动下载并安装所需的软件包。
免责声明
设置FTP服务器(出于安全考虑)仅允许匿名访问,只能下载。甚至系统管理员也不能在服务器上上传内容。应使用其他方法将内容放在FTP目录中。从理论上讲,我将在这里向您展示的内容会损害您系统的安全性,因为我将创建一个具有上传特权的用户。尽管我已经采取了额外的预防措施以使其尽可能安全,但是如果您对安全性抱有偏执,请不要遵循这些说明。
步骤2:安装
Linux中的软件包含在我们称为软件包中。在这里,我将不做太多详细介绍,有无数的地方可以阅读。但是,如果有您不了解的地方或需要帮助的地方,请提出问题,我将尽力回答。
为此,您需要Internet访问。如果要设置仅在LAN中使用的计算机,则必须使用另一台可以访问,手动下载和安装软件包的计算机。
在终端(控制台-命令行)上,键入以下内容:
sudo apt-get install vsftpd
然后会要求您输入密码。输入它,它将连接到互联网并搜索您告诉它的包裹。一段时间后,它将告诉您确切打算安装什么,并等待确认。按下键盘上的 Y ,等待安装完成。
恭喜!您已经安装了VSFTPD。
如果您使用的是其他发行版,则可能需要调整以上命令。例如,在Gentoo Linux中,出现了apt-get等效项,在Suse中,您使用zypper命令,依此类推。由于sudo可能不存在,您可能会想知道如何在自己的发行版中以root特权执行命令。
步骤3:创建FTP用户。
我已经说过,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:编辑配置文件
与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:结束语
您已经成功设置了自己的FTP服务器。它具有尽可能高的安全性(当然要考虑我们的要求),它使您可以从世界任何地方传输文件,与朋友共享文件以及更接近可怕的Linux终端。
看到配置文件中有关chroot的“警告”的警告,让我告诉你,无论我多么努力地搜索,我发现的唯一内容是“如果有人知道他在做什么,他也许可以绕过它”,但是什么也没有更加具体。我已经告诉过您,我们将偏离建议的FTP安全性明智使用,因此这是我愿意承担的风险之一。
我在本指南中未涉及的唯一部分是如何访问您的服务器是来自外部的,但基本上是从路由器转发端口22(或在配置文件中选择的端口),如果没有静态IP地址,则可能会设置一个动态dns帐户。我敢肯定那里有很多关于如何执行此操作的教程,所以我在这里没有包含这样的说明。
责任编辑:wv
-
Linux
+关注
关注
87文章
11304浏览量
209493 -
vsftpd
+关注
关注
0文章
3浏览量
1730
发布评论请先 登录
相关推荐
评论