当前位置: 首页>>技术教程>>正文


如何在Ubuntu Linux中设置和使用FTP服务器

, ,

介绍

FTP是几乎每天使用Internet的任何人都知道的一项服务。本指南将以简单的步骤详细说明如何在Ubuntu Linux上设置FTP服务器。我们将展示如何在普通模式和stand-alone模式下设置FTP服务器。我们还将为您的新FTP设置提供一些安全提示。本指南将使用轻便高效的FTP服务器vsFTPd旨在承受高负载的服务器。

约定

有时在本文中我们将参考vsFTPd就像FTP服务器一样。

什么是FTP

对于不熟悉FTP的用户,这里是此服务所提供内容的简短说明。 FTP代表FileŤ转让人Protocol。顾名思义,此网络协议允许您通过网络将文件或目录从一台主机传输到另一台主机,无论是您的LAN还是Internet。

主要特点vsFTPd包括:虚拟IP配置,虚拟用户,独立或inetd操作,强大的per-user可配置性,带宽限制,Per-source-IP可配置性,Per-source-IP限制,通过SSL集成的IPv6和加密支持。

在Ubuntu中安装FTP服务器

像在其他任何Ubuntu这样的Linux系统中一样,FTP服务器的安装归结为一个命令。打开您的终端并输入命令:

$ sudo apt-get install vsftpd

上面的命令将在您的Linux系统上安装并启动ftp服务器。

Setting up vsftpd (2.3.5-1ubuntu2) ...
vsftpd start/running, process 1891

Stand-alone与普通FTP模式

Stand-alone模式

默认情况下,vsftpd在stand-alone模式下启动。在stand-alone模式下,您在服务器上运行的服务具有其自己的名为daemon的启动脚本。如果是vsftpd,它是一个/etc/init.d/vsftpd。该stand-alone守护程序在启动后即会控制FTP服务。 vsftpd守护程序为管理员提供了一些命令来管理vsftpd FTP服务器:

  • 开始要么-用于启动和停止ftp服务器
  • 状态-提供有关FTP服务器当前状态的更多信息
  • 重新开始-这是后续执行的替代方法开始命令。如果FTP服务器已关闭,则重新开始命令将启动它。
  • 重装-这将指示FTP服务器重新加载并应用所有新配置。和…之间的不同重装重新开始是那个重装您不是要关闭FTP,而是要使用新的配置设置重新加载FTP,同时确保持续的正常运行时间。

要启动,重新启动,重新加载或获取FTP服务器的状态,我们可以使用服务效用:

$ sudo service vsftpd start

上面的语法适用于所有其他命令,因此只需将start替换为您希望执行的命令即可。




正常模式

另一种方法是在正常模式下启动vsftpd FTP服务,这意味着希内特超级服务器将负责使您的FTP服务保持活动状态。要以正常模式启动vsftpd FTP服务器,我们首先需要安装希内特超级服务器:

$ sudo apt-get install xinetd

上面的命令将安装并启动希内特系统上的超级服务器。很有可能您已经拥有希内特安装在您的系统上。在这种情况下,您可以忽略上述安装命令。

接下来,在/etc/xinetd.d/中创建一个名为vsftpd的文件,其内容如下:

service ftp
{
        disable                 = no
        socket_type             = stream
        wait                    = no
        user                    = root
        server                  = /usr/sbin/vsftpd
        per_source              = 5
        instances               = 200
        no_access               = 10.1.1.10
        banner_fail             = /etc/vsftpd.busy
        log_on_success          += PID HOST DURATION
        log_on_failure          += HOST
}

同时更改任何选项以适合您的情况。您需要注意的选项有:

  • 服务器-在命令行上键入“ $ which vsftpd”以获取正确的路径
  • no_access-这将阻止任何具有此指令定义的IP地址的主机
  • banner_fail-这可以是任何文本文件的路径,并且文本可以显示到任何被阻止的IP地址

下一步,我们需要编辑FTP服务器的配置文件/etc/vsftpd.conf并更改以下行:

listen=YES

listen=NO

这将指示FTP服务器不要打开任何端口,并将其完全留给希内特超级服务器。在正常模式下启动FPT服务器之前,请使用希内特确保首先使用以下命令关闭vsftpd守护程序:

$ sudo服务vsftpd停止

现在,我们准备就绪,可以使用以下方式以正常模式启动FTP服务器:

$ sudo服务xinetd重新启动

要确认您的FTP服务器正常启动,请测试并打开端口21netstat命令:

$ netstat -ant | grep 21
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN

建立第一个FTP连接

