步骤 1 : ftp做什么用
接下来就要在Linux上安装ftp服务器了。 ftp的全称是 File Transfer Protocol : 文件传输协议。
顾名思义,ftp就是用来我们把本地的文件传输到服务器上,或者从服务器上下载文件用的。
接下来的章节就会讲解如何在linux 上安装ftp服务器
步骤 2 : 安装服务器相关内容
Linux上的ftp服务器有各种型号,我们会使用vsftpd,全称是:very secure FTP daemon 非常安全的ftp后台程序。。。
为了使得这个服务器可以使用还要做许多配合工作,比如创建用户,配置端口,开放端口等等活计,后面会一一展开
部署到Linux系列教材 (二)- FTP - 安装
步骤 1 : 介绍vsftpd
vsftpd 全称是:very secure FTP daemon 非常安全的ftp后台程序,及ftp 服务端
步骤 2 : 安装命令
yum install vsftpd -y |
执行之后,最后看到Complete! 就表示安装成功了
步骤 3 : 查看服务启动状态
执行命令:
systemctl start vsftpd.service systemctl status vsftpd.service |
第一步是用来启动vsftpd服务,不一定需要,因为 安装命令 结束后就会自动启动,但是有时候不会自动启动,所以还是加上吧
可以看到最后 Started vsftpd ftp daemon 已经启动成功了
注: 在以前版本的Centos 是使用 service vsftpd status 来进行查看的,但是Centos 7 之后的版本,就已经改用命令systemctl 来查看了。 在购买ECS服务器-镜像 部分,选择的是Centos 7.4 64位
步骤 4 : 关闭和启动
一般说来关闭,启动,查看状态几个功能会如图所示一起执行,这样便于查看重启是否成功
systemctl stop vsftpd.service systemctl start vsftpd.service systemctl status vsftpd.service |
步骤 5 : 检查端口
ftp服务启动的是21端口,使用如下命令应该观察到21端口正在处于监听状态,这也从侧面反应了ftp服务器启动成功了
netstat -anp|grep 21 |
部署到Linux系列教材 (三)- FTP - ftp用户
步骤 1 : 用户概念
要连接上 vsftpd 服务器需要为Linux创建专门的用户。 接下来就会讲解如何创建这个用户
步骤 2 : 用户目录
在Linux中,不同用户是有不同目录访问权限的,所以首先创建一个目录,作为这个ftp用户所拥有的目录。
mkdir -p /home/wwwroot/ftptest |
步骤 3 : 创建用户
执行如下命令,创建用户ftptest,并且指定其目录为用户目录中创建的/home/wwwroot/ftptest
useradd -d /home/wwwroot/ftptest -g ftp -s /sbin/nologin ftptest |
-g ftp 表示该用户属于ftp分组 (ftp分组是内置的,本来就存在,不需要自己创建)
-s /sbin/nologin 表示这个用户不能用来登录secureCRT这样的客户端。 这种不能登陆的用户又叫做虚拟用户
创建过程给出的警告信息是正常的,不用理会
步骤 4 : 设置目录权限
chown -R ftptest /home/wwwroot/ftptest chmod -R 775 /home/wwwroot/ftptest |
把目录/home/wwwroot/ftptest的拥有者设置为ftptest
使ftptest用户拥有这个目录的读写权限
步骤 5 : 设置密码
为ftptest用户设置密码:
passwd ftptest |
密码修改成功后会如图所示出现成功提示。
注: 密码使用 paw123###,后续连接ftp服务器的时候会用到
部署到Linux系列教材 (四)- FTP - 配置用户
步骤 1 : 配置用户
通过上一步创建了 ftp用户 接下来就要在vsftpd服务器中配置该用户
步骤 2 : 去掉匿名登陆
默认情况下vsftpd服务器是允许匿名登陆的,这样非常不安全,所以要把这个选项关闭掉。
首先通过vi命令打开ftp服务器配置文件:
vi /etc/vsftpd/vsftpd.conf |
然后把本来的
anonymous_enable=YES |
修改为
anonymous_enable=NO |
修改完成之后,保存退出。
对使用vi命令打开,编辑,保存不熟悉的同学请参考前面的教程:VI命令
步骤 3 : 限制用户访问
接下来是限制用户访问,什么叫做限制用户访问呢? ftp用户 教程中创建的ftptest用户所拥有的目录是 /home/wwwroot/ftptest,如果不做限制,那么使用ftptest登陆之后可以切换到其他敏感目录去,比如切换到/usr目录去,这样就存在巨大的安全隐患。
为了规避这个隐患,需要限制ftptest用户只能通过ftp访问到 /home/wwwroot/ftptest 目录以及子目录。
配置办法:
首先通过vi命令打开ftp服务器配置文件:
vi /etc/vsftpd/vsftpd.conf |
找到:
#chroot_list_enable=YES # (default follows) #chroot_list_file=/etc/vsftpd.chroot_list |
并修改为:
chroot_list_enable=YES # (default follows) chroot_list_file=/etc/vsftpd/chroot_list |
chroot_list_enable=YES: 表示对用户访问进行限制
chroot_list_file=/etc/vsftpd/chroot_list 表示对chroot_list里面指定的用户进行限制 下一个步骤用户清单就会对chroot_list 这个文件进行编辑
修改完成之后,保存退出。
对使用vi命令打开,编辑,保存不熟悉的同学请参考前面的教程:VI命令
步骤 4 : 用户清单
接着上一个步骤,在chroot_list中添加ftptest用户
首先通过vi命令打开chroot_list文件(此文件本来是空的):
vi /etc/vsftpd/chroot_list |
然后增加一行: ftptest
修改完成之后,保存退出。
对使用vi命令打开,编辑,保存不熟悉的同学请参考前面的教程:VI命令
步骤 5 : 允许写权限
vsftpd服务器是这样的,一旦某个用户被限制访问了,那么默认情况下,该用户的写权限也被剥夺了。 这就导致ftp客户端连接上服务器之后无法上传文件。
这个时候,就需要打开此用户的写权限,请按照如下办法操作:
首先通过vi命令打开ftp服务器配置文件:
vi /etc/vsftpd/vsftpd.conf |
在最后面新加一行:
allow_writeable_chroot=YES |
修改完成之后,保存退出。
对使用vi命令打开,编辑,保存不熟悉的同学请参考前面的教程:VI命令
部署到Linux系列教材 (五)- FTP - 配置端口
步骤 1 : 两种端口
vsftpd有两种端口,一个是21端口,用来监听客户端连接请求的。 这个一般说来是固定的,就一直使用21端口。
另一种是,一旦获取到请求之后,再专门用户服务端和客户端传输数据的端口。
本知识点就是用于指定第二种端口的获取范围
步骤 2 : 配置端口
打开配置文件:
vi /etc/vsftpd/vsftpd.conf |
在最后添加:
pasv_enable=YES pasv_min_port=30000 pasv_max_port=30010 |
这表示使用被动模式,用于传输数据的端口分配从30000-30010之间。
在后续的Linux开放端口教程中也会做相应的配合工作。
部署到Linux系列教材 (六)- FTP - 开放端口
步骤 1 : 端口概念
要访问Linux的端口,必须开通才行。
在购买ECS服务器-网络步骤里,只开通了22和3389端口。
22就是SecureCRT链接Linux服务器用的端口号。
3389 是阿里云控制台链接用的端口,这里没有用到。
只有这两个端口号是不够用的,为了能够链接vsftpd服务器还需要开放21端口和 30000-30010端口
步骤 2 : 安全组
既然用的是阿里云,那么我们就借助阿里云的安全组操作来实现端口的开放效果。
登陆阿里云后,按照如下顺序选择:云服务器ECS->安全组->配置规则
步骤 3 : 当前安全组规则一览
目前安全组规则是3个,分别是22,3389和ICMP协议。(ICMP是什么?我也不晓得。。。反正本教材没有直接用到~)
然后点下载区(点击进入)的 添加安全组规则
步骤 4 : 添加21端口
如图所示只需要修改两个:
端口范围: 21/21 表示从21开始,到21结束
授权对象: 0.0.0.0/0 表示所有的ip地址都可以访问该端口
步骤 5 : 添加30000-30010端口
如图所示只需要修改两个:
端口范围: 30000/30010 表示从30000开始,到30010结束
授权对象: 0.0.0.0/0 表示所有的ip地址都可以访问该端口
步骤 6 : 添加后安全组规则一览
如图所示,增加了两个新的规则
部署到Linux系列教材 (七)- FTP - ftp客户端
步骤 1 : 上传
步骤 2 : ftprush
ftp客户端有各种各样的版本,我个人习惯使用ftprush. 下载区(点击进入)下载解压即用。
打开ftprush.exe之后看到如图所示的界面
步骤 3 : 连接
菜单->站点->快速连接对话框
主机地址:输入服务器地址
用户名: ftptest
密码: paw123###
以上信息使用的是ftp用户教程中的账号密码
步骤 4 : 连接成功界面
连接成功之后,就可以看到如图所示
左边是服务端: /home/wwwroot/ftptest 里的内容,暂时什么都没有
右边是本地: 一些文件
步骤 5 : 上传和下载
把右边的内容拖到左边,就是上传。。。。
把左边的内容拖到右边,就是下载。。。
如图所示把abc.txt 上传到了服务器
步骤 6 : 到Linux下观察
进入Linux,然后输入命令
ls /home/wwwroot/ftptest/ |
就可以观察到abc.txt 这个文件,确认上传成功啦