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

安装vsftpd服务

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

bash 复制代码
yum -y install vsftpd

启动vsftpd、查看服务状态

bash 复制代码
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服务

bash 复制代码
systemctl restart vsftpd

配置防火墙列外

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

bash 复制代码
firewall-cmd --add-port 21/tcp --permanent
firewall-cmd --add-port 30000-30999/tcp --permanent
firewall-cmd --reload

开启SELinux的ftpd_full_access布尔值为on

bash 复制代码
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

相关推荐
zhangfeng113336 分钟前
多台服务器同时训练llamfactory 大语言模型 国家超算中心 Slurm 是目前全球最主流的开源、高性能计算(HPC)集群资源管理与作业调度系统
服务器·语言模型·开源
不会写DN2 小时前
其实跨域问题是后端来解决的? CORS
服务器·网络·面试·go
JZC_xiaozhong7 小时前
数据不互通、审批慢?企业多系统智能协同与流程自动化解决方案
运维·自动化·流程管理·流程自动化·数据集成与应用集成·流程监控·流程可视化设计
爱学习的小囧7 小时前
ESXi 8.0 原生支持 NVMe 固态硬盘吗?VMD 配置详解教程
linux·运维·服务器·esxi·esxi8.0
坚持就完事了7 小时前
Linux中的变量
linux·运维·服务器
hERS EOUS7 小时前
nginx 代理 redis
运维·redis·nginx
Cat_Rocky8 小时前
利用Packet Tracer网络实验
linux·运维·服务器
嵌入式×边缘AI:打怪升级日志8 小时前
Linux 驱动实战:SR501 人体红外传感器驱动开发与调试全记录
linux·运维·驱动开发
正点原子8 小时前
【正点原子Linux连载】第三章 U-Boot使用 摘自【正点原子】ATK-DLRK3568嵌入式Linux驱动开发指南
linux·运维·驱动开发
忍冬行者9 小时前
MongoDB 三节点副本集离线部署运维手册
运维·数据库·mongodb