Day1-基于ECS的FTP-Vsftpd服务

简介: 云服务器(Elastic Compute Service,简称ECS)是阿里云提供的弹性计算服务。基于它,可以用来配置FTP服务器;其中,FTP(File Transfer Protocol)文件传输协议是一个用于在计算机网络上在客户端和服务器之间进行文件传输的应用层协议。依照该协议,可以用来提供文件存储和访问服务。而基于该协议,发展出了vsftpd,它是一款在Linux发行版中最受欢迎的FTP服务器,它具有非常高的安全性需求、带宽限制、良好的可伸缩性和速率高等特点。

环境

System Version: Centos7

安装

1.安装vsftpd:

sudo yum install vsftpd

2.启动vsftpd:

systemctl start vsftpd # 开启vsftpd
systemctl enable vsftpd # 自启vsftpd

3.运行以下命令查看FTP服务监听的端口:

netstat -antup | grep ftp

4.查看FTP服务是否启动,可以看到监听的端口号为21:
ftpPort
此时,vsftpd默认已开启匿名访问功能,您无需输入用户名密码即可登录FTP服务器,但没有修改或上传文件的权限。

配置

在用户配置中有两种模式, 并且在同一个服务中只能配置一种。

匿名模式

顾名思义,就是任何人都可以登陆的模式

1.修改配置文件vsftpd.conf, 开启匿名上传权限:

jsed -i 's/#anon_upload_enable=YES/anon_upload_enable=YES/' /etc/vsftpd/vsftpd.conf

2.更改/var/ftp/pub目录的权限, 添加写权限:

chmod o+w /var/ftp/pub

3.重启服务:

systemctl restart vsftpd.service
systemctl status vsftpd.service

这时,可以在浏览器的地址栏输入服务器的ftp://ipaddress:port,会出现如下界面,说明配置成功:
ftpMode1

本地模式

该模式只能由拥有用户名和密码的所有人登陆

1.在这里可以为FTP服务创建一个专门的用户, 当然直接使用root用户配置也是可以的, 但是不推荐:

adduser vsftpd
passwd vsftpd # 注意密码

2.创建访问目录:

mkdir /var/ftp/vsftpd0

3.把创建的访问目录的用户属更改为vsftpd用户:

chown -R vsftpd:vsftpd /var/ftp/vsftpd0

4.修改vsftpd.conf配置文件:
主动模式传送数据时是“服务器”连接到“客户端”的端口(客户端开启数据端口);
被动模式传送数据是“客户端”连接到“服务器”的端口(服务端开启数据端口);

主动模式需要客户端必须开放端口给FTP服务端,很多客户端都是在防火墙内,开放端口给FTP服务器访问比较困难;
被动模式只需要服务器端开放端口给客户端连接就行了,如果服务端在防火墙内,也需要做端口映射才行。

  • 配置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=<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 #设置被动模式下,建立数据传输可使用的端口范围的最大值

5.在/etc/vsftpd目录下创建chroot_list文件,使得该文件中的用户可以访问其他目录:

vim /etc/vsftpd/chroot_list # 进入文件后输入用户名称即可

6.重启服务:

systemctl restart vsftpd.service

7.同样,在浏览器地址栏输入ftp://ipaddress:port,可以看到:
ftpMode2
在这里输入前面创建的用户名和密码,便可以登陆FTP服务器。

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
目录
相关文章
|
27天前
|
安全 C#
【Azure 应用服务】在安全漏洞扫描中发现有泄露服务器IIS版本的情况,如何实现屏蔽服务版本号信息呢?
【Azure 应用服务】在安全漏洞扫描中发现有泄露服务器IIS版本的情况,如何实现屏蔽服务版本号信息呢?
|
28天前
|
Ubuntu Linux 测试技术
在Linux中,已知 apache 服务的访问日志按天记录在服务器本地目录/app/logs 下,由于磁盘空间紧张现在要求只能保留最近7天的访问日志,请问如何解决?
在Linux中,已知 apache 服务的访问日志按天记录在服务器本地目录/app/logs 下,由于磁盘空间紧张现在要求只能保留最近7天的访问日志,请问如何解决?
|
30天前
|
域名解析 网络协议 Linux
在Linux中,如何配置DNS服务器和解析服务?
在Linux中,如何配置DNS服务器和解析服务?
|
29天前
|
安全 Ubuntu Linux
在Linux中,如何进行FTP服务器配置?
在Linux中,如何进行FTP服务器配置?
|
1月前
|
虚拟化
网工,第一次在服务器上安装AD域服务
网工,第一次在服务器上安装AD域服务
|
22天前
|
数据可视化 Python
通过python建立一个web服务查看服务器上的文本、图片、视频等文件
通过python建立一个web服务查看服务器上的文本、图片、视频等文件
20 0
|
27天前
|
存储
【Azure 应用服务】Azure App Service 自带 FTP服务
【Azure 应用服务】Azure App Service 自带 FTP服务
|
1月前
|
敏捷开发 运维 供应链
联想服务器问题之云计算领域的产品和服务的类别如何解决
联想服务器问题之云计算领域的产品和服务的类别如何解决
30 0
|
Linux
CentOS7下如何查看vsftpd服务的状态
CentOS7下如何查看vsftpd服务的状态 -------------------------------------------------------------- [root@localhost ~]# systemctl status vsftpd.
7895 0
|
安全 Linux 数据安全/隐私保护
谁再说不会搭建vsftpd,就把这个脚本给他扔过去!——CentOS7下一键脚本搭建虚拟用户模式的vsftpd服务器
谁再说不会搭建vsftpd,就把这个脚本给他扔过去!——CentOS7下一键脚本搭建虚拟用户模式的vsftpd服务器
405 0
谁再说不会搭建vsftpd,就把这个脚本给他扔过去!——CentOS7下一键脚本搭建虚拟用户模式的vsftpd服务器