ftp教程ubuntu ubuntu开启ftp

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

有许多可用于 Linux 的开源 FTP 服务器。最流行和使用最广泛的是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 存储库中可用。要安装它,只需运行以下命令:

sudo apt update

sudo apt install vsftpd

ftp教程ubuntu ubuntu开启ftp

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

执行命令:sudo systemctl status vsftpd

ftp教程ubuntu ubuntu开启ftp

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

ftp教程ubuntu ubuntu开启ftp

3、配置 vsftpd

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

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

首先打开 vsftpd 配置文件:

ftp教程ubuntu ubuntu开启ftp

3.1 FTP访问

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

anonymous_enable=NO

local_enable=YES

ftp教程ubuntu ubuntu开启ftp

3.2 启用上传

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

write_enable=YES

ftp教程ubuntu ubuntu开启ftp

3.3 Chroot监狱

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

chroot_local_user=YES

ftp教程ubuntu ubuntu开启ftp

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

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

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

user_sub_token=$USER

local_root=/home/$USER/ftp

ftp教程ubuntu ubuntu开启ftp

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

allow_writeable_chroot=YES

ftp教程ubuntu ubuntu开启ftp

3.4 被动 FTP 连接

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

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

pasv_min_port=30000

pasv_max_port=31000

ftp教程ubuntu ubuntu开启ftp

3.5.限制用户登录

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

userlist_enable=YES

userlist_file=/etc/vsftpd.user_list

userlist_deny=NO

ftp教程ubuntu ubuntu开启ftp

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

3.6 使用 SSL/TLS 保护传输

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

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

如果您有一个指向 FTP 服务器 IP 地址的域或子域,您可以轻松生成免费的 Let's Encrypt SSL 证书。

我们将使用该命令生成自签名 SSL 证书。openssl

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

sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

ftp教程ubuntu ubuntu开启ftp

ftp教程ubuntu ubuntu开启ftp

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

sudo nano /etc/vsftpd.conf

ftp教程ubuntu ubuntu开启ftp

找到rsa_cert_fileandrsa_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=YES

ftp教程ubuntu ubuntu开启ftp

如果没有另外指定,FTP 服务器将只使用 TLS 来建立安全连接。

4、重启 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

chroot_local_user=YES

secure_chroot_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=YES

user_sub_token=$USER

local_root=/home/$USER/ftp

pasv_min_port=30000

pasv_max_port=31000

userlist_enable=YES

userlist_file=/etc/vsftpd.user_list

userlist_deny=NO

ftp教程ubuntu ubuntu开启ftp

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

执行命令:sudo systemctl restart vsftpd

ftp教程ubuntu ubuntu开启ftp

5、打开防火墙

如果您正在运行UFW 防火墙,则 需要允许 FTP 流量。

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

sudo ufw allow 20:21/tcp

sudo ufw allow 30000:31000/tcp

ftp教程ubuntu ubuntu开启ftp

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

ftp教程ubuntu ubuntu开启ftp

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

sudo ufw disable

sudo ufw enable

ftp教程ubuntu ubuntu开启ftp

要验证更改运行:

sudo ufw status

ftp教程ubuntu ubuntu开启ftp

6、创建 FTP 用户

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

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

如果您allow_writeable_chroot=YES在配置文件中设置,请跳过第 3 步。

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

执行命令:sudo adduser newftpuser

ftp教程ubuntu ubuntu开启ftp

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

执行命令:echo "newftpuser" | sudo tee -a /etc/vsftpd.user_list

ftp教程ubuntu ubuntu开启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 newftpuser: /home/newftpuser/ftp

ftp教程ubuntu ubuntu开启ftp

如上一节所述,用户将能够将其文件上传到ftp/upload目录。

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

7、禁用外壳访问

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

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

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

执行命令1:echo -e '34;This account is limited to FTP access only."' | sudo tee -a /bin/ftponly

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

ftp教程ubuntu ubuntu开启ftp

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

执行命令:echo "/bin/ftponly" | sudo tee -a /etc/shells

ftp教程ubuntu ubuntu开启ftp

将用户外壳更改为/bin/ftponly:

执行命令:sudo usermod newftpuser -s /bin/ftponly

ftp教程ubuntu ubuntu开启ftp

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

8、结论

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

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

本文【ftp教程ubuntu ubuntu开启ftp】由作者: Web服务 提供,本站不拥有所有权,只提供储存服务,如有侵权,联系删除!
本文链接:https://www.cuoshuo.com/blog/4577.html

(0)
上一篇 2023-03-16 08:11:38
下一篇 2023-03-16 08:20:41

