使用vsftpd搭建FTP服务器(TLS/SSL显式加密)

安装vsftpd服务

使用vsftpd RPM安装包安装即可,如果可以访问YUM镜像源,通过dnf或者yum工具更加方便。

yum -y install vsftpd

启动vsftpd、查看服务状态

systemctl enable vsftpd
systemctl start vsftpd
systemctl status vsftpd

备份配置文件并进行配置

cp /etc/vsftpd/vsftpd.conf{,_bak} 

~]# grep -E -v '^#|^$' /etc/vsftpd/vsftpd.conf 

-- 默认放开的配置
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES

-- 启用 chroot,限制本地用户到其主目录,不配置allow_writeable_chroot,会报OOP:chroot()失败错误。

chroot_local_user=YES
allow_writeable_chroot=YES

-- 可配可不配,用于放开哪些用户可以不用chroot
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

-- 配置启用TLS/SSL显式加密

# 启用 SSL 功能
ssl_enable=YES  
force_local_logins_ssl=YES

# 指定服务器的 RSA 证书文件
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem

# 允许使用 SSL/TLS 协议的最低版本(可选,根据需要设置)
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=YES

# 指定允许的加密套件(可选,根据需要设置)
ssl_ciphers=HIGH

# 指定显式加密场景下,动态数据连接监听端口范围(默认范围比较大)。

