Linux 安装 vsFTP,支持SSL

1、安装vsftp
dnf install vsftpd

2、配置vsftp
vi /etc/vsftpd/vsftpd.conf

#端口
listen_port=60021

#不允许匿名登录
anonymous_enable=NO

#允许/etc/passwd内的本地用户登录FTP
local_enable=YES

#具有写权限
write_enable=YES

#本地用户创建文件或目录的掩码
local_umask=022

#开启日志
xferlog_enable=YES
xferlog_std_format=YES

#开启20端口
connect_from_port_20=YES

#这个是pam模块的名称,我们放置在/etc/pam.d/vsftpd
pam_service_name=vsftpd

userlist_enable=YES

#支持TCP Wrappers
tcp_wrappers=NO

#通过搭配能实现以下几种效果:
#①当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd.chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。
#②当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd.chroot_list文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录。
#③当chroot_list_enable=NO,chroot_local_user=YES时,所有的用户均不能切换到其他目录。
#④当chroot_list_enable=NO,chroot_local_user=NO时,所有的用户均可以切换到其他目录。
chroot_local_user=YES
chroot_list_enable=NO

#不添加下面这个会报错:500 OOPS: vsftpd: refusing to run with writable root inside chroot()
allow_writeable_chroot=YES

#启动被动式(passive mode)
pasv_enable=YES
#被动模式端口
pasv_min_port=60022
pasv_max_port=60025

#FTP访问目录
local_root=/data/ftp/

#SSL支持
ssl_enable=yes
ssl_tlsv1=yes
ssl_sslv2=NO
ssl_sslv3=NO
implicit_ssl=yes
require_ssl_reuse=NO
force_local_logins_ssl=yes
force_local_data_ssl=yes
rsa_cert_file=/etc/vsftpd/ssl/vsftpd.perm

3、创建SSL cert
mkdir /etc/vsftpd/ssl
cd /etc/vsftpd/ssl
openssl req -new -x509 -nodes -out vsftpd.perm -keyout vsftpd.perm

4、启动ftp服务
systemctl enable vsftpd
systemctl start vsftpd
systemctl status vsftpd

5、解决“530 Login incorrect”错误
vi /etc/pam.d/vsftpd
#auth required pam_shells.so

参考:
https://blog.csdn.net/mrliqifeng/article/details/120185671
https://blog.51cto.com/u_9652359/4985684