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

相关推荐
linmengmeng_131432 分钟前
【Jenkins】Jenkins配置从节点 - Launch Agent
运维·servlet·jenkins
人工智能训练1 小时前
如何在 Ubuntu 22.04 中安装 Docker 引擎和 Linux 版 Docker Desktop 桌面软件
linux·运维·服务器·数据库·ubuntu·docker·ai编程
Maple_land1 小时前
Linux复习:系统调用与fork
linux·运维·服务器·c++·centos
996终结者1 小时前
Docker核心用途实战:彻底解决环境一致性问题
运维·docker·容器
无聊的小坏坏2 小时前
Poll 服务器实战教学:从 Select 迁移到更高效的多路复用
linux·服务器·poll·io多路复用
小晶晶京京2 小时前
day61-devops
运维·devops
阿桂有点桂2 小时前
Docker搭建Ngnix、php5.6、php8、postgresql、redis
运维·服务器·docker·容器
snakecy2 小时前
Docker打包步骤
运维·docker·容器
妮妮喔妮2 小时前
root@lll:/data# sudo docker compose up -d 输入这个命令 控制台一直没有任何的反应 我需要如何排查呢?
运维·docker·容器·wsl docker
java资料站2 小时前
Docker 部署onlyoffice
运维·docker·容器