第12讲FTP服务器的配置与管理目标掌握FTP的概念、工作原理。掌握VS-FTP服务器的创建。掌握VS-FTP服务器的管理。问题问题引入:如果企业需要异地备份那该怎么实现?问题引入:如何把网站程序传到WEB服务器上?企业需求构建一台FTP服务器,为企业局域网中的计算机提供文件传送任务。要求能够对FTP服务器设置连接限制、日志记录、消息、验证客户端身份等属性,并能创建用户隔离的FTP站点。本讲任务创建一个ftp服务器,提供文件下载和上载功能。提供匿名登录功能,用于下载公共文件,但不能匿名上载同时也提供用户登录,用户只能限制在自己的目录下,这是可以上载也可以下载拓扑图192.168.*.1FTP服务器192.168.*.2DNS服务器FTP客户端FTP客户端FTP服务器FTP协议概述FTP是TCP/IP的一种具体应用,FTP工作在OSI模型的第七层,TCP模型的第四层上,即应用层,FTP使用的是传输层的TCP传输而不是UDP,这样FTP客户在和服务器建立连接前就要经过一个被广为熟知的“三次握手”的过程,其意义在于客户与服务器之间的连接是可靠的,为数据的传输提供了可靠的保证。FTP是TCP/IP协议族中的一个协议,是英文FileTransferProtocol的缩写。该协议定义的是一个在远程计算机系统和本地计算机系统之间传输文件的一个标准,是Internet文件传送的基础。FTP的基本工作原理打开熟知端口(端口号为21),使客户进程能连接上;等待客户进程发起连接建立请求;启动从属进程来处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建其他一些子进程。回到等待状态,继续接受其他客户进程发来的请求。主进程与从属进程的处理是并发地进行。FTP服务器FTP用户授权FTP地址如下:密ftp://用户名:密码@FTP服务器IP或域名:FTP命令端口/路径/文件名上面的参数除了FTP服务器IP(或域名)为必要项外,其他项都是可有可无的。如以下地址都是有效FTP地址::123456@ftp.whpu.edu.cn@ftp.whpu.edu.cn@ftp.whpu.edu.cn:2003/soft/demo.docFTP服务器FTP用户授权互连网中大多数FTP服务器都支持“匿名”(Anonymous)登录。这类服务器的目的是向公众提供文件拷贝服务,不要求用户事先在该服务器进行登记注册,也不用取得FTP服务器的授权。FTP服务器FTP的传输模式ASCII传输方式二进制传输模式FTP服务器Linux环境下的FTP服务器1.Wu-ftpd2.ProFTPD3.vsftpdFTP服务器FTP服务器的安装与启动在进行FTP服务器配置之前,首先要检查系统中是否安装了FTP服务器,检查的方法可使用下面的命令:#rpm–qa|grepvsftpdFTP服务器的安装FTP服务器的安装与启动可使用下面的命令来进行vsftpd域名服务器的启动和停止。#servicevsftpdstart#servicevsftpdstop#servicevsftpdrestart或#/etc/rc.d/init.d/vsftpdstart启动:#ntsysv下面的命令是用来检查vsftpd是否被启动:#pstree|grepvsftpdFTP服务器的安装vsftpd的默认配置文件/etc/vsftpd/vsftpd.conf#是否允许匿名ftp,如否则选择NOanonymous_enable=YES#是否允许本地用户登录local_enable=YES#是否开放本地用户的写权限write_enable=YES#设置本地用户的文件的掩码是022,默认值是077local_umask=022#是否允许匿名用户上传文件#anon_upload_enable=YES#是否允许匿名用户创建新的文件夹#anon_mkdir_write_enable=YESvsftpd的默认配置文件#是否显示目录说明文件,默认是YES但需要手工创建.message文件dirmessage_enable=YES##激活上传下载日志xferlog_enable=YES##启用FTP数据端口的连接请求(ftp-data).connect_from_port_20=YES#vsftpd的默认配置文件#是否改变上传文件的属主,如果是需要输入一个系统用户名,可以把上传的文件都改成root属主#chown_uploads=YES#chown_username=whoever##传输日志的路径和名字默认是/var/log/vsftpd.log#xferlog_file=/var/log/vsftpd.log##是否使用标准的ftpxferlog模式xferlog_std_format=YES##设置默认的断开不活跃session的时间#idle_session_timeout=600vsftpd的默认配置文件#设置数据传输超时时间#data_connection_timeout=120#运行vsftpd需要的非特权系统用户默认是nobody#nopriv_user=ftpsecure#是否使用ascii码方式上传和下载文件#ascii_upload_enable=YES#ascii_download_enable=YES#定制欢迎信息#ftpd_banner=WelcometoblahFTPservice.#是否允许禁止匿名用户使用某些邮件地址,如果是,输入禁止的邮件地址的路径和文件名#deny_email_enable=YES#banned_email_file=/etc/vsftpd.banned_emailsvsftpd的默认配置文件#是否将系统用户限止在自己的home目录下,如果选择了yes那么chroot_list_file=/etc/vsftpd.chroot_list中列出的是chroot用户的列表#chroot_list_enable=YES#chroot_list_file=/etc/vsftpd.chroot_list#设置PAM认证服务的配置文件名称,该文件存放在/etc/pam.d/目录下pam_service_name=vsftpd#由于默认情况下userlist_deny=YES,所以/etc/vsftpd.user_list文件中#所列出的用户不允许访问vsftpd服务器。userlist_enable=YES#使vsftpd处于独立启动模式listen=YES#使用tcp_wrappers作为主机的访问控制方式tcp_wrappers=YESvsftpd的默认配置文件Vsftp的应用允许匿名用户上传文件在vsftpd.conf文件中修改或增加以下选项:write_enable=YESanonymous_enable=YESanon_world_readable_only=NOanon_upload_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=YES然后提供匿名上传的文件目录,并设定权限:#mkdir/var/ftp/incoming#chmodo+w/var/ftp/incomingVsftp的应用Vsftp的应用设置用户登录后所在目录local_root=目录名(默认是用户家目录)anon_root=目录名(默认是/var/ftp)Vsftp的应用Vsftp的应用限制用户在自家目录在vsftpd.conf文件中修改或增加以下选项:chroot_local_user=YESchroot_list_enable=NO或chroot_local_user=NOchroot_list_enable=YESchroot_list_file=/etc/vsftpd.chroot_list然后在/etc/vsftpd.chroot_list文件中加入要限制的本地用户名,一个名字一行Vsftp的应用Vsftp的应用限制连接数,以及每个IP的最大的连接数在vsftpd.conf文件中修改或增加以下选项:max_clients=数字max_per_ip=数字Vsftp的应用Vsftp的应用限制下载速度在vsftpd.conf文件中修改或增加以下选项:anon_max_rate=数字local_max_rate=数字注意:这里的单位是字节Vsftp的应用Vsftp的应用设置访问控制在vsftpd.conf文件中修改或增加以下选项:对访问的主机的设置:tcp_wrappers=YES检查/etc/hosts.allow和/etc/hosts.deny对访问的用户的设置:userlist_enable=YESuserlist_deny=YESvsftpd.user_list中的用户不许访问或者userlist_enable=YESuserlist_deny=NOvsftpd.user_list中的用户允许访问Vsftp的应用Vsftp的应用定制欢迎信息在vsftpd.conf文件中修改或增加以下选项#定制目录的欢迎信息dirmessage_enable=YES然后编辑一个.message文件,写上欢迎的信息。最后把.message复制到各个用户的家目录中#定制登录服务器时的欢迎信息ftpd_banner=信息或banner_file=/etc/vsftpd/banner然后在/etc/vsftpd/banner文件里写上欢迎信息Vsftp的应用Vsftp的应用FTP工作模式与端口的设置PORTFTP:listen_port=21connect_from_port_20=YESftp_data_port=20PASVFTP:pasv_enable=YESpasv_max_port=0pasv_min_port=0Vsftp的应用FTP客户端的常用命令与某个FTP服务器建立连接:传输文件的ftp命令FTP客户端的常用命令列出FTP服务器上的目录:在提示符“ftp”下,执行“ls”或“dir”命令后,屏幕会显示当前目录下的文件或子目录。显示格式与Linux命令提示行所显示的某个目录文件方式完全相同。传输文件的ftp命令FTP客户端的常用命令改变FTP服务器当前目录:在提示符“ftp”下,执行“cd”或“pwd”命令,可以查看当前目录;执行“cd..”命令可以进入上一级目录;执行“cd子目录名”命令,可以进入子目录,例如,输入“cdmail”,表示进入当前目录下的“mail”子目录。传输文件的ftp命令FTP客户端的常用命令一般文件传送:(1)下载单个文件get命令能从远程计算机上下载一个文件,其命令格式如下:get源文件名目标文件名(2)下载多个文件mget命令是从远程计算机取多个文件。命令格式为:mget源文件列表传输文件的ftp命令FTP客户端的常用命令一般文件传送:(3)上传单个文件将本地计算机的文件传送到远程计算机上,其命令格式为:put源文件名目标文件名(4)上传多个文件mput命令可以将本地计算机的多个文件一起送到远程主机。其命令格式为:mput文件名列表传输文件的ftp命令传输文件的ftp命令ftp命令一般用于两台计算机间传输文件,也是联上FTP服务器下载文件常用的命令ftp常用内部命令1.![cmd[args]]2.$macro-ame[args]3.account[password]4.appendlocal-file[remote-file]5.ascii6.bell7.binary8.bye传输文件的ftp命令传输文件的ftp命令9.case10.cdremote-dir11.cdup12.chmodmodefile-nam