当前位置: 首页 > news >正文

使用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

相关文章:

  • 基于端到端深度学习模型的语音控制人机交互系统
  • Tailwind CSS 实战:基于 Kooboo 构建 AI 对话框页面(八):异步处理逻辑详解
  • 计算机视觉与深度学习 | 基于MATLAB的相机标定
  • 【递归、搜索与回溯】综合练习(四)
  • 每次clone都会有:Enter passphrase for key ‘/Users/xxx/.ssh/id_rsa‘:
  • 如何使用k8s安装redis呢
  • Amazon Bedrock 助力 SolveX.AI 构建智能解题 Agent,打造头部教育科技应用
  • 【Dify 知识库 API】“根据文本更新文档” 真的是差异更新吗?一文讲透真实机制!
  • 校招 java 面试基础题目及解析
  • docker数据管理
  • 设置vue-quill-editor编辑器不可编辑
  • 6.6本日总结
  • 智能手表健康监测系统的PSRAM存储芯片CSS6404LS-LI—高带宽、耐高温、微尺寸的三重突破
  • 升级脚本说明
  • 防爆型断链保护器的应用场景有哪些?
  • Dynamics 365 Business Central Direct Banking Extention D365 BC ERP 银行接口扩展
  • 使用 Mechanical 脚本获取联合反作用力和力矩
  • 第3章——SSM整合
  • 学习设计模式《十二》——命令模式
  • LeetCode 热题 100 34. 在排序数组中查找元素的第一个和最后一个位置
  • 3dweb网站开发/重庆seo排名方法
  • 个人网站怎么建立流程/营销模式和营销策略
  • 做网站使用什么软件的/最新地址
  • 专业格泰建站/搜索引擎优化的流程
  • 软件园二期做网站的公司有哪些/中国国家培训网官网入口
  • 天津卓荣建设集团网站/googleplay