ECS训练营学习Class 1—— FTP服务器的搭建

ECS训练营学习第一天(笔记)—— FTP服务器的搭建

    • 一.背景
    • 二. 远程连接ECS服务器
    • 三.安装vsftpd
    • 四.配置vsftpd
    • 配置安全组
    • 阿里云高校计划

一.背景

云服务器(Elastic Compute Service,简称ECS)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务。云服务器ECS免去了您采购IT硬件的前期准备,让您像使用水、电、天然气等公共资源一样便捷、高效地使用服务器,实现计算资源的即开即用和弹性伸缩。阿里云ECS持续提供创新型服务器,解决多种业务需求,助力您的业务发展。

FTP

FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP
协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。默认情况下FTP协议使用TCP端口中的
20和21这两个端口,其中20用于传输数据,21用于传输控制信息。但是,是否使用20作为传输数据的端口与FTP使用的传输模式有关,如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定。

vsftpd

vsftpd(very secure FTP daemon)是一款在Linux发行版中最受推崇的FTP服务器。它可以运行在诸如
Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件,支持很多其他的 FTP
服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。

二. 远程连接ECS服务器

Windows平台下

  1. 使用cmd或PowerShell命令行输入工具。
  2. ssh -V命令检查是否已经安装OpenSSH工具。
  3. 连接服务器: ssh root@ESC IP地址 回车输入密码即可登录。

三.安装vsftpd

输入指令

yum install -y vsftpd

yum install -y vsftpd Loaded
plugins: fastestmirror Determining fastest mirrors base
| 3.6 kB 00:00 epel | 4.7 kB 00:00
extras | 2.9 kB 00:00 updates
| 2.9 kB 00:00 (1/7): epel/x86_64/group_gz | 95 kB 00:00
(2/7): base/7/x86_64/group_gz | 153 kB 00:00 (3/7):
extras/7/x86_64/primary_db | 206 kB 00:00 (4/7):
epel/x86_64/updateinfo | 1.0 MB 00:00 (5/7):
updates/7/x86_64/primary_db | 4.5 MB 00:00 (6/7):
base/7/x86_64/primary_db | 6.1 MB 00:00 (7/7):
epel/x86_64/primary_db | 6.9 MB 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 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!

vsftpd安装完成

vsftpd.service设置FTP开机启动 输入

systemctl start vsftpd.service

启动FTP服务

systemctl start vsftpd.service

查看FTP端口

netstat -antup | grep ftp

FTP默认端口为21

四.配置vsftpd

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

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

匿名用户模式

  1. 修改配置文件vsftpd.conf。
vim /etc/vsftpd/vsftpd.conf

i 键进入编辑模式,将匿名上传权限 anon_upload_enable=YES 的注释解开。

  1. 按ESC键退出编辑模式,输入:wq 保存并退出vim。

  2. 更改/var/ftp/pub目录的权限,为FTP用户添加写权限。

chmod o+w /var/ftp/pub/
  1. 重启FTP服务。
systemctl restart vsftpd.service

本地用户模式

  1. 为FTP服务创建一个Linux用户。
adduser ecsftp

为用户设置密码。

passwd ecsftp
  1. 创建一个供FTP服务使用的文件目录。
mkdir /var/ftp/test
  1. 更改/var/ftp/test目录的拥有者为ecsftp
chown -R ecsftp:ecsftp /var/ftp/test
  1. 修改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 #设置本地用户登录后所在的目录
配置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=" >> /etc/vsftpd/vsftpd.conf #本教程中为ECS服务器弹性IP 
echo "pasv_min_port=20" >> /etc/vsftpd/vsftpd.conf #设置被动模式下,建立数据传输可使用的端口范围的最小值 
echo "pasv_max_port=21" >> /etc/vsftpd/vsftpd.conf #设置被动模式下,建立数据传输可使用的端口范围的最大值
  1. /etc/vsftpd目录下创建chroot_list文件,并在文件中写入例外用户名单。

使用vim命令编辑chroot_list文件,添加例外用户名单。此名单中的用户不会被锁定在主目录,可以访问其他目录。 vim
/etc/vsftpd/chroot_list 说明: 没有例外用户时,也必须创建chroot_list文件,内容可为空。

  1. 重启FTP服务。
systemctl restart vsftpd.service

至此FTP服务搭建完成

配置安全组

搭建好FTP服务后,在ECS实例安全组的入方向添加规则并放行端口

阿里云高校计划

阿里云高校计划,陪伴两千多所高校在校生云上实践、云上成长。在这里你可以领用免费的cpu资源,还可以参加免费训练营,实践提高:https://developer.aliyun.com/adc/student/

你可能感兴趣的:(笔记,阿里云,ecs,ftp,网络)