Linux—FTP的基本使用

1.文件传输协议

  • 一般来讲,人们将计算机联网的首要目的就是获取资料,而文件传输是一种非常重要的获取资料的方式。今天的互联网是由几千万台个人计算机、工作站、服务器、小型机、大型机、巨型机等具有不同型号、不同架构的物理设备共同组成的,而且即便是个人计算机,也可能会装有Windows、Linux、UNIX、Mac等不同的操作系统。为了能够在如此复杂多样的设备之间解决问题解决文件传输问题,文件传输协议(FTP)应运而生。
  • FTP是一种在互联网中进行文件传输的协议,基于客户端/服务器模式,默认使用20、21号端口,其中端口20(数据端口)用于进行数据传输,端口21(命令端口)用于接受客户端发出的相关FTP命令与参数。FTP服务器普遍部署于内网中,具有容易搭建、方便管理的特点。而且有些FTP客户端工具还可以支持文件的多点下载以及断点续传技术,因此FTP服务得到了广大用户的青睐。FTP协议的传输拓扑如图所示。
    在这里插入图片描述
    FTP服务器是按照FTP协议在互联网上提供文件存储和访问服务的主机,FTP客户端则是向服务器发送连接请求,以建立数据传输链路的主机。FTP协议有下面两种工作模式。

主动模式:FTP服务器主动向客户端发起连接请求。
被动模式:FTP服务器等待客户端发起连接请求(FTP的默认工作模式)。

2.vsftpd服务程序
vsftpd作为更加安全的文件传输的服务程序,允许用户以三种认证模式登录到FTP服务器上。
匿名开放模式: 是一种最不安全的认证模式,任何人都可以无需密码验证而直接登录到FTP服务器。
本地用户模式: 是通过Linux系统本地的账户密码信息进行认证的模式,相较于匿名开放模式更安全,而且配置起来也很简单。但是如果被黑客破解了账户的信息,就可以畅通无阻地登录FTP服务器,从而完全控制整台服务器。
虚拟用户模式: 是这三种模式中最安全的一种认证模式,它需要为FTP服务单独建立用户数据库文件,虚拟出用来进行口令验证的账户信息,而这些账户信息在服务器系统中实际上是不存在的,仅供FTP服务程序进行认证使用。这样,即使黑客破解了账户信息也无法登录服务器,从而有效降低了破坏范围和影响。
ftp是Linux系统中以命令行界面的方式来管理FTP传输服务的客户端工具。我们首先手动安装这个ftp客户端工具,以便在后续实验中查看结果。

3. 常见的FTP客户端工具
1.File Zilla
  File Zilla是一个开源的,跨平台的Linux FTP客户端。File Zilla有一个标签式的用户界面,允许用户查看正在传输的文件的所有细节。File Zilla是通过网络传输较大文件的完美方式,它允许恢复大于4GB的文件。它的拖放功能使其能够更轻松地通过FTP传输文件。
2.Fire FTP
  Fire FTP可以让你在远程站点之间传输文件。它提供了最佳的性能,是免费又安全的跨平台FTP / SFTP客户端,支持Mozilla Firefox。它也支持拖放功能,并允许你做进一步的文件检查,如重命名、权限等。
3.gFTP
  gFTP是一个GPL授权的免费软件。它支持Linux客户端的多线程文件传输,在基于UNIX的计算机上也可工作。这个程序是用C语言写的,支持FTP、FTPS、HTTP、HTTPS、SSH和FSP协议。你可以作为书签保存,也可以选择是否保存密码。

4.FTP状态码

