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

相关推荐
搬码临时工1 小时前
电脑同时连接内网和外网的方法,附外网连接局域网的操作设置
运维·服务器·网络
藥瓿亭1 小时前
K8S认证|CKS题库+答案| 3. 默认网络策略
运维·ubuntu·docker·云原生·容器·kubernetes·cks
Gaoithe1 小时前
ubuntu 端口复用
linux·运维·ubuntu
程序猿小D2 小时前
第16节 Node.js 文件系统
linux·服务器·前端·node.js·编辑器·vim
gsls2008083 小时前
ocrapi服务docker镜像使用
运维·docker·容器
文牧之3 小时前
PostgreSQL 的扩展pg_freespacemap
运维·数据库·postgresql
AWS官方合作商3 小时前
基于AWS Serverless架构:零运维构建自动化SEO内容生成系统
运维·serverless·aws
whp4044 小时前
windows server2019 不成功的部署docker经历
运维·docker·容器
IT界小黑的对象5 小时前
virtualBox部署ubuntu22.04虚拟机 NAT+host only 宿主机ping不通虚拟机
linux·运维·服务器
weixin_527550405 小时前
Linux 环境下高效视频切帧的实用指南
linux·运维·音视频