本文共 3247 字,大约阅读时间需要 10 分钟。
第一部分:理论 一.FTP服务器基本原理 1.基本概念:ftp文件传输协议:file transport protocol 2.传输模式:主动模式和被动模式 3.使用端口 A. 主动模式:命令控制:21 数据传输:20 B. 被动模式:命令控制:21 数据传输:1024之后的随机端口 二.常用FTP服务器软件 Windows下:iis serverU Linux下:wu-ftp proftp vsftp 三.常用的服务器端软件 vsftp——本章的重中之重:very security file transport protocol 四.常用ftp客户端软件 1.特点: FTP客户端软件的特点 运行在图形环境下的窗口程序 可使用鼠标和通过菜单进行操作 用户界面友好,操作方便 2.:常用FTP客户端软件 CuteFTP, leapftp, flashxp是Windows下流行的商业软件 Filezilla是Windows下运行的开源软件 gftp是Linux中GNOME桌面环境中运行的FTP客户端软件,是GNOME的重要组成部分 五.vsftpd.conf中常用的配置参数: anonymous_enable=YES 启用匿名用户 local_enable=YES 启用本地用户 write_enable=YES 启用本地用户写权限 local_umask=022 本地用户生成文件的掩码(上传的文件权限是644) 如果上传文件夹总权限777;文件666(可以用file_open_mode=0777) dirmessage_enable=YES dirmessage_enable设置为“YES”时当切换到FTP服务器中的某个目录时,将显示该目录下的.message隐含文件的内容 xferlog_enable=YES xferlog_enable设置为“YES”时FTP服务器将启用上传和下载日志 (日志文件:/var/log/xferlog) connect_from_port_20=YES connect_from_port_20设置为“YES”时FTP服务器将启用FTP数据端口的连接请求 xferlog_std_format=YES xferlog_std_format设置为“YES”时FTP服务器将使用标准的ftpd xferlog日志格式 pam_service_name=vsftpd pam_service_name设置PAM认证服务的配置文件名称 userlist_enable=YES userlist_enable设置为“YES”时FTP服务器将检查userlist_file设置文件中指定的用户是否可以访问vsftpd服务器 (userlist_enable=YES userlist_deny=NO 表示vsftpd.user_list中用户可以登录) (userlist_enable=YES userlist_deny=YES 表示改文件中用户不可以登录) (默认情况下,userlist_deny=yes 也就说,写到vsftpd.user_list里面的用户不能登录) listen=YES 设置为yes时,ftp以独立方式启动,否则以超级进程的方式启动 tcp_wrappers=YES tcp_wrappers设置为“YES”时FTP服务器将使用tcp_wrappers作为主机访问控制方式 chroot_local_user=YES 限制本地用户禁锢在宿主目录里面 max_clients=100 最大客户端 max_per_ip=5 每个ip的最大连接数 local_max_rate=500000 本地用户最大传输速率 (单位byte) anon_max_rate=200000 匿名用户最大传输速率 listen_port=2121 更改ftp默认端口号 六./etc/vsftpd.ftpusers用于保存不允许进行FTP登录的本地用户帐号 七./etc/vsftpd.user_list文件具有对vsftpd服务器更灵活的用户访问控制 如果想让该文件中的用户禁止登陆ftp服务器,则 userlist_enable=YES userlist_deny=YES 如果想让该文件中的用户允许登陆ftp服务器,则 userlist_enable=YES userlist_deny=NO 八.vsftpd中支持的用户类型 1.匿名用户:匿名用户名称:ftp和anonymous 2.系统用户:系统当中实际存在的用户 3.虚拟用户:非系统用户 第二部分:实验 实验一:测试匿名用户和系统用户 1. 安装ftp软件包:rpm –ivh vsftpd…… 2. 启动ftp服务:service vsftpd start 3. 在客户端登陆ftp测试。 A. 在cmd里面用测试命令: ftp 服务器ip B. 用客户端登陆测试 windows客户端:flashxp, cuteftp, leapftp Linux 客户端:gftp(先安装gftp软件包) 试验二:ftp虚拟用户的配置 1. 建立虚拟用户口令库文件(奇数行是用户名,偶数行是密码) 进入/etc/vsftpd 目录,然后新建文件benet 2. 生成vsftpd的认证文件(需要安装db4-util书上没介绍) db_load -T -t hash -f /etc/vsftpd/benet /etc/vsftpd/benet.db 3. 建立虚拟用户所需的PAM配置文件(/etc/pam.d/) 进入/etc/pam.d,然后建立文件ftp,内容如下 auth required /lib/security/pam_userdb.so db=/etc/vsftpd/benet(库名) account required /lib/security/pam_userdb.so db=/etc/vsftpd/benet(库名) 4. 建立虚拟用户所需要的系统用户 useradd aa -d /virtual(虚拟用户主目录) -s /sbin/nologin 5. 建立虚拟用户所要访问的目录并设置相应权限(修改主目录权限700) chmod 700 -R /virtual 6. 设置/etc/vsftpd/vsftpd.conf配置文件,在文档末尾添加如下内容: guest_enable=YES guest_username=aa(新建的系统用户) pam_service_name=ftp(验证模块名称) user_config_dir=/etc/vsftpd_user_conf 虚拟用户权限的配置目录 7. 进入/etc/vsftpd_user_conf新建文件aa,bb。这两个文件就是aa和bb用户的权限配置文件,下面的参数就是具体的可能用的参数 anon_world_readable_only=NO 表示用户可以浏览FTP目录和下载文件 anon_upload_enable=YES 表示用户可以上传文件 anon_mkdir_write_enable=YES 表示用户具有建立目录的权限,不能删除目录 anon_other_write_enable=YES 表示用户具有文件改名和删除文件的权限 local_root=/ 指定虚拟用户的目录 8 . 给aa用户浏览和下载的权限,给bb用户浏览,上传,下载,删除的权限。 补充实验 1. 如何实现匿名用户上传。 在/var/ftp/下新建目录来实现上传。 2. 如何限制本地任意切换主目录。 chroot_local_user = YES
本文转自 gehailong 51CTO博客,原文链接:http://blog.51cto.com/gehailong/263891,如需转载请自行联系原作者