免费ftp服务器(ftp上传文件到服务器)

FTP(文件传输协议)是用于在远程网络之间传输文件的标准网络协议。有许多开源FTP服务器可用于Linux。最受欢迎和广泛使用的是PureFTPd、ProFTPD

FTP(文件传输协议)是用于在远程网络之间传输文件的标准网络协议。

有许多开源FTP服务器可用于Linux。最受欢迎和广泛使用的是PureFTPd、ProFTPD和vsftpd。在本教程中,我们将安装vsftpd(非常安全的Ftp守护进程)。这是一个稳定,安全和快速的FTP服务器。我们还将向您展示如何配置vsftpd,以将用户限制在他们的主目录中,并使用SSL/TLS加密整个传输。

虽然本教程是为Ubuntu 18.04编写的,但同样的说明也适用于Ubuntu 16.04和任何基于Debian的发行版,包括Debian、Linux Mint和Elementary OS。

为了更安全、更快速地传输数据,请使用SCP或SFTP。

1.先决条件

在继续本教程之前,请确保您以拥有sudo权限的用户身份登录。

2.在Ubuntu 18.04上安装vsftpd

vsftpd包可以在Ubuntu repository中获得。要安装它,只需运行以下命令:

sudo apt更新

sudo安装vsftpd

如何在 Ubuntu 18.04 上使用 VSFTPD 设置 FTP 服务器

vsftpd服务将在安装过程完成后自动启动。通过打印来验证服务状态:

执行命令:sudo systemctl status vsftpd

如何在 Ubuntu 18.04 上使用 VSFTPD 设置 FTP 服务器

输出如下,表明vsftpd服务处于活动状态并且正在运行:

如何在 Ubuntu 18.04 上使用 VSFTPD 设置 FTP 服务器

3.配置vsftpd

您可以通过编辑/etc/vsftpd.conf文件来配置vsftpd服务器。大多数设置都详细记录在配置文件中。有关所有可用选项,请访问vsftpd官方页面。

在下面几节中,我们将介绍一些配置安全vsftpd安装所需的重要设置。

首先,打开vsftpd配置文件:

如何在 Ubuntu 18.04 上使用 VSFTPD 设置 FTP 服务器

3.1 FTP访问

我们将只允许本地用户访问FTP服务器,找到anonymous_enable和local_enable指令,并验证您的配置是否与以下行匹配:

匿名_启用=否

local _ enable =是

如何在 Ubuntu 18.04 上使用 VSFTPD 设置 FTP 服务器

3.2启用上传

取消对write_enable设置的注释,以允许对文件系统进行更改,例如上载和删除文件。

write _ enable =是

如何在 Ubuntu 18.04 上使用 VSFTPD 设置 FTP 服务器

3.3 Chroot监狱

要防止FTP用户访问其主目录之外的任何文件,请取消对此chroot设置的注释。

chroot _ local _ user =是

如何在 Ubuntu 18.04 上使用 VSFTPD 设置 FTP 服务器

默认情况下,为防止安全漏洞,在启用chroot时,如果用户的锁定目录是可写的,vsftpd将拒绝上传文件。

启用chroot后,使用以下方法之一来允许上传。

1.-允许上传的建议方式是保持chroot启用并配置FTP目录。在本教程中,我们将在用户的主目录中创建一个ftp目录,作为chroot和uploads上传文件的可写目录。

用户子令牌= $用户

local_root=/home/$USER/ftp

如何在 Ubuntu 18.04 上使用 VSFTPD 设置 FTP 服务器

2.-另一个选项是将以下指令添加到vsftpd配置文件中。如果您必须授予用户对其主目录的可写访问权限,请使用此选项。

allow _ writeable _ chroot =是

如何在 Ubuntu 18.04 上使用 VSFTPD 设置 FTP 服务器

3.4被动FTP连接

vsftpd可以使用任何端口进行被动FTP连接。我们将指定端口的最小和最大范围,然后在我们的防火墙中打开该范围。

将以下行添加到配置文件中:

pasv_min_port=30000

pasv_max_port=31000

如何在 Ubuntu 18.04 上使用 VSFTPD 设置 FTP 服务器

3.5.限制用户登录

要仅允许部分用户登录FTP服务器,请在文件末尾添加以下行:

用户列表_启用=是

userlist _ file =/etc/vsftpd . user _ list

用户列表_拒绝=否

如何在 Ubuntu 18.04 上使用 VSFTPD 设置 FTP 服务器

启用此选项后,您需要通过将用户名添加到文件中来明确指定哪些用户可以登录到/etc/vsftpd.user_list(每行一个用户)。

3.6使用SSL/TLS保护传输

为了使用SSL/TLS加密FTP传输,您需要有一个SSL证书并配置FTP服务器来使用它。

您可以使用由可信证书颁发机构签名的现有SSL证书,也可以创建自签名证书。

如果你有一个指向FTP服务器IP地址的域或子域,你可以很容易地生成一个免费的Let & # 39加密SSL证书。

我们将使用这个命令来生成一个自签名的SSL证书。心脏出血

以下命令将创建有效期为10年的2048位私钥和自签名证书。私钥和证书将保存在同一个文件中:

sudo OpenSSL req-x509-nodes-days 3650-new key RSA:2048-keyut/etc/SSL/private/vsftpd . PEM-out/etc/SSL/private/vsftpd . PEM

如何在 Ubuntu 18.04 上使用 VSFTPD 设置 FTP 服务器

如何在 Ubuntu 18.04 上使用 VSFTPD 设置 FTP 服务器

创建SSL证书后,打开vsftpd配置文件:

