【安装教程】统信UOS1070上使用vsftpd服务上传下载文件

原文链接:【安装教程】统信UOS1070上使用vsftpd服务上传下载文件
Hello,大家好啊!今天带来一篇关于在统信UOS 1070上使用vsftpd服务实现加密文件上传和下载的文章。默认的FTP传输是不加密的,但在数据传输时,安全性尤为重要。使用vsftpd服务,我们可以通过启用SSL/TLS加密,实现安全的文件传输,保护数据的隐私性和完整性。

本文将详细介绍在统信UOS上配置vsftpd以实现加密文件传输的方法,帮助大家更安全地管理文件。欢迎大家分享转发,点个关注和在看吧!

什么是vsftpd?

vsftpd (Very Secure FTP Daemon)是一款专为Linux系统设计的FTP服务器软件,具有良好的安全性、速度和稳定性。启用SSL/TLS加密后,vsftpd可以实现加密文件传输,确保数据安全。它在众多Linux发行版上都有广泛的应用。

1.查看系统信息

pdsyw@pdsyw-PC:~/Desktop$ cat /etc/os-version 
pdsyw@pdsyw-PC:~/Desktop$ uname -a

此命令显示系统的内核版本、主机名和硬件信息,有助于确认当前系统的环境。

2.更新系统源

pdsyw@pdsyw-PC:~/Desktop$ sudo apt update 

此命令更新系统的包列表,确保我们下载的程序是最新版本。

3.安装vsftpd

pdsyw@pdsyw-PC:~/Desktop$ sudo apt install vsftpd -y

安装 FTP 服务器 vsftpd,以便允许文件上传和下载。

4.编辑vsftpd配置文件

pdsyw@pdsyw-PC:~/Desktop$ sudo vim /etc/vsftpd.conf 
pdsyw@pdsyw-PC:~/Desktop$ grep -v "^#" /etc/vsftpd.conf 
listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
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/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NOutf8_filesystem=YES
allow_writeable_chroot=YES
pdsyw@pdsyw-PC:~/Desktop$ 

修改 vsftpd 的配置文件,调整一些参数来配置 FTP 服务器的行为。
参数的解释:

  • **listen=YES**
    让 vsftpd 使用 IPv4 监听,启用后,服务器将在 IPv4 地址上侦听 FTP 请求。
  • **listen_ipv6=NO**
    禁用 IPv6 监听。设为 NO 表示不使用 IPv6 地址监听 FTP 请求。
  • **anonymous_enable=NO**
    禁用匿名登录。设为 NO 表示不允许未授权的匿名用户访问 FTP 服务器,增强了安全性。
  • **local_enable=YES**
    启用本地用户登录。允许服务器上已有系统用户使用自己的账户登录 FTP 服务器。
  • **write_enable=YES**
    允许写操作。设为 YES 后,登录用户可以在 FTP 服务器上执行写操作(例如,上传文件、删除文件等)。
  • **local_umask=022**
    设置本地用户创建文件和目录时的权限掩码。022 表示新创建的文件权限为 755(目录)或 644(文件),即拥有者有读写权限,其他用户只有读权限。
  • **dirmessage_enable=YES**
    启用目录消息功能。当用户切换到某个目录时,显示该目录的消息文件内容。
  • **use_localtime=YES**
    使用本地时间。启用后,服务器日志和文件时间戳会使用本地时区的时间。
  • **xferlog_enable=YES**
    启用文件传输日志记录。所有传输操作(上传、下载)都会记录在日志文件中。
  • **connect_from_port_20=YES**
    启用主动模式下的端口 20 传输。使用 FTP 协议中的端口 20 进行数据传输。
  • **chroot_local_user=YES**
    限制本地用户的文件访问权限至其家目录,防止用户访问其他系统文件,增强了安全性。
  • **secure_chroot_dir=/var/run/vsftpd/empty**
    指定一个用于隔离的空目录,vsftpd 以此目录为 chroot 环境,以进一步提高安全性。
  • **pam_service_name=vsftpd**
    指定使用的 PAM(可插入身份验证模块)服务名称。这里指定为 vsftpd,以便系统用 PAM 验证 FTP 用户。
  • **rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem**
    指定 RSA 证书文件路径,用于 SSL/TLS 加密通信。这是系统自动生成的“snakeoil”自签名证书文件。
  • **rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key**
    指定 RSA 私钥文件路径,用于 SSL/TLS 加密通信。
  • **ssl_enable=NO**
    禁用 SSL 加密。设为 NO 表示当前不使用 SSL 加密。设置为 YES 时可启用加密传输。
  • **utf8_filesystem=YES**
    启用 UTF-8 文件系统编码,确保支持多语言字符,避免文件名乱码。
  • **allow_writeable_chroot=YES**
    允许具有写权限的用户在 chroot 环境下工作。

