tp: File Transfer Protocol应用层协议:tcp, 21/tcpC/S:Client: 程序Server: 程序数据:命令连接:文件管理类命令,始终在线的连接数据连接:数据传输,按需创建及关闭的连接数据传输格式:文本传输二进制传输主动:由服务器创建连接命令:Client:50000 --> Server: 21数据:Server: 20/tcp --> Client: 50000+1被动:由客户端创建连接 命令:Client:50000 --> Server: 21数据:Client:50000+1 --> Server: 随机端口C/S:Server:wu-ftpdproftpdpureftpvsftpd: Very SecureServUClient:ftplftp, lftpgetwget, curlfilezillagftp(Linux GUI)flashfxpcuteftp响应码:1xx: 信息2xx: 成功类的状态码3xx: 提示需进一步提供补充类信息的状态码4xx: 客户端错误5xx: 服务端错误用户认证:虚拟用户:仅用于访问某特定服务中的资源nsswitch: network server switch, 名称解析框架配置文件:/etc/nsswitch.conf模块:/lib64/libnss*, /usr/lib64/libnss*pam: pluggable authentication module, 用户认证框架模块:/lib64/security/配置文件:/etc/pam.conf, /etc/pam.d/*系统用户:匿名用户:CentOS 6.5: vsftpd用户认证配置文件:/etc/pam.d/vsftpd服务脚本:/etc/rc.d/init.d/vsftpd配置文件目录:/etc/vsftpd主配置文件:vsftpd.conf匿名用户(映射为ftp用户)共享资源位置:/var/ftp系统用户通过ftp访问的资源的位置:用户自己的家目录虚拟用户通过ftp访问的资源的位置:给虚拟用户指定的映射成为的系统用户的家目录匿名用户的配置:anonymous_enable=YESanon_upload_enable=YESanon_mkdir_write_enable=YESanon_ohter_write_enable=YES系统用户的配置:local_enable=YESwrite_enable=YESlocal_umask=022禁锢所有的ftp本地用户于其家目录中:chroot_local_user=YES禁锢文件中指定的ftp本地用户于其家目录中:chroot_list_enable=YESchroot_list_file=/etc/vsftpd/chroot_list日志:xferlog_enable=YESxferlog_std_format=YESxferlog_file=/var/log/xferlog改变上传文件的属主:chown_uploads=YESchown_username=whoevervsftpd使用pam完成用户认证,其用到的pam配置文件:pam_service_name=vsftpd是否启用控制用户登录的列表文件userlist_enable=YESuserlist_deny=YES|NO默认文件为/etc/vsftpd/user_list连接限制:max_clients: 最大并发连接数;max_per_ip: 每个IP可同时发起的并发请求数;传输速率:anon_max_rate: 匿名用户的最大传输速率, 单位是“字节/秒”;local_max_rate: 本地用户。。。虚拟用户:所有的虚拟用户会被统一映射为一个指定的系统账号,访问的共享位置即为此系统账号的家目录;各虚拟用户可被赋予不同的访问权限;通过匿名用户的权限控制参数进行指定;虚拟用户账号的存储方式:文件:编辑文件奇数行为用户名偶数行为密码此文件需要被编码为hash格式;关系型数据库中的表中:即时查询数据库完成用户认证;mysql库,pam要依赖于pam_mysql# yum -y install pam_mysql补充:axel, lftpget, wget, curlftp协议是明文:ftps: SSLsftp: SSH