注:这里只需要配置范围,不需要开启被动模式(无需配置:pasv_enable=Yes
pasv_min_port=30000
pasv_max_port=30999

重启vsftpd服务

systemctl restart vsftpd

配置防火墙列外

如果不将动态数据连接监听端口范围放开访问会一直卡在获取目录列表上(vsftpd 读取目录列表失败)。

firewall-cmd --add-port 21/tcp --permanent
firewall-cmd --add-port 30000-30999/tcp --permanent
firewall-cmd --reload

开启SELinux的ftpd_full_access布尔值为on

setsebool -P ftpd_full_access on

或者干脆关掉SELinux。
setenforce 0

原因:

  • 本地用户访问家目录:当需要让本地用户能够通过FTP访问其家目录时,仅在vsftpd配置文件中将local_enable设置为YES可能还不够。因为SELinux默认会限制这种访问,导致用户无法正常登录或访问家目录中的文件。启用ftpd_full_access后,SELinux将允许FTP进程访问用户的家目录,从而使用户能够正常进行文件传输等操作。

使用WinSCP访问

如果想使用命令行访问呢?这个就比较复杂了,我会另开一篇进行总结说明。

命令行以TLS/SSL显式加密方式访问FTP服务器https://blog.csdn.net/avatar_2009/article/details/148481334

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

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

相关文章

鸿蒙OSUniApp集成WebGL:打造跨平台3D视觉盛宴#三方框架 #Uniapp

UniApp集成WebGL:打造跨平台3D视觉盛宴 在移动应用开发日新月异的今天,3D视觉效果已经成为提升用户体验的重要手段。本文将深入探讨如何在UniApp中集成WebGL技术,实现炫酷的3D特效,并特别关注鸿蒙系统(HarmonyOS)的适配与优化。 …

前端文件下载常用方式详解

在前端开发中,实现文件下载是常见的需求。根据不同的场景,我们可以选择不同的方法来实现文件流的下载。本文介绍三种常用的文件下载方式: 使用 axios 发送 JSON 请求下载文件流使用 axios 发送 FormData 请求下载文件流使用原生 form 表单提…

MacOS解决局域网“没有到达主机的路由 no route to host“

可能原因:MacOS 15新增了"本地网络"访问权限,在 APP 第一次尝试访问本地网络的时候会请求权限,可能顺手选择了关闭。 解决办法:给想要访问本地网络的 APP (例如 terminal、Navicat、Ftp)添加访问…

中英文实习证明模板:一键生成标准化实习证明,助力实习生职场发展

中英文实习证明模板:一键生成标准化实习证明,助力实习生职场发展 【下载地址】中英文实习证明模板 这份中英文实习证明模板专为实习生设计,内容简洁专业,适用于多种场景。模板采用中英文对照格式,方便国际交流与使用。…

RocketMQ运行架构和消息模型

运⾏架构 nameServer 命名服务 NameServer 是 RocketMQ 的 轻量级注册中心,负责管理集群的路由信息(Broker 地址、Topic 队列分布等),其核心作用是解耦 Broker 与客户端,实现动态服务发现。broker 核⼼服务 RocketMQ最…

C++学习-入门到精通【11】输入/输出流的深入剖析

C学习-入门到精通【11】输入/输出流的深入剖析 目录 C学习-入门到精通【11】输入/输出流的深入剖析一、流1.传统流和标准流2.iostream库的头文件3.输入/输出流的类的对象 二、输出流1.char* 变量的输出2.使用成员函数put进行字符输出 三、输入流1.get和getline成员函数2.istrea…

OpenCV 图像像素的逻辑操作

一、知识点 1、图像像素的逻辑操作,指的是位操作bitwise,与、或、非、异或等。 2、位操作简介: 位1 位2 与and 或or 异或xor0 0 0 0 00 1 0 1 11 0 0 …

【AAOS】【源码分析】用户管理(二)-- 整体架构

整体介绍 Android多用户功能作为 Android Automotive 的重要组成部分,为不同驾驶员和乘客提供了一个更加定制化、隐私保护的使用环境。Android 多用户的存在,它可以让多个用户使用同一台设备,同时保持彼此的数据、应用和设置分隔开来。 各用户类型的权限 能力SystemAdminS…

Redis最佳实践——电商应用的性能监控与告警体系设计详解

Redis 在电商应用的性能监控与告警体系设计 一、原子级监控指标深度拆解 1. 内存维度监控 核心指标: # 实时内存组成分析(单位字节) used_memory: 物理内存总量 used_memory_dataset: 数据集占用量 used_memory_overhead: 管理开销内存 us…

多模态大语言模型arxiv论文略读(109)

Math-PUMA: Progressive Upward Multimodal Alignment to Enhance Mathematical Reasoning ➡️ 论文标题:Math-PUMA: Progressive Upward Multimodal Alignment to Enhance Mathematical Reasoning ➡️ 论文作者:Wenwen Zhuang, Xin Huang, Xiantao Z…

web3-以太坊智能合约基础(理解智能合约Solidity)

以太坊智能合约基础(理解智能合约/Solidity) 无需编程经验,也可以帮助你了解Solidity独特的部分;如果本身就有相应的编程经验如java,python等那么学起来也会非常的轻松 一、Solidity和EVM字节码 实际上以太坊链上储存…

D2-基于本地Ollama模型的多轮问答系统

本程序是一个基于 Gradio 和 Ollama API 构建的支持多轮对话的写作助手。相较于上一版本,本版本新增了对话历史记录、Token 计数、参数调节和清空对话功能,显著提升了用户体验和交互灵活性。 程序通过抽象基类 LLMAgent 实现模块化设计,当前…

传统业务对接AI-AI编程框架-Rasa的业务应用实战(2)--选定Python环境 安装rasa并初始化工程

此篇接续上一篇 传统业务对接AI-AI编程框架-Rasa的业务应用实战(1)--项目背景即学习初衷 1、Python 环境版本的选择 我主机上默认的Python环境是3.12.3 (我喜欢保持使用最新版本的工具或框架,当初装python时最新的稳定版本就是…

Ubuntu22.04安装MinkowskiEngine

MinkowskiEngine简介 Minkowski引擎是一个用于稀疏张量的自动微分库。它支持所有标准神经网络层,例如对稀疏张量的卷积、池化和广播操作。 MinkowskiEngine安装 官方源码链接:GitHub - NVIDIA/MinkowskiEngine: Minkowski Engine is an auto-diff neu…

高等数学基础(矩阵基本操作转置和逆矩阵)

矩阵是否相等 若 A A A和 B B B为同型矩阵且对应位置的各个元素相同, 则称矩阵 A A A和 B B B相等 在Numpy中, 可以根据np.allclose()来判断 import numpy as npA np.random.rand(4, 4) # 生成一个随机 n x n 矩阵B A A.Tprint("矩阵是否相等:", np…

网络爬虫一课一得

网页爬虫(Web Crawler)是一种自动化程序,通过模拟人类浏览行为,从互联网上抓取、解析和存储网页数据。其核心作用是高效获取并结构化网络信息,为后续分析和应用提供数据基础。以下是其详细作用和用途方向: …

MATLAB实现井字棋

一、智能决策系统与博弈游戏概述 (一)智能决策系统核心概念 智能决策系统(Intelligent Decision System, IDS)是通过数据驱动和算法模型模拟人类决策过程的计算机系统,核心目标是在复杂环境中自动生成最优策略&#…

解决el-select选择框右侧下拉箭头遮挡文字问题

如图所示&#xff1a; el-select长度较短的时候&#xff0c;选择框右侧下拉箭头会遮挡选中的数据 选中数据被遮挡 解决办法&#xff1a; 组件如下&#xff1a; <td class"fmtd" :colspan"col.ptproCupNum" v-for"col in row" :key"…

【Linux】pthread多线程同步

参考文章&#xff1a;https://blog.csdn.net/Alkaid2000/article/details/128121066 一、线程同步 线程的主要优势在于&#xff0c;能够通过全局变量来共享信息。不过&#xff0c;这种便携的共享是有代价的&#xff1b;必须确保多个线程不会同时修改同一变量&#xff0c;或者某…

Spring框架学习day7--SpringWeb学习(概念与搭建配置)

SpringWeb1.SpringWeb特点2.SpringWeb运行流程3.SpringWeb组件4.搭建项目结构图&#xff1a;4.1导入jar包4.2在Web.xml配置**4.2.1配置统一拦截分发器 DispatcherServlet**4.2.2开启SpringWeb注解&#xff08;spring.xml&#xff09; 5.处理类的搭建6.SpringWeb请求流程(自己理…