CentOS7安装vsftpd

2023-10-16 16:32:31 浏览数 (2)

很多时候我们需要把服务器的文件下载下来备份(比如云服务器迁移或者到期后,不续租),使用scp效率很低,而且容易断开,使用ftp是最好的方法。本文介绍vsftpd常用的安装方式和配置

快速部署(匿名用户)

  • 卸载老版本
代码语言:javascript复制
## 查找已经安装的vsftpd
rpm -aq vsftpd
## 卸载查找到的vsfpd
yum remove -y vsftpd-3.0.2-21.el7.x86_64
  • 安装
代码语言:javascript复制
## 安装
yum install -y vsftpd
  • 防火墙开放21端口
代码语言:javascript复制
iptables -I INPUT -p tcp --dport 21 -j ACCEPT
  • 启动
代码语言:javascript复制
systemctl start vsftpd
  • 连接测试(匿名用户) 安装后,默认可以使用匿名用户登录,ftp的根目录在/var/ftp
代码语言:javascript复制
[root@dev01 vsftpd]# lftp localhost
lftp localhost:~> ls
drwxr-xr-x    2 0        0               6 Jun 09  2021 pub

目前实现了匿名用户登录以及文件下载,但是存在两个问题

  • 匿名用户安全性很差
  • ftp的默认目录/var/ftp可能并不是想要的目录

配置普通用户

  • 设置权限: /etc/vsftpd/vsftpd.conf
代码语言:javascript复制
## 禁用匿名用户
anonymous_enable=NO
## 允许本地用户
local_enable=YES
## 允许本地用户上传
write_enable=YES
## 限制只能访问用户主目录
chroot_local_user=YES
## 允许用户对主目录有写权限
allow_writeable_chroot=YES
  • 设置用户列表: /etc/vsftpd/vsftpd.conf
代码语言:javascript复制
## 用户列表
userlist_enable=YES
## 用户列表文件,每一行是一个用户名称
userlist_file=/etc/vsftpd/user_list
## 用户默认行为是允许还是拒绝,NO表示默认拒绝,只有userlist_file才可以访问;YES表示允许,userlist_file不可以访问
userlist_deny=NO
  • 设置用户列表: /etc/vsftpd/user_list
代码语言:javascript复制
# {username}是你的系统的真实用户名
echo {username} > /etc/vsftpd/user_list
echo {username2} >> /etc/vsftpd/user_list

设置用户ftp主目录

本地用户的主目录有时候并不能作为ftp的根目录,也可以对每个用户设置设置FTP根目录

代码语言:javascript复制
# 创建用户配置目录
mkdir /etc/vsftpd/userconfig
# 创建用户FTP目录
mkdir /data/ftp
# 编辑用户配置文件
echo "local_root=/data/ftp" > /etc/vsftpd/userconfig/{username}

设置被动模式: /etc/vsftpd/vsftpd.conf

代码语言:javascript复制
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

参考

  • How To Install an FTP Server on CentOS 7 With VSFTPD

0 人点赞