ECS七天训练营进阶班 第一天 基于ECS搭建FTP服务

第一天 基于ECS搭建FTP服务

0x01 使用SSH登录ECS

本次使用的ECS为阿里云提供的体验机

服务器系统 版本
CentOS 7.7

在阿里云上可以直接申请免费体验,使用时间为一个小时。
在申请后,使用ssh root@<ECS IP>进行连接。

0x02 在ECS上安装vsftpd

  1. 使用以下命令安装vsftpd
yum install -y vsftpd

安装成功后会显示如下结果

Loaded plugins: fastestmirror
Determining fastest mirrors
base                                                                                             | 3.6 kB  00:00:00
epel                                                                                             | 4.7 kB  00:00:00
extras                                                                                           | 2.9 kB  00:00:00
updates                                                                                          | 2.9 kB  00:00:00
(1/7): base/7/x86_64/group_gz                                                                    | 153 kB  00:00:00
(2/7): epel/x86_64/group_gz                                                                      |  95 kB  00:00:00
(3/7): epel/x86_64/updateinfo                                                                    | 1.0 MB  00:00:00
(4/7): extras/7/x86_64/primary_db                                                                | 206 kB  00:00:00
(5/7): base/7/x86_64/primary_db                                                                  | 6.1 MB  00:00:00     (6/7): updates/7/x86_64/primary_db                                                               | 4.5 MB  00:00:00
(7/7): epel/x86_64/primary_db                                                                    | 6.9 MB  00:00:00
Resolving Dependencies
--> Running transaction check
---> Package vsftpd.x86_64 0:3.0.2-27.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

========================================================================================================================
 Package                    Arch                       Version                           Repository                Size
========================================================================================================================
Installing:
 vsftpd                     x86_64                     3.0.2-27.el7                      base                     172 k

Transaction Summary
========================================================================================================================
Install  1 Package

Total download size: 172 k
Installed size: 353 k
Downloading packages:
vsftpd-3.0.2-27.el7.x86_64.rpm                                                                   | 172 kB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.
  Installing : vsftpd-3.0.2-27.el7.x86_64                                                                           1/1
  Verifying  : vsftpd-3.0.2-27.el7.x86_64                                                                           1/1

Installed:
  vsftpd.x86_64 0:3.0.2-27.el7

Complete!
  1. 设置vsftpd开机自启动
systemctl enable vsftpd.service
  1. 启动FTP服务
systemctl start vsftpd.service
  1. 查看FTP使用的网络端口
netstat -antup | grep ftp

如下结果表明FTP正在监听21端口

tcp6       0      0 :::21                   :::*                    LISTEN      1409/vsftpd

0x03 配置vsftpd

vsftpd(very secure FTP daemon)是一款在Linux发行版中最受推崇的FTP服务器。vsftpd支持匿名访问和本地用户模式两种访问方式。匿名访问方式任何用户都可以访问搭建的FTP服务;本地用户模式只支持添加的本地用户访问搭建的FTP服务。

匿名用户模式和本地用户模式只可同时配置一种。

  1. 匿名模式

    1. 使用编辑器编辑/etc/vsftpd/vsftpd.conf,删除#anon_upload_enable=YES前的#,开启匿名上传权限。
    2. 更改/var/ftp/pub目录的权限,为FTP用户添加写权限。
    chmod o+w /var/ftp/pub/
    1. 重启FTP服务。
    systemctl restart vsftpd.service
    1. 使用浏览器进行连接测试,结果如下
      ECS七天训练营进阶班 第一天 基于ECS搭建FTP服务
  2. 本地用户模式

    1. 为FTP服务创建一个Linux用户。
    adduser ftptest
    1. 为用户设置密码。
    passwd ftptest
    1. 创建一个供FTP服务使用的文件目录。
    mkdir /var/ftp/test
    1. 更改/var/ftp/test目录的拥有者为ftptest。
    chown -R ftptest:ftptest /var/ftp/test
    1. 修改vsftpd.conf配置文件。

      1. 配置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 #设置本地用户登录后所在的目录
      1. 配置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 #设置被动模式下,建立数据传输可使用的端口范围的最大值
    2. /etc/vsftpd目录下创建chroot_list文件,并在文件中写入例外用户名单。
    vim /etc/vsftpd/chroot_list
    1. 重启FTP服务。
    systemctl restart vsftpd.service
    1. 使用浏览器进行登录
      ECS七天训练营进阶班 第一天 基于ECS搭建FTP服务

ECS七天训练营进阶班 第一天 基于ECS搭建FTP服务
或使用ftp命令进行连接

ftp 106.14.14.181

ECS七天训练营进阶班 第一天 基于ECS搭建FTP服务

0x04 总结

学习了如何使用CentOS系统搭建FTP服务器

  1. 使用yum命令安装vsftpd
  2. 使用systemctl启用vsftpd
  3. 修改/etc/vsftpd/vsftpd.conf开启匿名模式或本地用户模式
  4. 使用systemctl restart vsftpd.service重启vsftpd使配置生效
  5. 使用浏览器或ftp命令进行登录
上一篇:Apache APISIX 助力有赞云原生 PaaS 平台,实现全面微服务治理(1)


下一篇:周志明论架构之道:后微服务时代与无服务时代