加粗为常见的状态码 
1xx 肯定初步答复,指示某一项操作已经成功开始,但客户端希望在继续操作新的命令前得到另一个答复 
110 重新启动标记答复
120 服务已就绪 
125 数据连接已打开,正在开始传输 
150 文件状态正常,准备打开数据连接 ftp,使用两个端口:21发送命令,20发送数据,150表示服务器准备在20端口上打开连接,发送数据。 
2xx 肯定完成答复,某一项操作已经成功完成,客户端可以执行新的命令 
200 确定 
202 未执行命令,命令过多 
211 系统状态,或系统帮助答复 
212 目录状态 
213 文件状态 
214 帮助消息 
215 name系统类型,name是Assigned Numbers文档所列的正式名称 
220 服务就绪,可以执行新用户请求 
221 服务关闭控制连接。如果适当,请注销。 
225 数据连接打开,没有进行中的传输 
226 关闭数据连接 
227 进入被动模式 
230 用户已登录,继续 
250 请求的文件操作正确,完成 
257 已创建“PATHNAME” 
3xx 肯定中间答复,此命令已经成功,但服务器需要更多客户端的信息以完成对请求的处理 
**331 用户名正确,输入密码 
332 需要登录账号** 
350 请求的文件操作正在等待进一步的信息 
4xx 瞬时否定答复,此命令不成功,但错误是暂时的。如果重试,有可能会成功 
421 服务不可用,正在关闭控制连接 
425 无法打开数据连接 
426 Connection closed 
450 未执行请求的文件操作。文件不可用 
451 请求的操作异常终止 
452 未执行请求的操作,系统存储空间不够 
5xx 永久性否定的答复,此命令不成功。 
500 语法错误,无法识别。可能包括命令过长之类的 
501 在参数中有语法错误 
502 未执行命令 
503 错误的命令序列 
504 未执行该参数的命令 
530 未登录 
532 存储文件需要账户 
550 未执行请求的操作,文件不可用、无权限的操作 
551 请求的操作异常终止 
552 请求的文件操作异常终止 
553 未执行请求的操作,不允许的文件名

4.FTP虚拟用户配置
①安装部署Vsftpd

[root@ftptest ~]# yum install -y vsftpd
[root@ftptest ~]# systemctl start vsftpd
[root@ftptest ~]# systemctl enable vsftpd
[root@ftptest ~]# systemctl stop firewalld
[root@ftptest ~]# systemctl disable firewalld
[root@ftptest ~]# setenforce 0

②虚拟用户配置

[root@ftptest ~]# vi /etc/vsftpd/users.conf   	//创建FTP用户和账号
giao
1234
zhaogiao
5678

[root@ftptest ~]# db_load -T -t hash -f /etc/vsftpd/users.conf /etc/vsftpd/users.db   	//转化为Berkeley DB格式的数据文件

[root@ftptest ~]# chmod 600 /etc/vsftpd/users.*

[root@ftptest ~]# ll /etc/vsftpd/users.*
-rw-------. 1 root root    24 Feb 27 21:51 /etc/vsftpd/users.conf
-rw-------. 1 root root 12288 Feb 27 21:51 /etc/vsftpd/users.db

[root@ftptest ~]# useradd vsftpd -d /home/vsftpd -s /sbin/nologin //创建系统用户

[root@ftptest ~]# mkdir -p /home/vsftpd/xmcsxy		//创建FTP 根目录

[root@ftptest ~]# chmod -R 755 /home/vsftpd/

[root@ftptest ~]# vim /etc/pam.d/vsftpd			//建立支持虚拟用户的PAM认证文件
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/users
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/users

[root@ftptest ~]# vi /etc/vsftpd/vsftpd.conf
nonymous_enable=NO  	  //修改,禁止匿名用户登陆
chroot_local_user=YES  	//增加,禁止用户访问除主目录以外的目录
guest_enable=YES	  //增加,启用虚拟用户
allow_writeable_chroot=YES  	//增加,允许写入用户主目录
user_config_dir=/etc/vsftpd/vsftpd_user_conf  	//增加,虚拟用户使用的配置文件目录

[root@ftptest ~]# mkdir -p /etc/vsftpd/vsftpd_user_conf

[root@ftptest ~]# vi /etc/vsftpd/vsftpd_user_conf/giao
local_root=/home/vsftpd/xmcsxy   //当本地用户登入时,将被更换到定义的目录下。
anon_upload_enable=YES   //允许登陆用户有上传权限
write_enable=YES   	//允许登陆用户有写权限

[root@ftptest ~]# systemctl restart vsftpd
[root@ftptest ~]# touch /home/vsftpd/xmcsxy/test.txt   

使用File Zilla测试
在这里插入图片描述
测试连接成功,可看到test.txt。

发布了29 篇原创文章 · 获赞 15 · 访问量 2508

猜你喜欢

转载自blog.csdn.net/qq_20027745/article/details/104760514