相关推荐

  • 世界标准时间与北京时间相差多少(世界标准时间是指哪里)

    “北京时间“与世界标准时相关知识 在我国人们耳熟能详的是“北京时间“。但你可能不知道“北京时间“并不是真正的北京当地时间。 一,北京时间的由来 由于我国幅员辽阔,从西到东横跨东五、东六、东七、东八和东九五个时区。新中国成立以后,全国统一采用首都北京以及中国大部分人口所在的东八时区作为标准时间,称为北京时间。 二,北京时间不是“北京当地时间” 北京时间是东经1…

    2023-03-15
    100
  • asp文件打开怎么是乱码

    相信我们在工作中,有时候,我们打开一份文件,会发现里面全是乱码。里面保存的重要信息都不能用了。既然发生了乱码,就要想着解决它,不然后续所有文件都乱码了,那就麻烦了。那要怎么解决呢?事实上,乱码文件有时并不那么难解决。只要找对原因,对症下药,就能修复好的。那么我们的文件乱码怎么恢复正常呢?下面小编就与大家分享一下解决之法。有需要的朋友可以参考一下。 文件乱码大…

    2023-03-15
    200
  • shell脚本实现四则运算_shell脚本能做哪些事

    写在前面 笔记是上课后整理的笔记,适合温习,不适合新手,希望对小伙伴有帮助 笔记内容包括:Shell一些常见情境 傍晚时分,你坐在屋檐下,看着天慢慢地黑下去,心里寂寞而凄凉,感到自己的生命被剥夺了。当时我是个年轻人,但我害怕这样生活下去,衰老下去。在我看来,这是比死亡更可怕的事。——–王小波 一、Shell 基础知识 1….

    2023-03-11
    400
  • 能ping通不能访问服务器_ping得通突然访问不了服务器

    概述 当您在客户端访问目标服务器时,如果能ping通,但业务端口无法访问,您可以参见以下方法进行排查。 步骤一:实例安全组检查 1. 登录ECS管理控制台,单击实例。 2. 在顶部菜单栏左上角处,选择地域。 3. 在实例列表页面,单击对应的实例ID。 4、在实例详情页面,单击安全组,在安全组列表区域,单击对应的安全组ID。 5. 在安全组规则页面,单击入方向…

    2023-03-22
    000
  • 服务器管理器添加角色和功能

    操作步骤 一、如何打开控制面板以及启用、关闭windows功能 1、通过打开运行界面输入“control”打开控制面板; 2、在程序和功能界面,找到启用或关闭Windows功能,点击该功能后会弹出windows功能窗口,具体添加看具体需求,以下添加Telnet客户端功能为例,如下图所示: 二、如何打开服务器管理器以及添加、删除角色功能 1、如何打开服务器管理…

    2023-03-14
    400
  • lcd1602程序编写与连接,lcd1602液晶显示屏原理图

    1.硬件原理 液晶屏的使用还是挺多的电子设备上用到的,最常见的就是电脑,手机,电视,还有小家电上。本次实验讲解用arduino来驱动1602液晶屏。1602液晶屏是一种字符型液晶,它的主控芯片是HD44780或者其它兼容芯片,可以显示数字,字母和符号,但是不能显示汉字,因为上面的点阵是5×7排列的,显示一个汉字至少需要8×6的点阵才可以显…

    2023-03-15
    200
  • java环境搭建及配置教程_为什么程序员鄙视php

    今天我们来搭建 Java 的基础开发环境,包括: Windows Terminal JDK IntelliJ IDEA HTTPie 其它工具,这里暂不安装,在今后的分享中随实战逐一安装。 Windows Terminal Windows Terminal 对标 Linux 的 Termial,是个很好用很高效的生产力工具,很喜欢它还支持窗口分割哦: Win…

    2023-03-11
    600
  • c语言程序设计实验报告

    最近在准备华为的校招,顺便整理了一下大学期间做过的项目。这是我在大二做的一个课程设计,基于C语言开发了一个简易五子棋程序。源代码均经过测试,步骤也非常详细,有需要的小伙伴们可以参考一下。 任务书首页 目录 课程设计目的及内容 二、算法总体设计 三、功能模块设计 四、程序运行结果测试与分析 心得体会 六、附录-源代码

    2023-03-17
    300
  • 公式编辑器空格打不出来

    在word文档编写是,可能会需要用到公式编辑器,在使用同时也会遇到一些小问题, 请点击此处输入图片描述 下面我整理了些问题与解答方案: 1、word 里空格怎么输入到公式编辑器中? 按快捷键ctrl+shift+space即可。 2、word 中公式大小全小一号? 首先,在Mathtype 中的菜单Size 中选define,定义所需的字号大小;再次,在Ma…

    2023-03-17
    200
  • mvc框架和ssm框架区别_mvc和ssm哪个简单

    最近有粉丝给我留言SSM框架三件套,很重要!自己必须要会,但是不知道该怎么做,所以今天小编给大家整理一个SSM框架的搭建与整合教程案列 在写代码之前我们先了解一下这三个框架分别是干什么的? SpringMVC:它用于web层,相当于controller(等价于传统的servlet和struts的action),用来处理用户请求。举个例子,用户在地址栏输入ht…

    2023-03-10
    500

发表回复

登录后才能评论
返回顶部
错说博客上线啦!