CentOS 6 vsftp详解.doc_第1页
CentOS 6 vsftp详解.doc_第2页
CentOS 6 vsftp详解.doc_第3页
CentOS 6 vsftp详解.doc_第4页
CentOS 6 vsftp详解.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

CentOS 6.3 深入vsftpd的高级应用vsftp服务上产、下载、创建、删除、重命名大纲:一、匿名用户二、系统用户三、虚拟用户-ftp ?Commands may be abbreviated. Commands are:!debugmdirsendportsite$dir mgetPutsize accountdisconnectmkdirpwd statusAppendexitmlsquitstructasciiform modeQuotesystembellgetmodtimerecvsuniqueBinaryglobmputregettenexbyehash newerrstatustickcasehelpnmaprhelp tracecdidlenlistrenametypecdup imagentransresetuserchmodlcdopen restartumaskcloselspromptrmdirverbosecrmacdefpassiverunique?deletemdelete proxysend常用的命令!: 退出quit: 退出exit: 退出cd: 在登陆vsftpd后,切换目录lcd: 切换系统上目录delete:删除文件,文件rmdir: 删除目录,目录put: 上传;一次上传一个文件mput: 上传;一次上传多个文件get: 下载;一次下载一个文件mget: 下载:一次下载多个文件rename:重命名mkdir: 创建目录 dir: 查看目录列表ls: 查看目录列表#参数禁用匿名用户和系统用户访问anonymous_enable=NOlocal_enable=NO#访问结果如下rootlocalhost vsftpd# ftp localhostTrying :1.ftp: connect to address :1拒绝连接Trying .Connected to localhost ().500 OOPS: vsftpd: both local and anonymous access disabled!ftp =创建目录权限=首先来看匿名用户1、在匿名用户的根目录下创建一个子目录rootvsftpd # mkdir /var/ftp/uploadrootvsftpd # ll -d /var/ftp/upload/drwxr-xr-x 2 root root 4096 7月 19 19:11 /var/ftp/upload/2、匿名用户在upload目录中第一次创建test目录rootvsftpd # ftp localhostTrying :1.ftp: connect to address :1拒绝连接Trying .Connected to localhost ().220 (vsFTPd 2.2.2)Name (localhost:root): ftp331 Please specify the password.Password:230 Login successful.Remote system type is UNIX.Using binary mode to transfer files.ftp dir227 Entering Passive Mode (127,0,0,1,134,99).150 Here comes the directory listing.drwxr-xr-x 2 0 0 4096 Mar 01 2013 pubdrwxr-xr-x 2 0 0 4096 Jul 19 11:11 upload226 Directory send OK.ftp cd upload250 Directory successfully changed.ftp mkdir test #权限被拒绝,错误代码550550 Permission denied.3、修改vsftpd的配置文件,增加创建目录的权限rootvsftpd vsftpd# vim vsftpd.conf anon_mkdir_write_enable=YES4、修改配置文件后,每次都要重新载入配置文件rootvsftpd vsftpd# service vsftpd restart关闭 vsftpd: 确定为 vsftpd 启动 vsftpd: 确定5、匿名用户第二次登录并在upload目录中创建test目录rootvsftpd # ftp localhostTrying :1.ftp: connect to address :1拒绝连接Trying .Connected to localhost ().220 (vsFTPd 2.2.2)Name (localhost:root): ftp331 Please specify the password.Password:230 Login successful.Remote system type is UNIX.Using binary mode to transfer files.ftp cd upload250 Directory successfully changed.ftp mkdir test #提示创建目录操作失败,错误代码依旧是550550 Create directory operation failed.注释:同样是错误代码550,但是代表的意义是不一样的。第一个500:提示权限被拒绝,应该属于配置文件层的第二个500:提示创建目录操作失败,应该属于文件层的结论:应该属于upload目录的权限问题,查看upload目录的权限,宿主宿组都是root并且其它用户没有写入的权限rootvsftpd # ll -d /var/ftp/upload/drwxr-xr-x 2 root root 4096 7月 19 19:11 /var/ftp/upload/赋予其它用户对upload目录有写入的权限rootvsftpd # chmod o+w /var/ftp/upload/rootvsftpd # ll -d /var/ftp/upload/drwxr-xrwx 2 root root 4096 7月 19 19:11 /var/ftp/upload/6、匿名用户第三次登陆并在upload目录中创建test目录ftp mkdir test257 /upload/test createdftp pwd257 /uploadftp dir227 Entering Passive Mode (127,0,0,1,171,81).150 Here comes the directory listing.drwx- 2 14 50 4096 Jul 19 11:23 test226 Directory send OK.总结:针对vsftpd服务来说;权限=vsftpd配置文件的权限+根目录的是否有写入权限-小小的发现-在登陆状态下,级联创建目录后,虽然目录也能创建成功,但是打开却失败,如下rootvsftpd # ftp localhostTrying :1.ftp: connect to address :1拒绝连接Trying .Connected to localhost ().220 (vsFTPd 2.2.2)Name (localhost:root): ftp331 Please specify the password.Password:230 Login successful.Remote system type is UNIX.Using binary mode to transfer files.ftp cd upload250 Directory successfully changed.ftp dir227 Entering Passive Mode (127,0,0,1,178,230).150 Here comes the directory listing.-rw- 1 14 50 16558 Jul 19 16:49 Ins.log226 Directory send OK.ftp mkdir ftproot257 /upload/ftproot createdftp dir227 Entering Passive Mode (127,0,0,1,191,8).150 Here comes the directory listing.-rw- 1 14 50 16558 Jul 19 16:49 Ins.logdrwx- 2 14 50 4096 Jul 19 17:00 ftproot226 Directory send OK.ftp cd ftproot250 Directory successfully changed.ftp pwd257 /upload/ftprootftp mkdir test257 /upload/ftproot/test createdftp dir 227 Entering Passive Mode (127,0,0,1,233,207).150 Here comes the directory listing.226 Transfer done (but failed to open directory). #传输成功,但是打开目录失败解决办法:首先修改配置文件,然后重启vsftpd服务,最后再次查看修改配置文件,如下rootvsftpd # vim /etc/vsftpd/vsftpd.conf anon_world_readable_only=NO# service vsftpd restart#ftp dir ftproot #查看成功227 Entering Passive Mode (127,0,0,1,102,170).150 Here comes the directory listing.drwx- 2 14 50 4096 Jul 19 17:00 test226 Directory send OK.=上传权限=1、上传本地文件;测试rootvsftpd # ll总用量 36-rw-. 1 root root 981 6月 30 21:13 anaconda-ks.cfg-rw-r-r-. 1 root root 16558 6月 30 21:13 install.log-rw-r-r-. 1 root root 3482 6月 30 21:10 install.log.syslogdrwxr-xr-x 2 root root 4096 7月 19 18:53 vsftpdrootvsftpd # ftp localhostTrying :1.ftp: connect to address :1拒绝连接Trying .Connected to localhost ().220 (vsFTPd 2.2.2)Name (localhost:root): ftp331 Please specify the password.Password:230 Login successful.Remote system type is UNIX.Using binary mode to transfer files.ftp cd upload250 Directory successfully changed.ftp put install.log #上传本地install.log文件,权限被拒绝local: install.log remote: install.log227 Entering Passive Mode (127,0,0,1,95,49).550 Permission denied.权限被拒绝,很多都是因为配置文件的问题2、修改配置文件并重启vsftpd服务rootvsftpd # vi /etc/vsftpd/vsftpd.conf anon_upload_enable=YESrootvsftpd # service vsftpd restart关闭 vsftpd: 确定为 vsftpd 启动 vsftpd: 确定3、再次登录,上传测试文件rootvsftpd # ftp localhostTrying :1.ftp: connect to address :1拒绝连接Trying .Connected to localhost ().220 (vsFTPd 2.2.2)Name (localhost:root): ftp331 Please specify the password.Password:230 Login successful.Remote system type is UNIX.Using binary mode to transfer files.ftp cd upload250 Directory successfully changed.ftp put install.loglocal: install.log remote: install.log227 Entering Passive Mode (127,0,0,1,26,235).150 Ok to send data.226 Transfer complete.16558 bytes sent in 0.0755 secs (219.29 Kbytes/sec)ftp dir227 Entering Passive Mode (127,0,0,1,169,5).150 Here comes the directory listing.-rw- 1 14 50 16558 Jul 19 11:33 install.logdrwx- 2 14 50 4096 Jul 19 11:23 test=删除|重命名权限=rootvsftpd vsftpd# ftp localhostTrying :1.ftp: connect to address :1拒绝连接Trying .Connected to localhost ().220 (vsFTPd 2.2.2)Name (localhost:root): ftp331 Please specify the password.Password:230 Login successful.Remote system type is UNIX.Using binary mode to transfer files.ftp cd upload250 Directory successfully changed.ftp dir227 Entering Passive Mode (127,0,0,1,221,162).150 Here comes the directory listing.-rw- 1 14 50 16558 Jul 19 11:33 install.logdrwx- 2 14 50 4096 Jul 19 11:23 test226 Directory send OK.ftp rename install.log Ins.log #将文件install.log重命名为Ins.log 成功350 Ready for RNTO.250 Rename successful.ftp dir227 Entering Passive Mode (127,0,0,1,203,30).150 Here comes the directory listing.-rw- 1 14 50 16558 Jul 19 11:33 Ins.logdrwx- 2 14 50 4096 Jul 19 11:23 test226 Directory send OK.ftp rename test FileTest #将目录test重命名为FileTest 成功350 Ready for RNTO.250 Rename successful.ftp dir227 Entering Passive Mode (127,0,0,1,237,149).150 Here comes the directory listing.drwx- 2 14 50 4096 Jul 19 11:23 FileTest-rw- 1 14 50 16558 Jul 19 11:33 Ins.log226 Directory send OK.ftp delete Ins.log #删除文件Ins.log 使用delete 成功250 Delete operation successful.ftp dir227 Entering Passive Mode (127,0,0,1,41,156).150 Here comes the directory listing.drwx- 2 14 50 4096 Jul 19 11:23 FileTestftp delete FileTest #delete无法针对目录删除,只能针对文件550 Delete operation failed.ftp rmdir FileTest #rmdir是针对目录删除的250 Remove directory operation successful.ftp dir227 Entering Passive Mode (127,0,0,1,197,212).150 Here comes the directory listing.-rw- 1 14 50 16558 Jul 19 16:49 Ins.log226 Directory send OK.ftp =下载权限=1、登录并下载文件rootvsftpd mnt# ftp localhostTrying :1.ftp: connect to address :1拒绝连接Trying .Connected to localhost ().220 (vsFTPd 2.2.2)Name (localhost:root): ftp331 Please specify the password.Password:230 Login successful.Remote system type is UNIX.Using binary mode to transfer files.ftp cd upload250 Directory successfully changed.ftp dir227 Entering Passive Mode (127,0,0,1,103,89).150 Here comes the directory listing.drwx- 2 14 50 4096 Jul 19 11:23 FileTest-rw- 1 14 50 805 Jul 19 11:48 fstabftp get FileTest #文件打开失败,还是权限问题local: FileTest remote: FileTest227 Entering Passive Mode (127,0,0,1,61,141).550 Failed to open file.2、修改配置文件,添加下载权限并重启服务rootvsftpd mnt# vim /etc/vsftpd/vsftpd.conf anon_world_readable_only=NOrootvsftpd mnt# service vsftpd restart关闭 vsftpd: 确定为 vsftpd 启动 vsftpd: 确定3、再次登录,下载 成功rootvsftpd mnt# ftp localhostTrying :1.ftp: connect to address :1拒绝连接Trying .Connected to localhost ().220 (vsFTPd 2.2.2)Name (localhost:root): ftp331 Please specify the password.Password:230 Login successful.Remote system type is UNIX.Using binary mode to transfer files.ftp cd upload250 Directory successfully changed.ftp dir227 Entering Passive Mode (127,0,0,1,139,108).150 Here comes the directory listing.drwx- 2 14 50 4096 Jul 19 11:23 FileTest-rw- 1 14 50 805 Jul 19 11:48 fstab226 Directory send OK.ftp mget FileTest fstabmget fstab? yes227 Entering Passive Mode (127,0,0,1,157,240).150 Opening BINARY mode data connection for fstab (805 bytes).226 Transfer complete.805 bytes received in 2.8e-05 secs (28750.00 Kbytes/sec)ftp !rootvsftpd mnt# ll #下载成功总用量 4-rw-r-r- 1 root root 805 7月 19 19:56 fstab=vsftpd.conf配置文件概述=anonymous_enable=YES #允许匿名用户访问(yes,为允许,no为不允许)local_enable=NO #是否禁用本地用户(设置为no是表示禁用,yes表示不禁用)write_enable=YES #允许开放写的权限anon_umask=022 #设置匿名用户上传建立文件时的权限掩码anon_upload_enable=YES #允许匿名上传文件anon_mkdir_write_enable=YES #允许匿名用户创建目录dirmessage_enable=YES #用户切换进入目录时显示.message(如果存在)文件的内容xferlog_enable=YES #开启xferlog日志,默认记录到/var/log/xferlog)connect_from_port_20=YES #连接控制端口为20xferlog_std_format=YES #启用标准xferlog的日志格式,若禁用此项,将使用vsftpd自己的日志格式listen=YES #是否以独立运行的方式监听服务pam_service_name=vsftpd #设root置用于用户认证的PAM文件位置(/etc/pam.d/目录中对应的文件名)userlist_enable=NO #未启用本地用户时,可以将用户列表功能禁用tcp_wrappers=YES #是否开启tcp_wrappers主机访问控制chroot_local_user=YES #是否将FTP本地 用户禁锢在宿主目录中no_anon_password=YES #允许匿名访问不需要密码(加也可以,不加也可以)可新添加的你们用户的设置值anon_world_readable_only=YES #仅允许匿名用户具有下载可读文件的权限)anon_other_write_enable=YES #是否允许匿名用户有其它写入权限,如对文件改名,覆盖以及删除(此选项慎用)anon_world_readable_only=NOanon_upload_enable=YESdownload_enable=NOanon_mkdir_write_enable=YESanon_other_write_enable=YESlocel_root=/home/ftpsite/mike=本地用户=本地用户需要结合ftpusers和user_list这两个文件ftpusers:该文件中包含的用户帐户将被禁止登入vsftpd服务器,不管用户是不是在user_list文件出现user_list:该文件中包含的用户帐户可能被禁止登入vsftpd服务器,也可能被允许登入,具体要看userlist_enable(是否启用user_list用户列表文件)的配置(配置成YES,则启用,NO则不启用),当userlist_enable=YES,之后看userlist_deny的配置(为YES则仅禁止用户列表文件的用户账号登入,为NO则仅用户列表文件的用户账号登入)rootvsftpd vsftpd# ll总用量 20-rw- 1 root root 125 3月 1 2013 ftpusers -rw- 1 root root 361 3月 1 2013 user_list-rw- 1 root root 4990 7月 20 01:06 vsftpd.conf-rwxr-r- 1 root root 338 3月 1 2013 vsftpd_conf_migrate.shrootvsftpd # useradd scottrootvsftpd # echo 123 |passwd -stdin scott更改用户 scott 的密码 。passwd: 所有的身份验证令牌已经成功更新。=创建目录权限=1、创建系统账户rootvsftpd # useradd scottrootvsftpd # echo 123 |passwd -stdin scott更改用户 scott 的密码 。passwd: 所有的身份验证令牌已经成功更新。2、系统账户登录测试rootvsftpd # ftp localhostTrying :1.ftp: connect to address :1拒绝连接Trying .Connected to localhost ().220 (vsFTPd 2.2.2)Name (localhost:root): scott331 Please specify the password.Password:230 Login successful.Remote system type is UNIX.Using binary mode to transfer files.ftp pwd257 /home/scottftp cd /mnt/250 Directory successfully changed.ftp pwd257 /mntftp cd /usr/local/250 Directory successfully changed.ftp dir227 Entering Passive Mode (127,0,0,1,217,163).150 Here comes the directory listing.drwxr-xr-x 2 0 0 4096 Sep 23 2011 bindrwxr-xr-x 2 0 0 4096 Sep 23 2011 etcdrwxr-xr-x 2 0 0 4096 Sep 23 2011 gamesdrwxr-xr-x 2 0 0 4096 Sep 23 2011 includedrwxr-xr-x 2 0 0 4096 Sep 23 2011 libdrwxr-xr-x 2 0 0 4096 Sep 23 2011 lib64drwxr-xr-x 2 0 0 4096 Sep 23 2011 libexecdrwxr-xr-x 2 0 0 4096 Sep 23 2011 sbindrwxr-xr-x 5 0 0 4096 Jun 30 13:06 sharedrwxr-xr-x 2 0 0 4096 Sep 23 2011 src226 Directory send OK.注释:想必大家也看到了,系统账户scott登录后,可以任意切换到系统的任意目录,显然这样是十分不安全的,应该做到系统用户登录后锁定到自已的家目录中,禁止任意切换目录路径3、修改配置文件rootvsftpd # vim /etc/vsftpd/vsftpd.conf chroot_local_user=YES4、系统账户再次登录,测试切换目录路径rootvsftpd # ftp localhostTrying :1.ftp: connect to address :1拒绝连接Trying .Connected to localhost ().220 (vsFTPd 2.2.2)Name (localhost:root): scott331 Please specify the password.Password:230 Login successful.Remote system type is UNIX.Using binary mode to transfer files.ftp pwd257 /ftp cd /mnt/550 Failed to change directory. #失败的切换目录ftp pwd257 /ftp dir227 Entering Passive Mode (127,0,0,1,152,129).150 Here comes the directory listing.226 Directory send OK.=vsftpd.conf配置文件概述=anonymous_enable=NO #允许匿名用户访问(yes,为允许,no为不允许)local_enable=YES #是否禁用本地用户 (设置为no是表示禁用,yes表示不禁用)write_enable=YES #允许开放写的权限local_umask=022 #设置用户上传建立文件时的权限掩码dirmessage_enable=YES #用户切换进入目录时显示.message(如果存在)文件的内容xferlog_enable=YES #(开启xferlog日志,默认记录到/var/log/xferlog)connect_from_port_20=YES #连接控制端口为20xferlog_std_format=YES #启用标准xferlog的日志格式,若禁用此项,将使用vsftpd自己的日志格式ascii_upload_enable=YES #允许用户使用Ascii码格式上传文件ascii_download_enable=YES #允许用户使用Ascii码格式下载文件listen=YES #是否以独立运行的方式监听服务pam_service_name=vsftpd #设root置用于用户认证的PAM文件位置(/etc/pam.d/目录中对应的文件名)userlist_enable=NO #是否启用user_list用户列表文件tcp_wrappers=YES #是否开启tcp_wrappers主机访问控制chroot_local_user=YES #是否将FTP本地 用户禁锢在宿主目录中max_clients=20 #限制并发客户连接数最多为20个max_per_ip=2 #限制来自同一个IP的客户连接数为最多2个local_max_rate=102400 #本地下载、上传限速为100KB/spasv_enable=YES #允许被动模式连接pasv_min_port=24500 #设置用于被动连接的服务器最小端口号pasv_max_port=24600 #设置用于被动连接的服务器最大端口号connect_from_port_20=YES #允许服务器主动模式(从20端口建立数据连接)download_enable=YES #是否允许下载文件(建立仅限于浏览和上传的设置为)=虚拟用户=1、安装vsftpd和db4-utilsrootvsftpd # yum -y install vsftpd db4-utils注释:vsftpd是ftp服务的主程序包;db4-utils的客户端命令db_load可以用来生成用户的数据库文件2、建立文本格式的用户名和密码列表文件注释:奇数行为用户,偶数行为密码rootvsftpd # cd /etc/vsftpd/rootvsftpd vsftpd# cat vusers.list tom 123 jerry 123 Allentuns 123 EOF3、db_load工具将列表文件转化为DB数据库文件rootvsftpd vsftpd# db_load -T -t hash -f vusers.list vusers.db注释:命令的用法db_load -T(转换) -t hash(指定读取数据文件的基本方法) -f vusers.list(刚才的列表文件)vusers.db(转化为数据库文件)注释:检查是否转换成功rootvsftpd vsftpd# file vusers.db vusers.db: Berkeley DB (Hash, version 9, native byte-order)rootvsftpd vsftpd# file vusers.list vusers.list: ASCII text4、建立ftp访问的根目录及虚拟用户对应的系统账号rootvsftpd vsftpd# mkdir /var/ftprootrootvsftpd vsftpd# useradd -d /var/ftproot/ -s /sbin/nologin virtualuseradd:警告:此主目录已经存在。不从 skel 目录里向其中复制任何文件。5、更改根目录的权限rootvsftpd vsftpd# chown virtual:virtual /var/ftprootrootvsftpd vsftpd# chmod 755 /var/ftproot6、建立pam认证文件rootvsftpd vsftpd# cat /etc/pam.d/vsftpd.vu #%PAM-1.0 auth required pam_userdb.so db=/etc/vsftpd/vusers account required pam_userdb.so db=/etc/vsftpd/vusers EOF7、修改配置文件rootvsftpd vsftpd# cp vsftpd.conf

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论