Linux操作系统实用技术.doc_第1页
Linux操作系统实用技术.doc_第2页
Linux操作系统实用技术.doc_第3页
Linux操作系统实用技术.doc_第4页
Linux操作系统实用技术.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

Linux操作系统实用技术第九课 FTP与FTP服务器河北经贸大学王春海本节内容网络服务的本质一个计算机可以同时访问多个服务,与多个服务器同时建立连接计算机端口号不同在一个网络中,只要IP地址不同,可以使用相同的服务端口号一台服务器可以同时提供多个服务,但服务端口号不能相同一台服务器可以使用多个IP地址提供多个服务。同一IP地址提供的服务端口号不能相同同样,工作站也可以有多个不同IP地址那么,什么是服务呢?标准的服务端口标准的网络服务可以省略端口这是刚才介绍的网络连接拓扑图实际上,在真正的网络中,从客户端A到服务器B,建立连接的过程要复杂的多。什么是FTPFTP有什么用FTP工作原理下传和下载访问FTP服务器需要身份认证匿名FTP FTP协议与FTP服务器 FTP工作原理 : FTP采用客户机/服务器方式,客户端要在自己的本地计算机上安装FTP客户程序,支持FTP协议的服务器就是FTP服务器。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。 FTP连接模式 FTP的连接模式有三种 : 主动模式(PORT); 被动模式(PASV); 单端口传输模式 ;在互联网的所有服务中,FTP服务器的连接模式是比较复杂的。FTP服务器:Port模式PORT模式FTP服务器:PASV模式单端口模式 FTP网络中的防火墙问题vsFTP内容提要 vsFTP服务器的安装和启动 FTP客户端命令简介 用户管理文件vsftpd.users和vsftpd.user_list的内容 主要配置文件sftpd.conf解析 FTP(File Transfer Protocol,文件传输协议)服务器提供Internet文件传输服务。Linux中常用的有WU-FTP、ProFTP、PureFTP及vsFTP等。在Fedora 8下自带的是vsFTP,它是一个小巧、高效、安全的FTP服务器软件.本章将介绍vsFTP服务器的安装、配置及使用等。 vsFTP简介 vsFTP是一种基于GPL的在UNIX/Linux中非常安全且快速的FTP服务器,其中vs是“Very Secure”的缩写,具有安全、高速和稳定的性能。在速度方面,使用ASCII模式下载数据时,速度是WU-FTP的两倍,如果Linux使用的是2.4.x版本的内核,在千兆以太网上的下载速度可达86Mbps。在稳定性方面,在单机服务器上支持4000个以上的并发连接,最高可支持15000个并发连接。除此之外,vsFTP还具有如下特性: 支持基于IP的虚拟FTP服务器; 支持虚拟用户; 支持PAM或xinetd/tcp_wrappers的认证方式; 支持两种运行方式:standalone和xinetd方式; 支持每个虚拟用户的独立配置; 支持带宽限制。vsFTP的运行模式 一种是独立(standalone)运行模式,另外一种是xinetd(eXtended Internet Services Daemon,即:扩展的Internet服务守护进程)模式。两种模式运行机制是不同的,独立运行模式适合专业的FTP服务器,且FTP总是一直有人访问,占用资源比较大,如果FTP服务器总是有人访问和登入建议采用这种模式。如果FTP服务器访问人数比较少,建议您用xinetd模式。xinetd模式的运行方式一直监听端口,当客户端(Client)有FTP连接请求时,首先会将连接传至xinetd,xinetd再将此要求传至vsftpd,启动相应的vsftp服务进程(即:vsftpd)。以下的内容主要是介绍独立模式下的vsftpd启动和配置方式。vsFTP服务器的安装 在Fedora 8中带的vsFTP服务器版本为vsftpd-2.0.5-19.fc8,在安装之前可用如下命令检查是否已安装vsftpd:#rpm qa vsftpd vsftpd-2.0.5-19.fc8 若是在安装Linux时没有选择安装vsFTP服务器,可以从Fedora 8安装光盘DVD中的Packages目录下找出名为vsftpdd-2.0.5-19.fc8.i386.rpm的文件,然后输入以下指令,系统即将自动完成vsFTP服务器的安装: #rpm ivh vsftpd-2.0.5-19.fc8.i386.rpmvsFTP服务器的启动 安装完成后,系统将会生成一个名为vsftpd的服务。要启动vsftpd,最简单的方式如下:# /etc/rc.d/init.d/vsftpd start starting vsftpd for vsftpd: ok 也可以使用命令:#service vsftpd start 来启动vsftpd。自动启动vsFTP服务器 如果想在图形界面下启动vsFTP服务器,可以选择“系统”|“管理”|“服务”选项,在打开“服务配置”画面后,选中“vsftpd”项目,然后单击工具栏中的“开始”按钮即可启动vsftpd服务器演示FTP客户端命令简介 要登录到vsFTP服务器,在Windows系统中可以使用图形化的FTP客户端软件,如CuteFTP和LeapFTP等,也可以直接在命令行状态下使用FTP命令。 直接登录浏览器 ftp:/w2:12345631 ftp:/用户名:密码要访问的FTP服务器FTP命令的格式 FTP(机器名、网址或IP地址) 若连接成功,系统提示输入用户名(Name)及密码(Password)。进入FTP站点后,用户就可以使用相应的命令进行各种操作了。 FTP的常用命令 测试vsftpd是否已经启动 可用telnet检验vsftpd是否已经启动: # telnet 21 Trying . Connected to . Escape character is . 220 (vsFTPd 2.0.5) 从上面的内容可以看出能telnet到本机的vsftp服务器的21号端口,确认vsftpd已经被启动,按“Ctrl+”中断会话 再按“q”退出telnet telnet q Connection closed. # 测试ftp的运行 默认情况下,安装好vsftp服务器后就可以使用匿名用户anonymous(或ftp)下载文件了。例如,使用匿名用户下载文件。操作步骤如下: 1)生成一个用于测试的文件welcome.txt。 默认情况下,匿名用户下载目录/var/ftp/pub下没有任何内容,为了进行测试,可以先生成一个测试文件welcome.txt。 #echo “Welcome to my vsFTP Server” /var/ftp/pub/welcome.txt测试ftp的运行(续) 2)使用匿名用户(ftp或anonymous)登录ftp: #ftp Connected to ().220 (vsFTPd 2.0.5)Name (:root): anonymous 331 Please specify the password.Password:123 /输入Email地址或任意字符串作为anonymous匿名账号的口令230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. 测试ftp的运行(续) 3) 列表显示匿名FTP服务器目录并进入pub目录。 ftp ls 227 Entering Passive Mode (127,0,0,1,126,111) 150 Here comes the directory listing. drwxr-xr-x 2 0 0 4096 Oct 03 19:09 pub 226 Directory send OK. ftp cd pub 250 Directory successfully changed. 测试ftp的运行(续) 4) 显示/var/ftp/pub目录下的内容并下载welcome.txt文件。 ftp ls 227 Entering Passive Mode (127,0,0,1,44,205) 150 Here comes the directory listing. -r-xr-xr-x 1 0 1 31 Oct 03 19:09 welcome.txt226 Directory send OK. ftp get welcome.txt227 Entering Passive Mode (127,0,0,1,99,247) 150 Opening BINARY mode data connection for welcome.txt (31bytes). 226 File send OK. 31 bytes received in 0.000188 secs (1.6e+02 Kbytes/sec) ftp !ls anaconda-ks.cfg install.log install.log.syslog welcome.txt 通过显示本地文件命令“!ls”确认已经将文件welcome.txt下载到本地。测试ftp的运行(续) 5) 测试是否能上传文件到/var/ftp/pub目录。 ftp put install.log local: install.log remote: install.log 227 Entering Passive Mode(127,0,0,1,233,16)550 Permission Denied.从上面信息可以看出上传文件失败 6) 退出FTP ftp bye 221 Goodbye. vsFTP服务器的配置 安装好vsFTPD后,会在/etc/vsftpd目录下生成ftpusers和user_list文件,同时会生成vsftpd.conf文件。用户管理文件ftpusers /etc/vsftpd/ftpusers是vsFTP服务器中用来管理帐号的配置文件。但需要注意的是:本文件中列出的用户名是指不允许登录vsFTP服务器的用户,默认的文件内容如下:rootCandy etc#cat ftpusers#Users that are not allowed to login via ftpRootBinDaemonGamesNobody 从上面例子可以看出,默认情况下,root帐号是不允许登录vsFTP服务器的。如希望让root登录,只需修改此文件,在“root”前加“#”注释掉即可。但从安全角度考虑,建议用户不要使用root登录FTP。对于此文件中的其它帐号,均为系统帐号,建议不要做任何修改。/etc/vsftpd/user_list文件rootCandy etc#cat /etc/vsftpd/user_list#vsftpd.user_list#If userlist_deny=NO,only allow users in this file#IF userlist_deny=YES(default),never allow users in this file,and#do not even prompt for a password.RootBinGamesNobody 此文件中指定的用户默认情况(即在/etc/vsftpd/vsftpd.conf中设定了userlist_deny=YES)下也不能访问FTP服务器,而如果在vsftpd.conf中设定了userlist_deny=NO,则仅仅允许此文件中指定的用户访问FTP服务器。此方面的例子将在后面介绍。主要配置文件vsftpd.conf /etc/vsftpd/vsftpd.conf是vsftp服务器的主要配置文件,建议大家认真理解里面的内容,以使vsFTP服务器发挥最大的效能。此文件的设置格式如下: 参数设置值 若是以“#”开头的行表示注释文字,会被服务器所忽略。下面将分类解释各参数的含义:vsftpd.conf虚拟用户用户选项 guest_enable=YES|NO 若是启动这项功能,所有的不以匿名登录的用户,都视为“guest”类型,而此类用户的实际权限就是“guest_username”选项中所指定的帐号。默认不启用此选项。 guest_username= 定义vsFTPD的guest用户登录时在系统中的帐号名称,默认值为ftp。 vsftpd.conf连接选项 (1)监听地址与控制端口 listen_address=ip address listen_port=port_value (2)FTP模式与数据端口 port_enable=YES|NO Connect_from_port_20=YES|NO ftp_data_port=port number port_promiscuous=YES|NO pasv_enable=YES|NO pasv_min_port=port number pasv_max_port=port number pasv_promiscuous=YES|NO pasv_address= (3)ASCII模式 ascii_upload_enable=YES|NO ascii_download_enable=YES|NO vsftpd.conf性能与负载控制选项 超时选项 idle_session_timeout= data_connection_timeout= accept_timeout=numerical value connect_timeout=numerical value 负载控制 max_clients=numerical value max_per_ip=numerical value anon_max_rate=value local_max_rate=value 设置速率举例 设定系统本地用户允许的最大数据传输速率,以Bytes/s为单位。默认为0。此选项对所有的用户都生效。此外,也可以在用户个人配置文件中使用此选项,以指定特定用户可获得的最大数据传输速率。 例如,为特定用户设置传输速率。 操作步骤如下: 在/etc/vsftpd/vsftpd.conf中指定用户个人配置文件所在的目录,如: user_config_dir=/etc/vsftpd/userconf 生成/etc/vsftpd/userconf目录。 mkdir /etc/vsftpd/userconf 用户个人配置文件是在该目录下,生成与特定用户同名的文件,如: touch /etc/vsftpd/userconf/user1 在用户user1的个人配置文件中设置local_max_rate参数,如:local_max_rate=80000 (即为80KB/s) 以上步骤设定FTP用户user1的最大数据传输速度为80KBytes/s。 vsFTPD 对于速度控制的变化范围大概在80%到120%之间。比如我们限制最高速度为100KBytes/s, 但实际的速度可能在80KBytes/s 到120KBytes/s 之间。当然,若是线路带宽不足时,速率自然会低于此限制。 vsftpd.conf安全措施选项 (1) 用户登录控制 pam_service_name=vsftpd 指出vsFTPD进行PAM认证时所使用的PAM配置文件名,默认值是vsftpd,默认PAM配置文件是/etc/pam.d/vsftpd。 /etc/vsftpd.ftpusers vsFTPD禁止列在此文件中的用户登录FTP服务器。这个机制是在/etc/pam.d/vsftpd中默认设置的。 userlist_enable=YES|NO 若是启用此功能,vsFTPD将读取/etc/userlist_file参数所指定的文件中的用户列表。当列表中的用户登录FTP服务器时,该用户在提示输入密码之前就被禁止了。即该用户名输入后,vsFTPD查到该用户名在列表,vsFTPD就直接禁止该用户登录,不会再进行询问密码等后续步聚,这可避免明文(Clear Text)在网络上传输。默认值为NO。 vsftpd.conf安全措施选项(续) userlist_file=/etc/vsftpd.user_list 指出userlist_enable选项生效后,被读取的包含用户列表的文件。默认值是/etc/vsftpd.user_list。 userlist_deny=YES|NO 此选项在userlist_enable 选项启动后才生效。决定禁止还是只允许由/etc/userlist_file指定文件中的用户登录FTP服务器。YES,默认值,禁止文件中的用户登录,同时也不向这些用户发出输入口令的提示。若设为停用(即为NO),则只允许在文件中的用户登录FTP服务器 tcp_wrappers=YES|NO 若值为YES,将在vsFTPD中使用TCP_wrappers远程访问控制机制, 因此可利用/etc/hosts.allow与/etc/hosts.deny文件来定义可联机或是拒绝的来源地址。但默认不启用此选项。vsftpd.conf安全措施选项(续) (2) 目录访问控制 chroot_list_enable=YES|NO chroot_list_file=/etc/vsftpd/chroot_list chroot_local_users=YES|NO passwd_chroot_enable vsftpd.conf安全措施选项(续) (3) 文件操作控制 hide_ids=YES|NO ls_recurse_enable=YES|NO write_enable=YES|NO secure_chroot_dir= vsftpd.conf安全措施选项(续) (4) 新增文件权限设定 anon_umask= 匿名用户新增文件的umask 数值。默认值为077。 这表示匿名用户新增的文件权限最大为700(777077700)。 file_open_mode= 表示上传文件的权限,与chmod命令所使用的数值相同。如果希望上传的文件可以执行,设此值为0777。默认值为0666。 local_umask= 本地用户新增文件的umask 数值。默认值为077(其他大多数的FTP服务器都是使用022。您也可以修改为022)。vsftpd.conf提示信息选项 ftpd_banner=login banner string banner_file=/directory/vsftpd_banner_file dirmessage_enable=YES|MO message_file= vsftpd.conf日志设置选项 xferlog_enable=YES|NO xferlog_file= xferlog_std_format=YES|NO log_ftp_protocol=YES|NO vsftpd.conf其他设置 setproctitle_enable=YES|NO text_userdb_names=YES|NO user_localtime=YES|NO check_shell=YES|NO nopriv_user= pam_service_name= vsFTP服务器的使用举例1【例】配置匿名用户,使之可以上传/下载文件。 操作步骤如下:(1)在/var/ftp/创建一个上传目录,并修改权限。cd /var/ftp /首先进入/var/ftp目录。mkdir /var/ftp/incoming /创建incoming目录。chmod 777 /var/ftp/incoming /更改incoming目录的权限为777。vsFTP服务器的使用举例1(续)(2)编辑/etc/vsftpd/vsftpd.conf文件 vi /etc/vsftpd/vsftpd.conf 确保 anonymous_enabled=YES有效。 找到“# anon_upload_enable=YES”行,去掉前面的注释符号“#”,并在下面添加如下行:chown_uploads=YESanon_umask=077anon_mkdir_write_enable=YESanon_world_readable_only=NO(3)存盘退出。 通过前面的配置后,匿名用户ftp(或anonymous)既可下载文件,又可上传文件到incoming目录,也能在incoming目录下创建新的目录。vsFTP服务器的使用举例2【例】配置vsFTPD,使本地用户user1具有上传/下载、user2只具有下载功能,其中user1和user2同属于students组。 操作步骤如下:(1)创建用户组 students和FTP的主目录groupadd studentsmkdir /var/ftprootuseradd -G students d /var/ftproot M user1 注:-G:用户所在的组; -d:表示创建用户主目录的位置; -M:不建立默认的用户主目录,也即在/home下不创建用户主目录。useradd G students d /var/ftproot M user2vsFTP服务器的使用举例2(续)(2)改变目录的属主和权限chown user1.students /v

温馨提示

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

评论

0/150

提交评论