1. yum安装vsftpd。
sudo yum install -y vsftpd
2. 设置FTP服务开机自启动。
sudo systemctl enable vsftpd.service
3. 启动FTP服务
sudo systemctl start vsftpd.service
4. 设置FTP服务器的访问模式(本地用户模式)
4.1. 为FTP服务创建一个Linux用户
sudo adduser ftpuser
4.2. 修改ftpuser用户的密码
sudo passwd ftpuser
4.3. 创建一个供FTP服务使用的文件目录。
sudo mkdir -p /var/ftp/test
4.4. 更改/var/ftp/test目录的拥有者为ftpuser。
sudo chown -R ftpuser:ftpuser /var/ftp
4.5. 修改配置文件/etc/vsftpd/vsftpd.conf (或者 /etc/vsftpd.conf), 配置FTP服务器为被动模式
sudo vim /etc/vsftpd/vsftpd.conf
#禁止匿名登录FTP服务器。
anonymous_enable=NO
#允许本地用户登录FTP服务器。
local_enable=YES
#监听IPv4 sockets。
listen=YES
#关闭监听IPv6 sockets
#listen_ipv6=YES
#设置本地用户登录后所在目录。
local_root=/var/ftp/test
#全部用户被限制在主目录。
chroot_local_user=YES
#启用例外用户名单。
chroot_list_enable=YES
#指定例外用户列表文件,列表中用户不被锁定在主目录。
chroot_list_file=/etc/vsftpd/chroot_list
#开启被动模式。
pasv_enable=YES
allow_writeable_chroot=YES
#本示例中为轻量应用服务器的公网IP地址。
pasv_address=39.105.xx.xx
#pasv_addr_resolve=YES
#设置被动模式下,建立数据传输可使用的端口范围的最小值。
#建议您把端口范围设置在一段比较高的范围内,例如50000~50010,有助于提高访问FTP服务器的安全性。
pasv_min_port=50000
#设置被动模式下,建立数据传输可使用的端口范围的最大值。
pasv_max_port=50010
4.6. 创建chroot_list文件,并在文件中写入例外用户名单, 譬如:ftpuser, root。输入例外用户名单。此名单中的用户不会被锁定在主目录,可以访问其他目录
sudo vim /etc/vsftpd/chroot_list
重要
没有例外用户时,也必须创建chroot_list文件,内容可为空。
4.7. 关闭防火墙
sudo systemctl stop firewalld
4.8. 重启FTP服务
sudo systemctl restart vsftpd.service
5. 开启linux服务器的防火墙。(可以在阿里云控制台,配置防火墙入站规则)
被动模式需开放21端口,以及配置文件/etc/vsftpd/vsftpd.conf中参数pasv_min_port和pasv_max_port之间的所有端口。配置详情如下表所示。
应用类型 协议 端口范围 FTP TCP 21 自定义 TCP pasv_min_port/pasv_max_port。例如:50000/50010
6. 使用winscp或者filezilla使用21端口连接ftp服务器,验证是否ftp服务器配置成功。
7. 配置文件示例见附件。
8. 如果需要配置 root 用户允许连接ftp,可能需要额外做下面操作:
8.1 将 root 添加到 /etc/vsftpd/chroot_list 里面
8.2 注释 /etc/vsftpd/ftpusers 里面的root用户
8.3 如果userlist_deny=YES (default),那么还需要注释掉/etc/vsftpd/user_list里面的root用户。
好文推荐
发表评论