5.重启vsftpd服务

pdsyw@pdsyw-PC:~/Desktop$ sudo systemctl restart vsftpd.service --now
pdsyw@pdsyw-PC:~/Desktop$ sudo systemctl status vsftpd.service

重新启动 vsftpd 以使配置生效。可以使用 status 检查服务是否正常运行。

6.查看IP

pdsyw@pdsyw-PC:~/Desktop$ ip a

显示系统的 IP 地址,便于在 FTP 客户端中进行连接配置。

7.安装FTP客户端

8.打开FTP客户端

9.连接

10.设置是否记住密码

11.提示不安全的FTP连接

12.连接成功

13.上传文件测试

14.上传成功

15.查看上传的文件

16.下载文件测试

17.下载成功

18.生成自签名证书

pdsyw@pdsyw-PC:~/Desktop$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
  • **sudo**:以超级用户身份执行命令,因为生成的证书和密钥文件将保存到系统受限的目录 /etc/ssl/private/
  • **openssl**:调用 OpenSSL 工具,用于生成密钥和证书。
  • **req**:表示生成证书请求,包含证书签名和用户信息。
  • **-x509**:生成自签名证书而不是仅生成证书请求。自签名证书即由自己签发,无需外部的证书颁发机构 (CA)。
  • **-nodes**:生成的密钥不进行加密(即不使用密码保护),这样 vsftpd 在启动时无需手动输入密码。
  • **-days 365**:设置证书的有效期为 365 天。
  • **-newkey rsa:2048**:创建一个新的 RSA 密钥,密钥长度为 2048 位,以保证加密强度。
  • **-keyout /etc/ssl/private/vsftpd.pem**:指定生成的私钥文件的保存路径和文件名,这里是 /etc/ssl/private/vsftpd.pem
  • **-out /etc/ssl/private/vsftpd.pem**:指定生成的自签名证书文件的保存路径和文件名,这里与私钥文件相同。

19.编辑vsftpd配置文件

pdsyw@pdsyw-PC:~/Desktop$ sudo vim /etc/vsftpd.conf 
pdsyw@pdsyw-PC:~/Desktop$ 
pdsyw@pdsyw-PC:~/Desktop$ grep -v "^#" /etc/vsftpd.conf 
listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
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/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NOutf8_filesystem=YES
allow_writeable_chroot=YESssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
  • **ssl_enable=YES**
    启用 SSL/TLS 加密,确保数据传输安全。
  • **allow_anon_ssl=NO**
    禁止匿名用户使用 SSL 加密,仅允许已授权用户加密连接。
  • **force_local_data_ssl=YES**
    强制本地用户使用 SSL 加密传输数据,防止明文数据泄露。
  • **force_local_logins_ssl=YES**
    强制本地用户登录时使用 SSL 加密,保护登录凭据。
  • **ssl_tlsv1=YES**
    启用 TLSv1 协议用于加密连接。
  • **ssl_sslv2=NO**** 和 ****ssl_sslv3=NO**
    禁用 SSLv2 和 SSLv3 协议,这些协议被认为不安全。
  • **rsa_cert_file=/etc/ssl/private/vsftpd.pem**
    指定新生成的自签名证书文件路径。
  • **rsa_private_key_file=/etc/ssl/private/vsftpd.pem**
    指定与证书匹配的私钥文件路径,确保安全连接。

20.重启vsftpd服务

pdsyw@pdsyw-PC:~/Desktop$ sudo systemctl restart vsftpd.service 
pdsyw@pdsyw-PC:~/Desktop$ sudo systemctl status vsftpd.service 

