RHEL6__Linux网络服务轻舞飞扬第三章FTP文件传输服务——理论部分Samba的安全级别有哪几种,作用分别是什么?在Linux中如何访问其他主机的共享资源?如何使共享目录只允许特定的用户才能访问?课程回顾熟悉FTP服务的工作原理学会构建匿名FTP服务器学会构建用户验证的FTP服务器技能展示本章结构FTP文件传输服务匿名访问的FTP服务用户验证的FTP服务FTP服务概述vsftpd的配置文件建立虚拟用户的账号数据库为vsftpd服务添加虚拟用户支持vsftpd服务基础基于系统用户的FTP服务基于虚拟用户的FTP服务vsftpd服务的其他常用配置FTP连接及传输模式控制连接:TCP21,用于发送FTP命令信息数据连接:TCP20,用于上传、下载数据数据连接的建立类型:主动模式:服务端从20端口主动向客户端发起连接被动模式:服务端在指定范围内某个端口被动等待客户端连接FTP传输模式文本模式:ASCII模式,以文本序列传输数据二进制模式:Binary模式,以二进制序列传输数据FTP服务概述3-1FTP用户的类型匿名用户:anonymous或ftp本地用户:帐号名称、密码等信息保存在passwd、shadow文件中虚拟用户:使用独立的帐号/密码数据文件常见的FTP服务器程序IIS、Serv-Uwu-ftpd、Proftpdvsftpd(VerySecureFTPDaemon)FTP服务概述3-2常见的FTP客户端程序ftp命令CuteFTP、FlashFXP、LeapFTP、Filezillagftp、kuftpFTP服务概述3-3vsftpd软件包官方站点:主程序:/usr/sbin/vsftpd服务名:vsftpd用户控制列表文件/etc/vsftpd/ftpusers/etc/vsftpd/user_list主配置文件/etc/vsftpd/vsftpd.confvsftpd服务基础谁在使用vsftpd?常用的全局配置项listen=YES:是否以独立运行的方式监听服务listen_address=192.168.4.1:设置监听的IP地址listen_port=21:设置监听FTP服务的端口号write_enable=YES:是否启用写入权限download_enable=YES:是否允许下载文件userlist_enable=YES:是否启用user_list列表文件userlist_deny=YES:是否禁用user_list中的用户max_clients=0:限制并发客户端连接数max_per_ip=0:限制同一IP地址的并发连接数主配置文件vsftpd.conf3-1常用的匿名FTP配置项anonymous_enable=YES:启用匿名访问anon_umask=022:匿名用户所上传文件的权限掩码anon_root=/var/ftp:匿名用户的FTP根目录anon_upload_enable=YES:允许上传文件anon_mkdir_write_enable=YES:允许创建目录anon_other_write_enable=YES:开放其他写入权anon_max_rate=0:限制最大传输速率(字节/秒)主配置文件vsftpd.conf3-2常用的本地用户FTP配置项local_enable=YES:是否启用本地系统用户local_umask=022:本地用户所上传文件的权限掩码local_root=/var/ftp:设置本地用户的FTP根目录chroot_local_user=YES:是否将用户禁锢在主目录local_max_rate=0:限制最大传输速率(字节/秒)主配置文件vsftpd.conf3-31.准备匿名FTP访问的目录使匿名用户FTP对该目录有写入权限2.开放匿名用户配置,并启动vsftpd服务构建可匿名上传的FTP服务器[root@localhost~]#chownftp/var/ftp/pub/[root@localhost~]#ls-ld/var/ftp/pub/drwxr-xr-x4ftproot409602-2410:36/var/ftp/pub/[root@localhost]#vi/etc/vsftpd/vsftpd.confanonymous_enable=YESlocal_enable=NOwrite_enable=YESanon_umask=022anon_upload_enable=YESanon_mkdir_write_enable=YESdirmessage_enable=YES允许匿名访问开放服务器的写权限允许匿名上传允许匿名用户创建目录[root@localhostvsftpd]#servicevsftpdstart为vsftpd启动vsftpd:[确定][root@localhostvsftpd]#netstat-anpt|grepvsftpdtcp000.0.0.0:210.0.0.0:*LISTEN8989/vsftpd使用ftp客户端程序访问测试测试匿名FTP服务器[root@localhost~]#ftp192.168.4.11Connectedto192.168.4.11.220(vsFTPd2.0.5)530PleaseloginwithUSERandPASS.530PleaseloginwithUSERandPASS.KERBEROS_V4rejectedasanauthenticationtypeName(192.168.4.11:root):ftp331Pleasespecifythepassword.Password:230Loginsuccessful.RemotesystemtypeisUNIX.Usingbinarymodetotransferfiles.ftp匿名访问的用户名登录后的操作提示符1.修改vsftpd.conf配置文件启用本地用户访问结合user_list文件灵活控制用户访问2.重新加载vsftpd配置构建本地用户验证的FTP服务器[root@localhost~]#vi/etc/vsftpd/vsftpd.conflocal_enable=YESwrite_enable=YESlocal_umask=077chroot_local_user=YES……[root@localhost~]#servicevsftpdreload关闭vsftpd:[确定]为vsftpd启动vsftpd:[确定][root@localhost~]#vi/etc/vsftpd/user_listlayavankohunter[root@localhost]#vi/etc/vsftpd/vsftpd.conf……userlist_enable=YESuserlist_deny=NO[root@localhost]#servicevsftpdreload启用user_list用户列表1.修改vsftpd服务的监听地址、端口2.允许使用FTP服务器的被动模式vsftpd服务的其他常用配置[root@localhost~]#vi/etc/vsftpd/vsftpd.conf……listen=YESlisten_address=192.168.4.11listen_port=2121[root@localhost]#vi/etc/vsftpd/vsftpd.conf……pasv_enable=YESpasv_min_port=24500pasv_max_port=24600设置监听地址和端口启用被动模式限制FTP连接的并发数、传输速率vsftpd服务的其他常用配置[root@localhost]#vi/etc/vsftpd/vsftpd.confmax_clients=20max_per_ip=2anan_max_rate=50000local_max_rate=200000单位是kB/s请思考:FTP服务使用的端口号是多少?配置vsftpd服务器时,如何禁用本地系统用户?如何限制用户通过FTP下载的最大速率?小结创建账号数据1.建立虚拟FTP用户的帐号数据库文件2.创建FTP根目录及虚拟用户映射的系统用户3.建立支持虚拟用户的PAM认证文件添加虚拟用户支持4.在vsftpd.conf文件中添加支持配置5.为个别虚拟用户建立独立的配置文件启动服务并测试6.重新加载vsftpd配置7.使用虚拟FTP账户访问测试构建基于虚拟用户的FTP服务1.建立虚拟FTP用户的帐号数据库文件建立虚拟用户的账户名、密码列表奇数行为帐号名偶数行为上一行中帐号的密码转化为BerkeleyDB格式的数据文件db_load转换工具需安装db4-utils软件包创建账号数据2-1[root@localhost]#vi/etc/vsftpd/vusers.listmike123john456[root@localhost]#cd/etc/vsftpd/[root@localhostvsftpd]#db_load-T-thash-fvusers.listvusers.db[root@localhostvsftpd]#filevusers.dbvusers.db:BerkeleyDB(Hash,version8,nativebyte-order)[root@localhostvsftpd]#chmod600/etc/vsftpd/vusers.*[root@localhostvsftpd]#ls-lh/etc/vsftpd/vusers.*-rw-------1rootroot12K02-2608:51/etc/vsftpd/vusers.db-rw-------1rootroot1802-2608:48/etc/vsftpd/vusers.list2.创建FTP根目录及虚拟用户映射的系统用户3.建立支持虚拟用户的PAM认证文件创建账号数据2-2[root@localhost]#useradd-d/var/ftproot-s/sbin/nologinvirtual[root@localhost]#chmod755/var/ftproot/[root@localhost]#vi/etc/pam.d/vsftpd.vu#%PAM-1.0authrequiredpam_userdb.sodb=/etc/vsftpd/vusersaccountrequiredpam_userdb.sodb=/etc/vsftpd/vusers对应第1步建立的vusers.db文件4.在vsftpd.conf文件中添加支持配置添加虚拟用户支持2-1[root@localhost~]#vi/etc/vsftpd/vsftpd.conf……local_enable=YESwrite_enable=YESanon_umask=022guest_enable=YESguest_username=virtualpam_service_name=vsftpd.vu启用用户映射功能指定映射的系统用户名称指定新的PAM认证文件5.为不同的虚拟用户建立独立的配置文件在vsftpd.conf文件中添加用户配置目录支持user_config_dir=/etc/vsftpd/vusers_dir为用户mike、john建立独立的配置目录及文件配置文件名与用户名相同添加虚拟用户支持2-2[root@localhost]#vi/etc/vsftpd/vsftpd.conf……user_config_dir=/etc/vsftpd/vusers_dir[root@localhost~]#mkdir/etc/vsftpd/vusers_dir/[root@localhost~]#