ftp服务器 vsftpd搭建和配置以及虚拟用户的设置
tp: File Transfer Protocol 应用层协议:tcp, 21/tcp C/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-ftpd proftpd pureftp vsftpd: Very Secure ServU Client: ftp lftp, lftpget wget, curl filezilla gftp(Linux GUI) flashfxp cuteftp 响应码: 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=YES anon_upload_enable=YES anon_mkdir_write_enable=YES anon_ohter_write_enable=YES 系统用户的配置: local_enable=YES write_enable=YES local_umask=022 禁锢所有的ftp本地用户于其家目录中: chroot_local_user=YES 禁锢文件中指定的ftp本地用户于其家目录中: chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list 日志: xferlog_enable=YES xferlog_std_format=YES xferlog_file=/var/log/xferlog 改变上传文件的属主: chown_uploads=YES chown_username=whoever vsftpd使用pam完成用户认证,其用到的pam配置文件: pam_service_name=vsftpd 是否启用控制用户登录的列表文件 userlist_enable=YES userlist_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, curl ftp协议是明文: ftps: SSL sftp: SSH
为什么要坚持,想一想当初!