基于ECS搭建FTP服务
前言,之前使用过ftpserver等软件搭建过ftp服务,今天练习使用vsftpd搭建.
1.远程连接ESC服务器
因为之前使用过Putty,所以就没用教程中的工具.
打开后界面如下:
接下来填入用户名和密码
登录成功
2.安装vsftpd
1.命令行安装vsftpd
yum install -y vsftpd
我深入了解了一下yum命令
-y:对所有的提问都回答“yes”
复制命令后,右键粘贴
安装成功
2.设置FTP服务开机自启动
设置ftp服务自启动
systemctl enable vsftpd.service
启动ftp服务
systemctl start vsftpd.service
查看FTP服务监听的端口
netstat -antup | grep ftp
netstat命令
3.配置vsftpd
vsftpd(very secure FTP daemon)是一款在Linux发行版中最受推崇的FTP服务器。vsftpd支持匿名访问和本地用户模式两种访问方式。匿名访问方式任何用户都可以访问搭建的FTP服务;本地用户模式只支持添加的本地用户访问搭建的FTP服务。
说明: 匿名用户模式和本地用户模式只可同时配置一种。
因为只能同时配置一种,我就选择了本地用户模式(匿名的很简单),也给出步骤(不过没图片).(最好选择匿名的)
(1)本地用户模式
为FTP服务创建一个Linux用户(ftptest为用户名)
adduser ftptest
为用户设置密码(一定要记好密码)
passwd ftptest
创建一个供FTP服务使用的文件目录(可以自己设置目录)
mkdir /var/ftp/test
更改/var/ftp/test目录的拥有者为ftptest
chown -R ftptest:ftptest /var/ftp/test
将文件目录/var/ftp/test 的拥有者设为 ftptest(前面),群体的使用者 ftptest (后面)
chown命令
修改vsftpd.conf配置文件
vim /etc/vsftpd/vsftpd.conf
下面的配置命令行贼多,不过我试了一下,可以全部复制再粘贴,使用:wq保存并退出
选择一种配置
配置FTP为主动模式请执行如下命令
sed命令
sed -i 's/anonymous_enable=YES/anonymous_enable=NO/' /etc/vsftpd/vsftpd.conf #禁止匿名登录FTP服务器
sed -i 's/listen=NO/listen=YES/' /etc/vsftpd/vsftpd.conf #监听IPv4 sockets
sed -i 's/listen_ipv6=YES/#listen_ipv6=YES/' /etc/vsftpd/vsftpd.conf #关闭监听IPv6 sockets
sed -i 's/#chroot_local_user=YES/chroot_local_user=YES/' /etc/vsftpd/vsftpd.conf #全部用户被限制在主目录
sed -i 's/#chroot_list_enable=YES/chroot_list_enable=YES/' /etc/vsftpd/vsftpd.conf #启用例外用户名单
sed -i 's/#chroot_list_file=/chroot_list_file=/' /etc/vsftpd/vsftpd.conf #指定例外用户列表文件,列表中的用户不被锁定在主目录
echo "allow_writeable_chroot=YES" >> /etc/vsftpd/vsftpd.conf
echo "local_root=/var/ftp/test" >> /etc/vsftpd/vsftpd.conf #设置本地用户登录后所在的目录
配置FTP为被动模式请执行如下命令
sed -i 's/anonymous_enable=YES/anonymous_enable=NO/' /etc/vsftpd/vsftpd.conf #禁止匿名登录FTP服务器
sed -i 's/listen=NO/listen=YES/' /etc/vsftpd/vsftpd.conf #监听IPv4 sockets
sed -i 's/listen_ipv6=YES/#listen_ipv6=YES/' /etc/vsftpd/vsftpd.conf #关闭监听IPv6 sockets
sed -i 's/#chroot_local_user=YES/chroot_local_user=YES/' /etc/vsftpd/vsftpd.conf #全部用户被限制在主目录
sed -i 's/#chroot_list_enable=YES/chroot_list_enable=YES/' /etc/vsftpd/vsftpd.conf #启用例外用户名单
sed -i 's/#chroot_list_file=/chroot_list_file=/' /etc/vsftpd/vsftpd.conf #指定例外用户列表文件,列表中的用户不被锁定在主目录
echo "allow_writeable_chroot=YES" >> /etc/vsftpd/vsftpd.conf
echo "local_root=/var/ftp/test" >> /etc/vsftpd/vsftpd.conf #设置本地用户登录后所在的目录
echo "pasv_enable=YES" >> /etc/vsftpd/vsftpd.conf #开启被动模式
echo "pasv_address=<FTP服务器公网IP地址>" >> /etc/vsftpd/vsftpd.conf #本教程中为ECS服务器弹性IP
echo "pasv_min_port=20" >> /etc/vsftpd/vsftpd.conf #设置被动模式下,建立数据传输可使用的端口范围的最小值
echo "pasv_max_port=21" >> /etc/vsftpd/vsftpd.conf #设置被动模式下,建立数据传输可使用的端口范围的最大值
配置完成(这个图有点花)
在/etc/vsftpd目录下创建chroot_list文件,并在文件中写入例外用户名单
#使用vim命令编辑chroot_list文件,添加例外用户名单。此名单中的用户不会被锁定在主目录,可以访问其他目录。
vim /etc/vsftpd/chroot_list
重启FTP服务
systemctl restart vsftpd.service
客户端测试
在浏览器输入弹性ip,很遗憾我失败了(找不到原因,尝试匿名模式)
又重新体验了一下,这次成功了,不过还是有点曲折
在创建chroot_list文件要注意
测试客户端
在浏览器或文件资源管理器输入ip
结果如下,测试成功
(2)匿名模式
修改配置文件vsftpd.conf
vim /etc/vsftpd/vsftpd.conf
按 i 键进入编辑模式,将匿名上传权限 anon_upload_enable=YES 的注释解开。
-
按ESC键退出编辑模式,输入:wq 保存并退出vim。
-
更改/var/ftp/pub目录的权限,为FTP用户添加写权限。
chmod o+w /var/ftp/pub/
4. 重启FTP服务。
systemctl restart vsftpd.service