天天看点

ECS七天训练营进阶班 第一天 基于ECS搭建FTP服务第一天 基于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服务第一天 基于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           
    systemctl restart vsftpd.service           
    1. 使用浏览器进行登录
      ECS七天训练营进阶班 第一天 基于ECS搭建FTP服务第一天 基于ECS搭建FTP服务
ECS七天训练营进阶班 第一天 基于ECS搭建FTP服务第一天 基于ECS搭建FTP服务

或使用ftp命令进行连接

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

0x04 总结

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

  1. 使用

    yum

    命令安装vsftpd
  2. systemctl

    启用vsftpd
  3. /etc/vsftpd/vsftpd.conf

    开启匿名模式或本地用户模式
  4. systemctl restart vsftpd.service

    重启vsftpd使配置生效
  5. 使用浏览器或ftp命令进行登录

继续阅读