FTP:文件传输协议
       登录方式: 匿名anonymous      真实账号real     虚拟账号guest
       监听端口:主动模式   21(udp) 20(tcp)
       模式:
              主动模式 服务器端连接客户端   打开20端口提供client数据下载
              被动模式  客户端来连接服务端  打开大于1023的随机端口等待client数据下载
                            服务端发送(112,3)[端口号为:112*256+3]给客户端
              被动主动模式的选择:
                     服务端允许被动连接,将取决于客户端,
                     主动模式服务端发送:port命令实现主动
                     被动模式服务端发送:pasv命令实现被动
             
       服务器组件:windows
                     Serv-U  IIS   Filexilla
                  linux
                     vsftpd(very secure ftp)轻量级的
                     proftpd  功能强大 磁碟配额 web界面 在线注册
                     pureftp
                     wu-ftpd 出现的很早
       vsftpd配置文件:/etc/vsftpd/vsftpd.conf  权限:600
                     /etc/vsftpd/ftpusers 不允许本机登陆的用户 权限600
                     /etc/pam.d/vstpd  认证文件
              端口: 21/tcp(ftp)  20/tcp (ftp-data)<---主动模式
             服务脚本: /etc/init.d/vsftpd
             守护进程: /usr/sbin/vsftpd
       vfstpd 接受tcpwrapper的控制 iptables的控制(加载ip_namt_ftp ip_conntrack_ftp
       vsftpd的根目录: /var/ftp/
       ftp配置:  关闭selinux
                     yum install vsftpd
                     service vsftpd restart
                     chkconfig vsftpd on
                 vim /etc/vsftpd/vsftpd.conf 格式很严格
                     anonymous_enable=YES 允许匿名登陆  NO 不允许
                            匿名登录时是以安装自动生成的ftp用户登陆的 匿名登陆被映射成ftp用户
                     local_enable=YES 允许本地系统用户登录
                            lftp -u terra 192.168.0.124 登录的为自己的家目录
                     write_enable=YES 允许本地用户有上传文件
                            匿名用户不能上传文件
                     local_umask=022  本地用户上传文件掩码为022 默认077
                     anon_upload_enable=YES 允许匿名用户上传文件 不能创建目录
                            允许匿名上传还要设置:chown ftp:ftp /var/ftp/incoming(创建)
                                   或者做acl setfacl -m u:ftp:rwx /var/ftp/incoming
                            incoming中上传
                     anon_mkdir_write_enable=YES  允许匿名用户创建目录  不能删除
                     anon_other_write_enable=YES 设置后就可以删除了
                     dirmessage_enable=YES 打开欢迎信息目录 设定打开具体目录显示信息
                     message_file=.message 该文件可以在设定目录下创建
                     xferlog_enable=YES 打开传输文件 与下面连用
                     xferlog_file=/var/log/vsftpd.log
                     xferlog_std_format=YES 使用标准的日志类型
                     log_ftp_protocol=YES   登录进ftp会记录用户的执行的命令 但是                                                      xferlog_std_format=NO
                     chroot_local_user=YES 禁锢所有用户在自己家目录下
                     禁锢具体用户:
                     chroot_list_enable=YES
                     chroot_list_file=/etc/vsftpd/chroot_list
                                   chroot_list中添加用户名即可
                     匿名用户上传文件的属主属组改为root不是ftp
                     chown_uploads=YES
                     chown_username=root
                     ftpd_banner= 定义登录ftp欢迎信息
                     max_clients= 定义连接ftp的做大用户数
                     max_per_ip=2 每个用户同时打开的并发下载数
                     anon_max_rate=10240 匿名用户最大传输速率10kbps  单位字节
                     local_max_rate=   本地用户最大传输速率                   
      
在打开selinux时允许上传文件:
              设定bool值:
                            getsebool -a | grep ftp
                            setsebool -P allow_ftp_anon_write 1  打开匿名上传权限
                            setsebool -P ftp_home_dir 1 打开家目录
vsftpd的虚拟用户:    基于文件的
                     基于mysql
 
vsftpuser_list文件:文件中定义的用户允许登陆
                     userlist_enable=YES
                     userlist_deny=NO 允许userlist中列表的用户登陆 YES 不在列表的用户可以在的拒绝
                    
ftpssl数据加密认证:ftps
                     tcpdump -i eth0 -A 抓包查看
              坐自签的证书
                     mkdir /etc/vsftpd/ssl
                     cd /etc/vftpd/ssl
                     openssl genrsa 1024 > ftp_key.pem
                     openssl req -new -key ftp_key.pem -x509 -out ftp_cert.pem -days 3600
                     chmod 600 ./*
                     vim /etc/vsftpd/vsftpd.conf 添加
                        ssl_enable=YES
                        ssl_tlsvl=YES
                        ssl_sslv2=YES
                        ssl_sslv3=YES
                        allow_anon_ssl=NO
                        force_local_data_ssl=YES
                        force_local_logins_ssl=YES
                        rsa_cert_file=/etc/vsftpd/ssl/ftp_cert.pem
                        rsa_private_key_file=/etc/vsftpd/ssl/ftp_key.pem
                     service vsftpd restart
                     测试:物理机安装filezilla或者flashfxp测试