无论您是以stand-alone还是以普通模式启动FTP服务器,您都应该能够建立第一个本地ftp连接。默认情况下,vsftpd FTP服务器允许匿名访问。这是我们将要用来建立第一个FTP连接以测试FTP服务器安装的用户。为此,只需使用本地主机作为参数执行ftp命令:

$ ftp localhost
Connected to localhost.
220 (vsFTPd 2.3.5)
Name (localhost:root): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
ftp> quit
221 Goodbye.

以上内容仅确认在本地系统上正确设置了FTP服务器。在深入了解FTP服务器配置之前,应使用一些远程主机测试新的FTP服务器安装。



配置FTP服务器

在以下部分中,我们列出了一些基本且易于配置的选项。

重要:对FTP服务器配置进行任何更改时,请确保重新启动/重新加载,以应用所做的所有更改。

配置用户访问

使用vsftpd FTP服务器,您可以选择仅保留匿名访问的FTP服务身份验证,或者可以允许在/etc /passwd或相关访问列表中定义的用户登录。

匿名FTP访问

默认情况下,vsftpd FTP服务器仅配置为匿名访问。如果您打算使用FTP服务器,则可以通过禁用密码要求来简化匿名访问。 FTP服务器最安全的选项是不允许用户使用简单明文格式的密码进行身份验证。要禁用对匿名密码的要求,只需编辑FTP服务器的配置文件/etc/vsftpd.conf并将伪指令no_anon_password设置为NO:

no_anon_password=YES

本地用户FTP访问

现在,您的服务器应设置为禁止除匿名用户外的任何访问。在配置文件/etc/vsftpd.conf中设置local_enable指令,以允许登录/etc /passwd中定义的所有用户。默认为“否”。

local_enable=YES

现在,在/etc /passwd中定义的任何用户都可以使用其相关密码登录。

$ ftp localhost
Connected to localhost.
220 (vsFTPd 2.3.5)
Name (localhost:root): lubos
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> quit
221 Goodbye.

用户访问权限列表

首先创建要与vsFTPd FTP服务器一起使用的访问列表。通常,您将在/etc /目录中定义此类列表。使用任意文件名并列出该文件中您希望允许或拒绝访问的所有用户名。例如,让我们用一个用户”lubos”定义一个新列表:

echo lubos > /etc/vsftpd.userlist

接下来,在配置文件/etc/vsftpd.conf中定义一个新的用户列表,并启用userlist_enable指令:


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

只需定义和启用用户列表,即可在/etc/vsftpd.userlist中列出的所有用户拒绝访问您的FTP服务器。

要撤消此选项,仅允许/etc/vsftpd.userlist中列出的用户,请将userlist_deny配置指令设置为NO。这样,您仅允许/etc/vsftpd.userlist中定义的用户访问您的系统。/etc/vsftpd.userlist文件的格式是每行一个用户。

$ ftp localhost
Connected to localhost.
220 (vsFTPd 2.3.5)
Name (localhost:root): lubos
530 Permission denied.
Login failed.
ftp>


更改默认端口号

默认情况下,任何FTP服务器都在标准端口21上侦听用户身份验证,在端口20上侦听数据传输。 vsFTPd FTP服务器也不例外。要更改默认监听端口,只需更改/etc/vsftpd.conf配置文件并更改指令listen_port。因此,要将FTP服务器更改为在端口2121上侦听,只需将以下指令添加到配置文件中:

listen_port=2121

然后重新启动FTP服务器。

但是,这仅在以stand-alone模式运行vsFPTd时适用。如果您使用希内特超级服务器,您希望将侦听端口更改为2121,编辑FTP行/etc /services文件,并将其从21更改为2121,然后重新启动xinetd。

$ sudo service xinetd restart

现在,您应该可以看到您的FTP服务器在端口2121上进行侦听:

$ netstat -ant | grep 2121
tcp 0 0 0.0.0.0:2121 0.0.0.0:* LISTEN

其他配置选项

vsFTPd服务器带有许多配置选项,可以满足您的需求。在这里,我们列出了其他一些值得一提的配置选项:

  • max_clients-此选项设置允许同时使用您的FTP服务器的最大用户数。 0 =无限。
  • max_per_ip-设置来自同一IP地址的最大用户数
  • download_enable-如果设置为“否”,则将拒绝任何下载请求

结论

目前,vsFTPd带有约125个配置选项。这使得该FTP服务器具有极大的通用性,同时非常易于使用和配置。无论是在公司内部还是在远程服务器上将FTP服务器设置为供本地家庭使用,请确保vsFTPd可以容纳您。 vsFTPd FTP服务器也可以转换为sftp,但这将在下一个教程中讨论,因此请不要忘记订阅我们的RSS。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/8755.html,未经允许,请勿转载。