使用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
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/83753.shtml
英文地址,請注明出處:http://en.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請求流程(自己理…