CentOS Stream 9 安装vsftpd
更新dnf:
dnf update
安装服务vsftpd:
dnf install vsftpd
启动vsftpd服务:
systemctl enable vsftpd --now
查询vsftpd服务状态:
CentOS Stream 9配置 FTP 服务器
创建可访问FTP用户:
用户名:ftpuser
useradd -m -d "/home/ftpuser" ftpuser
更改密码:
passwd ftpuser
设置权限:
mkdir -p /home/ftpuser/shared
chmod -R 750 /home/ftpuser/shared
chown ftpuser: /home/ftpuser/shared
将该用户添加到允许使用 FTP 服务器的用户列表中:
vi /etc/vsftpd/user_list
快速保存方法:按完Esc后,按住Shift z z(按两下z) == :wq
配置vsftpd文件:
vi /etc/vsftpd/vsftpd.conf
修改内容:
首先,禁用匿名访问,只允许本地用户访问:
anonymous_enable = NO
local_enable = YES
将连接并将其限制在主目录中的用户设置写入权限:
write_enable = YES
chroot_local_user = YES
建议用户对其主目录具有写入权限:
allow_writeable_chroot=YES
还要设置被动 FTP 连接的端口。
pasv_min_port=31500
pasv_max_port=32500
仅允许文件中声明的用户访问:
userlist_file=/etc/vsftpd/user_list
userlist_deny=NO
重新启动vsftpd服务:
systemctl restart vsftpd
在防火墙开启状态下通过以下端口,重启服务:
firewall-cmd --permanent --add-port=20-21/tcp
firewall-cmd --permanent --add-port=31500-32500/tcp
sudo firewall-cmd --reload
如果内网使用 FTP 服务器,设置可以完成了。但如果出现在互联网上,那么我们就必须采取预防措施。
创建 SSL 证书,以便对整个过程进行加密。要创建您自己的,您可以运行此命令。
openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/vsftpd.pem -out /etc/vsftpd/vsftpd.pem
Country Name (2 letter code) [XX]: //国家名称(2个字母代码)[XX]:
State or Province Name (full name) []: //州或省名称(全称)[]:
Locality Name (eg, city) [Default City]: //地区名称(如城市)[默认城市]:
Organization Name (eg, company) [Default Company Ltd]: //组织名称(如公司)[默认公司有限公司]:
Organizational Unit Name (eg, section) []: //组织单位名称(如分部)[]:
Common Name (eg, your name or your server's hostname) []:
//通用名称(例如,你的名字或你的服务器主机名)[]:
Email Address []: //邮件地址
再次打开 vsftpd 配置文件:
vi /etc/vsftpd/vsftpd.conf
文件末尾添加以下3行:
rsa_cert_file=/etc/vsftpd/vsftpd.pem
rsa_private_key_file=/etc/vsftpd.pem
ssl_enable=YES
退出编辑器,重启vsftpd服务:
systemctl restart vsftpd
测试
使用软件WinSCP:
加密(E):TLS/SSL显示加密
使用软件MobaXterm:
勾选FTPS mode