1.FTP概述

2.工作原理
一个完整的FTP文件传输需要建立两种类型的连接,一种为文件传输下命令,称为控制连接,另一种实现真正的文件传输,称为数据连接。
控制连接:客户端希望与FTP服务器建立上传下载的数据传输时,它首先向服务器的TCP 21端口发起一个建立连接的请求,FTP服务器接受来自客户端的请求,完成连接的建立过程,这样的连接就称为FTP控制连接。
数据连接:FTP控制连接建立之后,即可开始传输文件,传输文件的连接称为FTP数据连接。FTP数据连接其实就是FTP传输数据的过程
记得配上图解
FTP的数据连接又可分为两种模式:主动模式和被动模式
主动(PORT)模式的建立过程:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户端的XXXX端口发送连接请求,建立一条数据链路来传送数据。
被动(PASV)模式的建立过程客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服务器的XXXX端口发送连接请求,建立一条数据链路来传送数据。
记得配上图解
3.FTP的优势与不足
工作在主动模式的时候,可能会被防火墙当成恶意扫描,而被拒绝
4.FTP C/S架构简介
Server端:
wu-ftpd
        proftpd
        pureftp
        vsftpd: Very Secure ftpd
        IIS
        ServU
Client端:
    GUI:可在windows环境使用的ftp客户端软件
      flashfxp(商业软件,需付费)  
      cuteftp(商业软件,需付费)
      filezilla(开源)
      gftp(Linux)
     CLI:可在Linux命令行使用的ftp客户端程序
                ftp
        lftp
                wget
        lftpget
5.FTP内部指令详解
6.FTP用户分类
用户分类
(1) 匿名用户:客户端可以在没有服务器账户及密码的情况下访问FTP资源,即以匿名用户(anonymous)的身份获取公共资源,因此权限较小,通常只能下载文件
(2) 本地用户
(3) 虚拟用户
        虚拟用户的密码文件可存放在hash file或mysql数据库中
数据传输安全
sftp: ssh提供的的基于ssh协议的ftp;
ftps: 基于ssl的ftp
响应码:
1xx: 信息码
2xx: 成功状态码
3xx: 进一步提示补全信息的状态码
4xx: 客户端错误
5xx: 服务器端错误
7.安装配置vsftpd必备的知识
安装vsftpd:
/etc/pam.d/vsftpd: 认证文件  (PAM模块知识点尚未总结)
       pam: Plugable Authentication Module,插件式认证模块
       nsswitch:名称解析框架
模块化:/lib64/libnss*, /usr/lib64/libnss*
       配置文件:/etc/nsswitch.conf
       pam: 认证框架
       模块化:/lib64/security/pam*.so
配置文件:/etc/pam.conf和/etc/pam.d/*
      和vsftpd关系密切的文件:
配置文件:/etc/vsftpd/vsftpd.conf
服务脚本:/etc/rc.d/init.d/vsftpd
主程序文件:/usr/sbin/vsftpd

数据文件:/var/ftp