21.连接FTP

22.信任证书

23.TLS连接已建立

24.上传文件测试

25.上传成功

26.下载文件测试

27.下载成功

常见问题及解决方法

  1. 连接失败,提示“证书错误”?

这是因为使用的是自签名证书。您可以在FTP客户端中选择信任该证书,或者使用由受信任机构签发的证书替换自签名证书。

  1. 传输过程中断或失败?

检查是否正确设置了强制加密(force_local_data_ssl=YES和force_local_logins_ssl=YES),并确保使用了支持FTPS的客户端。

  1. 无法上传文件,提示“无权限”?

确保FTP用户具有上传文件的权限。可以通过以下命令检查并修改权限:

sudo chmod -R 755 /指定目录

通过本文的介绍,大家应该已经掌握了如何在统信UOS 1070系统上配置vsftpd并启用SSL/TLS加密,以实现安全的文件上传和下载。这种加密方式能够有效保护数据在传输过程中的安全性,特别适合需要高安全性的应用场景。如果您觉得这篇文章对您有帮助,别忘了分享、转发,并记得点个关注和在看!感谢大家的阅读,期待您的反馈和交流!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/59563.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux之实战命令70:chcon应用实例(一百零四)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【…

99.9%高质量Tick数据复盘回测ea必备工具:Tick Data Suite 使用教程

Tick Data Suite 是一款高质量的99.9% Tick 数据回测工具,功能强大,适用于进行EA回测。它具有以下主要优势:Tick 数据占用硬盘空间较小,可模拟滑点和实盘延时,还能设置持仓过夜费和交易手续费。Tick 数据来源多样&…

算法练习:1004. 最大连续1的个数 III

题目链接:1004. 最大连续1的个数 III。 题目要求,给定一个数组,这个数组里面只有0或1,然后计算有多少个连续的1的最大长度,同时给了一个条件就是,可以把k个0变成1,然后来计算长度。 暴力解法&a…

Unity网络开发基础(part5.网络协议)

目录 前言 网络协议概述 OSI模型 OSI模型的规则 第一部分 物理层 数据链路层 网络层 传输层 第二部分 ​编辑 应用层 表示层 会话层 每层的职能 TCP/IP协议 TCP/IP协议的规则 TCP/IP协议每层的职能 TCP/IP协议中的重要协议 TCP协议 三次握手 四次挥手 U…

SQL,力扣题目1767,寻找没有被执行的任务对【递归】

一、力扣链接 LeetCode_1767 二、题目描述 表:Tasks ------------------------- | Column Name | Type | ------------------------- | task_id | int | | subtasks_count | int | ------------------------- task_id 具有唯一值的列。 ta…

JavasScript 的对象事件的处理程序

1、鼠标事件 常用的鼠标事件有MouseDown、MouseUp、MouseMove、MouseOver、MouseOut、Click、Blur及Focus等事件。 mousedown:按下鼠标键时触发 mouseup:抬起鼠标键时触发 click:单击鼠标时触发 dblclick:在同一个元素上双击鼠标…

华为云安装docker

docker_docker-compose_install: 代替官网的一键安装脚本&#xff0c;使用docker包进行离线安装 bash <(curl -sL https://raw.githubusercontent.com/1scripts/docker_docker-compose_install/main/quick_install.sh) 华为镜像&#xff1a; https://console.huaweicloud.…

如何实用穿山甲APP搭建你的广告联盟?

在当下蓬勃兴盛的移动互联网范畴&#xff0c;广告联盟穿山甲无疑堪称一个具备深远影响力的关键平台。它系由在科技领域声名远扬的字节跳动悉心打造并予以推出&#xff0c;其创建的初衷便是矢志为众多的开发者和广告主精心构筑一个高效能、精准化且极具价值的广告投放与变现服务…

【Python实战案例】爬虫项目实例(附赠源码)

文章目录 声明安装必要的库项目结构技术细节小结 声明 请您遵守网站的robots文件规定&#xff0c;本文目的只是做学习交流使用&#xff0c;包括多个模块&#xff0c;例如数据存储、日志记录、错误处理、多线程或异步请求 安装必要的库 pip install requests beautifulsoup4 sq…

