全套学习资料移步至公众号【学神来啦】更多学习资料添加扣扣资源群:661308959
本节所讲内容:
4.1 VSFTP服务器概述
4.2 安装配置VSFTP
4.3 实战:匿名访问VSFTP
4.4 实战:用户名密码方式访问VSFTP
4.5 NFS概述-配置NFS服务器并实现开机自动挂载
服务器信息:
FTP服务端:xuegod63 IP:192.168.1.63
FTP客户端:xuegod64 IP:192.168.1.64
FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。
FTP(File Transfer Protocol: 文件传输协议)作用:Internet 上用来传送文件的协议。
常见FTP服务器:
Windows:Serv-U 、FTP Server、filezilla_server
Linux:ProFTPD:(Professional FTP daemon)一个Unix平台上或是类Unix平台上(如Linux, FreeBSD等)的FTP服务器程序。
VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 从此名称可以看出来,编制者的初衷是代码的安全。
特点:
它是一个安全、高速、稳定的FTP服务器。
VSFTP模式: C/S 模式
监听端口:20、21
[root@xuegod64 ~]# vim /etc/services #查看services文件,如图 4-1 所示。
图 4-1 FTP端口
FTP监听的端口有两个:
端口20:用于传输数据
端口21:用于传输指令
主动和被动模式:
FTP会话包含了两个通道,控制通道和数据传输通道,FTP的工作有两种模式,一种是主动模式,一种是被动模式,以FTP Server为参照,主动模式,服务器主动连接客户端传输,被动模式,等待客户的连接。
主动模式(PORT)的工作原理:
FTP客户端连接到FTP服务器的21号端口,发送用户名和密码,客户端随机开放一个端口(1024以上),发送PORT命令到FTP服务器,告知服务器客户端采用主动模式并开放端口,FTP服务器收到PORT主动模式命令和端口后,通过服务器的20号端口和客户端开放的端口连接,发送数据,原理如图 4-2 所示,(无论是主动还是被动模式,首先的控制通道都是先建立起来,只是在数据传输模式上的区别)
图 4-2 FTP主动模式工作原理图
被动模式的工作原理:
PASV是Passive的缩写,中文成为被动模式,工作原理:FTP客户端连接到FTP服务器所监听的21号端口,发送用户名和密码,发送PASV命令到FTP服务器,服务器在本地随机开放一个端口(1024以上),然后把开放的端口告知客户端,而后客户端再连接到服务器开放的端口进行数据传输,原理如图 4-3 所示。
图 4-3 FTP被动模式工作原理图
主 21 20
被 21 1024以上
使用rpm安装本地光盘中的vsftp程序包:
[root@xuegod63 ~]# rpm -ivh /mnt/cd/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
或:
使用yum直接安装(两种安装方法,选取其中一种即可):
[root@xuegod63 ~]# yum -y install vsftpd
[root@xuegod64 ~]# yum install -y lftp #使用yum安装ftp客户端。
lftp
Linux客户端:
lftp 是一个功能强大的下载工具,它支持访问文件的协议: ftp、ftps、http、https、hftp(其中ftps和https需要在编译的时候包含openssl库),lftp的界面非常类似一个Shell,有命令补全、历史记录、允许多个后台任务执行等功能,使用起来非常方便。它还有书签、排队、镜像、断点续传、多进程下载、等功能。
vsftpd 相关文档:
/etc/vsftpd/vsftpd.conf #vsftpd 的核心配置文件。
/etc/vsftpd/ftpusers #用于指定哪些用户不能访问FTP 服务器,即黑名单。
/etc/vsftpd/user_list #指定允许使用VSFTP的用户列表文件,即白名单。
[root@xuegod63 ~]# vim /etc/vsftpd/user_list #查看user_list文件,如图 4-4 所示。
图 4-4 VSFTP的用户列表文件
图4-4中的说明:如果userlist_deny= YES(默认),绝不允许在这个文件中的用户登录ftp,甚至不提示输入密码。
/etc/vsftpd/vsftpd_conf_migrate.sh #是vsftpd 操作的一些变量和设置脚本
/var/ftp/ #默认情况下匿名用户的根目录
[root@xuegod63 vsftpd]# systemctl start vsftpd #启动FTP服务。
[root@xuegod63 vsftpd]# systemctl enable vsftpd #设置开启自动启动FTP服务。