卸载安装vsftpd
- 如果之前安装过vsftpd服务,需要先进行卸载
- 查看当前服务器中的vsftpd :
rpm -qa|grep vsftpd 例如执行结果为:vsftpd-2.2.2-13.el6_6.1.x86_64 - 执行卸载: rpm -e vsftpd-2.2.2-13.el6_6.1.x86_64
- 删除遗留的文件: rm -rf /etc/vsftpd
- 运行以下命令安装vsftpd: dnf install -y vsftpd
- 运行以下命令设置FTP服务开机自启动: systemctl enable vsftpd.service
- 运行以下命令启动FTP服务 systemctl start vsftpd.service
- 运行以下命令查看FTP服务监听的端口。netstat -antup | grep ftp
配置本地用户访问FTP服务器
- 运行以下命令为FTP服务创建一个Linux用户: adduser ftptest
- 运行以下命令修改ftptest用户的密码。 passwd ftptest
- 运行以下命令创建一个供FTP服务使用的文件目录。mkdir /var/ftp/test
- 运行以下命令更改/var/ftp/test目录的拥有者为ftptest。 chown -R ftptest:ftptest /var/ftp/test
- 修改vsftpd.conf配置文件
- 运行以下命令打开配置文件。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
#本教程中为Linux实例公网IP
pasv_address=<FTP服务器公网IP地址>
#设置被动模式下,建立数据传输可使用的端口范围的最小值
pasv_min_port=<port number>
#设置被动模式下,建立数据传输可使用的端口范围的最大值
pasv_max_port=<port number>
6 创建chroot_list文件,并在文件中写入例外用户名单。
1 运行以下命令创建chroot_list文件。 vim /etc/vsftpd/chroot_list
2 按i进入编辑模式,将刚才创建的用户名加入到文件中
3 按Esc退出编辑模式,然后输入:wq并回车以保存并关闭文件。
7 运行以下命令重启vsftpd服务。
systemctl restart vsftpd.service
设置安全组
搭建好FTP站点后,在实例安全组的入方向添加规则并放行下列FTP端口 FTP被动模式需要开放端口21,以及配置文件/etc/vsftpd/vsftpd.conf中参数pasv_min_port和pasv_max_port之间的所有端口。
使用FileZilla客户端工具进行测试访问
添加其他普通用户(只有读权限,不能上传修改文件)
useradd -d /home/ftptest test //添加用户,指定访问的文件夹
vim /etc/vsftpd/chroot_list //编辑此文件,将刚才添加的用户加入到文件中