PL/SQL developer debug 方法及存储过程等

文章目录 打开 PL/SQL&#xff0c;找到 fun右键 fun&#xff0c;选择【添加调试信息(U)】右键 fun&#xff0c;选择【查看(O)】在 fun 中需要调试的位置打上断点右键 fun&#xff0c;选择【测试(X)】点击执行再点击执行进入断点 执行结果 打开 PL/SQL&#xff0c;找到 fun 右键…

利用 Avalonia UI 构建 Blazor 混合应用程序

Blazor 是一个 .NET 前端框架&#xff0c;用于仅使用 .NET 技术构建 Web 应用程序。2021 年&#xff0c;Blazor 扩展到桌面端&#xff0c;推出了 Blazor Hybrid&#xff08;混合&#xff09;&#xff0c;使开发者可以在桌面平台上使用已有的技能。 Blazor 混合应用程序是传统的…

ELK-ELK基本概念_ElasticSearch的配置

文章目录 一、什么是ELK&#xff1f;有什么用&#xff1f;ELK是什么&#xff1f;ElasticsearchLogstashKibana ELK的作用 二、ElasticSearch的安装与基本配置为何需要依赖JDK&#xff1f;使用yum install java-11-openjdk和使用Oracle官网提供的jdk的rpm包安装JDK的区别 参考资…

怎么查看navicat的数据库密码

步骤1:打开navicat连接数据库工具&#xff0c;顶部的文件栏-导出结果-勾选导出密码-导出 步骤2&#xff1a;导出结果使用NotePad或文本打开&#xff0c;找到&#xff0c;数据库对应的的Password"995E66F64A15F6776“”的值复制下来 <Connection ConnectionName"…

linux驱动-i2c子系统框架学习(1)

可以将整个 I2C 子系统用下面的框图来描述&#xff1a; 可以将上面这一 I2C 子系统划分为三个层次&#xff0c;分别为用户空间、内核空间和硬件层&#xff0c;内核空间就包括 I2C 设备驱动层、I2C 核心层和 I2C 适配器驱动层&#xff0c; 本篇主要内容就是介绍 I2C 子系统框架中…

基于SSM的企业管理系统(源码+lw+调试+技术指导)

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

【金融风控】相关业务介绍及代码详解

金融风控相关业务介绍 【了解】项目整体介绍 1.风控业务和风控报表</span> 零售金融产品 相关的指标 风控建模流程 ​ #2.特征工程 特征构造 特征筛选 ​ 3.评分卡模型构建 逻辑回归 集成学习 XGBoost LightGBM 模型评估 ​ #4.样本不均衡问题/异常点检测 【了解】今日…

Late Chunking×Milvus:如何提高RAG准确率

01. 背景 在RAG应用开发中&#xff0c;第一步就是对于文档进行chunking&#xff08;分块&#xff09;&#xff0c;高效的文档分块&#xff0c;可以有效的提高后续的召回内容的准确性。而对于如何高效的分块是个讨论的热点&#xff0c;有诸如固定大小分块&#xff0c;随机大小分…

蓝桥杯备赛(持续更新)

16届蓝桥杯算法类知识图谱.pdf 1. 格式打印 %03d&#xff1a;如果是两位数&#xff0c;将会在前面添上一位0 %.2f&#xff1a;会保留两位小数 如果是long&#xff0c;必须在数字后面加上L。 2. 进制转化 2.1. 十进制转任意进制&#xff1a; 十进制转任意进制时&#xff…

责任链模式 Chain of Responsibility

1 意图 使多个对象都有机会处理请求&#xff0c;从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链&#xff0c;并沿着这条链传递该请求&#xff0c;直到有一个对象处理它为止。 2 结构 Handler 定义一个处理请求的接口;(可选)实现后继链。 ConcreteHandler …

SQL Server 2008 R2 详细安装教程及错误解决教程

SQL Server 2008 R2 详细安装教程及错误解决教程 文章目录 SQL Server 2008 R2 详细安装教程及错误解决教程1.装载或解压ISO文件2. 运行setup程序3. 下载并安装.NET Framework3.54.选择全新安装或向现有安装添加功能5.输入秘钥同意条款6.选择安装类型7.设置角色8.功能选择9.实例…