sudo nano /etc/vsftpd.conf

如何在 Ubuntu 18.04 上使用 VSFTPD 设置 FTP 服务器

找到RSA _ cert _和rsa _ private _ key _ file指令,将它们的值更改为pam文件路径,并将ssl_enable指令设置为YES:

RSA _ cert _ file =/etc/SSL/private/vsftpd . PEM

RSA _ private _ key _ file =/etc/SSL/private/vsftpd . PEM

ssl _ enable =是

如何在 Ubuntu 18.04 上使用 VSFTPD 设置 FTP 服务器

除非另有说明,FTP服务器将只使用TLS来建立安全连接。

4.重新启动vsftpd服务

编辑后,vsftpd配置文件(不包括注释)应该如下所示:

听=不

listen _ ipv6 =是

匿名_启用=否

local _ enable =是

write _ enable =是

dirmessage _ enable =是

use _ localtime =是

xferlog _ enable =是

connect _ from _ port _ 20 =是

chroot _ local _ user =是

secure _ ch root _ dir =/var/run/vsftpd/empty

pam_service_name=vsftpd

RSA _ cert _ file =/etc/SSL/private/vsftpd . PEM

RSA _ private _ key _ file =/etc/SSL/private/vsftpd . PEM

ssl _ enable =是

用户子令牌= $用户

local_root=/home/$USER/ftp

pasv_min_port=30000

pasv_max_port=31000

用户列表_启用=是

userlist _ file =/etc/vsftpd . user _ list

用户列表_拒绝=否

如何在 Ubuntu 18.04 上使用 VSFTPD 设置 FTP 服务器

保存文件并重新启动vsftpd服务,以使更改生效:

执行命令:sudo systemctl restart vsftpd

如何在 Ubuntu 18.04 上使用 VSFTPD 设置 FTP 服务器

5.打开防火墙。

如果您运行的是UFW防火墙,您需要允许FTP流量。

要打开端口21(FTP命令端口)、端口20(FTP数据端口)和30000-31000(被动端口范围),请运行以下命令:

sudo ufw允许20:21/tcp

sudo ufw允许30000:31000/tcp

如何在 Ubuntu 18.04 上使用 VSFTPD 设置 FTP 服务器

为避免被锁定,请打开端口22:

如何在 Ubuntu 18.04 上使用 VSFTPD 设置 FTP 服务器

通过禁用并重新启用UFW来重新加载UFW规则:

sudo ufw禁用

sudo ufw使能

如何在 Ubuntu 18.04 上使用 VSFTPD 设置 FTP 服务器

要验证变更运行,请执行以下操作:

sudo ufw状态

如何在 Ubuntu 18.04 上使用 VSFTPD 设置 FTP 服务器

6.创建FTP用户

为了测试我们的FTP服务器,我们将创建一个新用户。

如果您已经有一个用户授予FTP访问权限,请跳过第一步。

如果在配置文件中设置allow _ writable _ chroot = yes,请跳过步骤3。

6.1创建一个名为newftpuser的新用户:

执行命令:sudo adduser newftpuser

如何在 Ubuntu 18.04 上使用 VSFTPD 设置 FTP 服务器

6.2将用户添加到允许的FTP用户列表中:

执行命令:echo & # 34newftpuser & # 34| sudo tee-a/etc/vsftpd . user _ list

如何在 Ubuntu 18.04 上使用 VSFTPD 设置 FTP 服务器

6.3创建FTP目录树并设置正确的权限:

执行命令1:sudo mkdir-p/home/newftpuser/FTP/upload

执行命令2:sudo chmod 550/home/newftpuser/FTP

执行命令3:sudo chmod 750/home/newftpuser/FTP/upload

执行命令4:sudo chown-r new FTP user:/home/new FTP user/FTP

如何在 Ubuntu 18.04 上使用 VSFTPD 设置 FTP 服务器

如前所述,用户可以将他们的文件上传到ftp/upload目录。

此时,您的FTP服务器功能齐全,您应该能够使用任何可以配置为使用TLS加密的FTP客户端(例如FileZilla)连接到您的服务器。

7.禁用外壳访问。

默认情况下,创建用户时,如果没有明确指定,用户将拥有对服务器的SSH访问权限。

为了禁用shell访问,我们将创建一个新的shell,它将简单地打印一条消息,告诉用户他们的帐户仅限于FTP访问。

创建/bin/ftponly shell并使其可执行:

执行命令1:1:echo-e & # 39;#!/bin/sh \ necho & # 34;此帐户仅限于FTP访问。"'| sudo tee -a /bin/ftponly

执行命令2: sudo chmod a+x/bin/ftpony

如何在 Ubuntu 18.04 上使用 VSFTPD 设置 FTP 服务器

将新shell附加到/etc/shell文件中的有效shell列表中:

执行命令:echo & # 34/bin/FTP only & # 34;sudo tee-a/etc/shell

如何在 Ubuntu 18.04 上使用 VSFTPD 设置 FTP 服务器

将用户shell更改为/bin/ftpony:

执行命令:sudo usermod new ftpuser-s/bin/ft pony

如何在 Ubuntu 18.04 上使用 VSFTPD 设置 FTP 服务器

使用相同的命令更改您只想授予FTP访问权限的所有用户的外壳。

8.结论

在本教程中,您学习了如何在Ubuntu 18.04系统上安装和配置安全快速的FTP服务器。

如果您有任何问题或反馈,请随时评论。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

作者:美站资讯,如若转载,请注明出处:https://www.meizw.com/n/171170.html

发表回复

登录后才能评论