FTP:file Transfer protocol

FTP协议:

    tcp/21端口:命令连接,控制连接

    tcp/20端口:文件传输连接

FTP:文件共享服务,工作在应用层

RPC:Remote Procedure Call,远程过程调用:实现两个进程之间使用二进制格式通信

NFS:Network filesystem:依赖RPC协议

Samba:CIFS/SMB协议,CIFS:Common Inter FileSystem

服务器程序:

    wu-ftpd:比较早的的FTP,功能强大,但不是模块化设计   

    vsftpd:Very Secure ftp Daemon,安全性强

    proftpd:

    pureftpd:

    Serv-U:

    filezilla

客户端程序:

    CLI:

        ftp

        lftp

    GUI:

        gftpd

        FlashFXP

        Cuteftp

        Filezilla

vsftpd:

    /etc/vsftpd:配置文件目录

    /etc/init.d/vsftpd:服务脚本

    /usr/sbin/vsftpd:主程序

    基于PAM实现用户认证:

        /etc/pam.d/*

        /lib/security/*

        /lib64/security/*

    支持虚拟用户

    /var/ftp:文件目录存放路径、

    /etc/vsftpd/ftpusers:定义哪些用户不能访问ftp服务

    /etc/vsftpd/user_list:定义哪 些用户访问ftp服务

ftp的用户:

    匿名用户

    虚拟用户

    系统用户

/var/ftp:ftp用户的家目录

    匿名用户访问目录,即匿名用户映射为了ftp用户

匿名用户帐户:anonymous

vsftpd.conf配置文件

anonymous_enable=YES     #开启匿名用户访问anonymous_enable=YES     #是否允许本地用户登陆ftpwrite_enable=YES        #用户是否可以上传文件(指系统用户)anon_upload_enable=YES    #是否允许匿名用户上传文件anon_mkdir_write_enable=YES    #是否允许匿名用户写文件anon_other_write_enable=YES    #是否开启其他权限,如删除文件dirmessage_enable=YES    #用户进入一个目录后,显示欢迎文件,在目录上建立.message文件即可xferlog_enable=YES    #是否打开传输日志xferlog_file=/var/log/xferlog    #是否打开传输日志文件保存位置xferlog_std_format=YES    #日志文件格式#chown_uploads=YES    #chown_username=whoever    #此项和上一项表示,是否用户上传完成文件,更改文件的属主、属组#idle_session_timeout=600#data_connection_timeout=120 #此项和上一项表示定义会议超时时长的指令#ascii_upload_enable=YES#ascii_download_enable=YES    #此项和上一项定义上传下载是否使用ascii格式#chroot_list_enable=YES    #表示是不是使用一个用户来定义用户,把他锁在家目录下#chroot_list_file=/etc/vsftpd/chroot_list #在哪个文件创建列表,列表中的哪此用户锁在家目录#chroot_local_user=YES #系统中的所有用户都会被锁在家目录下,需关闭上面两项listen=YES    #表示vsftpd是否工作为一个独立的守护进程pam_service_name=vsftpd    #vsftpd接受pam控制,控制的配置文件叫什么名字,如vsftpduserlist_enable=YES#是否使用user_list这个文件来控制登陆ftp,YES表示启用userlist_deny=YES #YES表示表中的用户不能登陆FTP,NO表示只有user_list中的用户可以登陆max_clients = #  #定义最大用户连接数max_per_ip =  #  #定义每个IP地址发起几个连接请求#ftps+ssl的实现ssl_enable=YESssl_tlsv1=YESssl_tlsv2=YESssl_sslv3=YESallow_anon_ssl=NOforce_local_data_ssl=YESforce_local_logins_ssl=YESrsa_cert_file=/etc/vsftpd/ssl/vsftpd_cert.pemrsa_private_key_file=/etc/vsftpd/ssl/vsftpd_key.pem#开启虚拟用户认证,需添加以下两行guest_enable=YESguest_username=vuser  #开启来宾帐户,映射为vuser用户#虚拟用户实现不同的权限user_config_dir=/etc/vsftpd/vusers_dir  #需要关闭所有anon的功能#mkidr /etc/vsftpd/vusers_dir/#cd /etc/vsftpd/vusers_dir#touch tony#vim tonyanon_upload_enable=YESanon_mkdir_wirte_enable=YES

共享服务权限:文件系统权限*文件共享权限

FTP安全通信方式:

    ftps:ftp+ssl/tls

    sftp:Openssh,subsystem,sftp(SSH实现)