《第12章FTP服务器.ppt》由会员分享,可在线阅读,更多相关《第12章FTP服务器.ppt(25页珍藏版)》请在一课资料网上搜索。
1、第12章 FTP服务器,FTP(File Transfer Protocol)是一个客户机/服务器系统,使用它进行文件传输时,需要具备以下两个条件: 在服务器端安装FTP服务器程序,如在Windows系统中安装IIS或者Serv-U,在Linux系统中安装vsftpd或者Wu-ftpd。 在客户机中安装FTP客户端程序,如CuteFtp,Windows操作系统中的IE浏览器等,FTP在工作过程中需要建立两条连接,一条控制连接和一条数据连接。 FTP有两种工作模式:主动模式(又称为PORT模式)和被动模式(又称为PASV模式)。 FTP在传输文件时,可以使用以下两种方式。 1ASCII传输方式
2、2二进制传输方式,RHEL6.0在安装过程中默认并没有安装vsftpd,下面将vsftpd安装包安装到系统中。 1.查看系统中是否安装了vsftpd程序 # rpm qa vsftpd 2.安装vsftpd安装包 使用rpm命令方式安装 直接双击执行程序安装 3卸载vsftpd 如果是使用RPM包安装 的vsftpd,那么不需要使 用FTP时,则可以使用 # rpm e vsftpd*将其 从系统中卸载掉,12.1 安装FTP服务器程序,vsftpd的配置文件主要有: (1)/etc/pam.d/vsftpd vsftpd的Pluggable Authentication Modules(PA
3、M)配置文件,主要用来加强vsftpd服务器的用户认证。 (2)/etc/vsftpd/vsftpd.conf 这个文件是vsftpd的主配置文件,各种选项的设置和修改都在这里完成。 (3)/etc/vsftpd/ftpusers 不论在何种情况下,此文件中的用户都不能访问vsftpd服务。 为安全起见,root用户默认已被放置在此文件中。如果想使用root帐户登录FTP服务器,必须在此文件中去掉root,或者在root所在行前面加上“#”将root帐户注释掉,12.2 vsftpd的配置文件,4)/etc/vsftpd/user_list 这个文件中的用户既可能是允许访问vsftpd服务的,
4、也可能是拒绝访问的,这主要是由vsftpd.conf文件中的两项选项来决定的。 如果userlist_enable=NO,则userlist_deny选项不起作用,忽略user_list文件。 如果userlist_enable=YES,则 userlist_deny选项起作用,此时又分两种情况: userlist_deny=YES,则user_list中的所有用户都不能访问vsftpd服务。 userlist_deny=NO,则只有user_list中的用户才可以访问vsftpd服务,12.2 vsftpd的配置文件,5)/var/ftp 匿名用户主目录。本地用户主目录为:/home/用户主
5、目录,即登录后进入自己的目录。/var/ftp目录下包括一个pub子目录。默认情况下,所有的目录都是只读的,不过只有root用户有写权限。 (6)/usr/sbin/vsftpd:vsftpd的主程序。 (7)/etc/rc.d/init.d/vsftpd:启动脚本。 (8)/etc/logrotate.d/vsftpd:vsftpd的日志文件,12.2 vsftpd的配置文件,将vsftpd程序安装到系统中以后,在执行该程序之前,还需要对FTP目录、用户名等进行简单的配置,然后再来启动vsftpd服务。 1配置用户 对于允许匿名访问的FTP服务器来说,应该在服务器主机中创建名为ftp的用户。
6、另外,还需检查是否有名为nobody的用户存在,若没有这些用户,则需另外创建。使用finger命令可以看出系统默认已经创建了这两个用户,如下图所示。RHEL6.0在默认安装过程中并没有安装finger程序,用户需要时可以自行安装,12.3 配置vsftpd基本环境,12.3 配置vsftpd基本环境,2配置目录 在安装vsftpd的过程中系统已经自动生成了/var/ftp/pub目录,其中/var/ftp目录即为匿名用户访问FTP时的根目录,此目录中的文件用户可以下载,但如果允许匿名用户上传文件至此FTP服务器,还需要执行mkdir 命令创建一个新的子目录,并使用chown命令将该子目录的所有
7、者和组改为ftp,同时使用chmod命令将该子目录开放写入权限,具体执行过程如下图所示,12.3 配置vsftpd基本环境,3vsftpd的启动与关闭 启动服务:# service vsftpd start # /etc/rc.d/init.d/vsftpd start 关闭服务:# service vsftpd stop # /etc/rc.d/init.d/vsftpd stop 如果需要让vsftpd服务随系统的启动而自动加载,可以执行“ntsysv”命令启动服务配置程序,找到“vsftpd”服务,按下空格键,在其前面加上星号(*),然后选择“确定”按钮即可,12.3 配置vsftpd基
8、本环境,4匿名用户下载文件测试 经过上面步骤的设置whatsapp网页版,现在vsftpd服务已启动,匿名用户已经可以登录到FTP的主目录/var/ftp进行下载了,但此时还不能上传文件,如下图所示(在Windows中使用命令方式登录FTP并下载文件)。 这时我们访问FTP的各种选项都是vsftpd的默认选项,如设置为使用匿名登录、不允许上传等。如果要设置匿名上传,或者使用用户名登录,就必须要修改vsftpd.conf配置文件中的相关选项,12.3 配置vsftpd基本环境,12.3 配置vsftpd基本环境,1匿名用户配置选项 anonymous_enable=YES:是否允许匿名登录FTP服务器,默认设置为YE
9、S允许,即用户可使用用户名ftp或anonymous进行ftp登录,口令为用户的E-mail地址,也可不输入口令。如不允许匿名访问去掉前面#并设置为NO。 anon_upload_enable=YES:是否允许匿名用户上传文件,须将write_enable=YES,默认设置为YES允许。 anon_mkdir_write_enable=YES :是否允许匿名用户创建新文件夹,默认设置为YES允许。 anon_other_write_enable:匿名用户其他的写权利(如更改权限,12.4 vsftpd常用选项,chown_uploads=YES:设定是否允许改变上传文件的属主whatsapp网页版登录,与下面一个设定项
10、配合使用。 chown_username=whoever:设置想要改变的上传文件的属主,如果需要,则输入一个系统用户名,例如可以把上传的文件都改成root属主。 anon_root=(none):匿名用户主目录。 no_anon_passwd=YES:匿名用户登录时不询问口令。 从上面列出的选项可以看出,大部分都是开关型选项,可设置为YES或NO。另外,还可以设置下面这些FTP服务器的公共选项以显示不同的欢迎信息,12.4 vsftpd常用选项,ftpd_banner=Welcome to blah FTP service.:设置登录FTP服务器时显示的欢迎信息,可以修改=后的欢迎信息内容。另
11、外如在需要设置更改目录欢迎信息的目录下创建名为.message的文件,并写入欢迎信息保存后,在进入到此目录时会显示自定义欢迎信息。 dirmessage_enable=YES:激活目录欢迎信息功能,当用户用命令方式首次访问服务器上某个目录时,FTP服务器将显示欢迎信息,默认情况下,欢迎信息是通过该目录下的.message文件获得的,此文件保存自定义的欢迎信息,由用户自己建立,12.4 vsftpd常用选项,举例1:打开vsftpd.conf文件修改选项,使匿名用户登录后显示欢迎信息,并且可以上传文件、创建目录。 根据要求,需要修改以下选项的值: anonymous_enable=YES wri
12、te_enable=YES anon_upload_enable=YES anon_mkdir_write_enable=YES ftpd_banner=Welcome to My FTP service 在vsftpd.conf文件中作了修改之后,需要重新启动vsftpd进程以使修改生效。下面我们在RHEL6.0中使用命令方式进行匿名登录来检验上述设置,具体过程如下图所示,12.4 vsftpd常用选项,12.4 vsftpd常用选项,欢迎信息已经显示出来。但是创建目录却失败了,这是因为/var/ftp目录的所有者和组都是root,其他用户没有写权限。因此,客户端不能在根目录(也即/var/
13、ftp目录)中创建文件夹。这时,我们可以切换目录到有权限的upload中,再新建文件夹whatsapp web,然后测试一下上传功能。过程如下图所示,12.4 vsftpd常用选项,2本地用户配置 本地用户是指在FTP服务器上拥有帐户的用户,他们既可以在FTP服务器上进行本地登录,也可以使用自己的帐户和密码远程访问FTP服务器。他们远程访问FTP服务器时,将登录到用户自己的主目录(home目录),操作权限与主目录操作权限相同,并且可以上传文件至此目录。 默认情况下,vsftpd是允许本地用户登录FTP的,主要通过local_enable=YES和local_umask=022来设置的。使用本地用户sjh进行FTP远程
14、登录的过程如下图所示。如果不想让本地用户登录FTP后进入用户的home目录,可以使用local_root=/path进行设置,12.4 vsftpd常用选项,12.4 vsftpd常用选项,从上图可以看出,本地用户登录FTP后将显示其home目录的完整路径,并且用户可以通过cd命令随意切换到服务器的各个目录中去,这对于系统安全非常不利。为此,我们可以通过chroot_local_user=YES这一选项来将本地用户的根目录限制为自己的主目录,这样本地用户登录FTP后就不能切换到其他目录,如下图所示,12.4 vsftpd常用选项,如果只是想对部分本地用户进行根目录的限制,则可以通过chroot
15、_list_enable=YES和chroot_list_file=/etc/vsftpd/chroot_list这两个选项来设置。 如果想限制部分本地用户登录FTP,则需要通过userlist_enable=YES启用userlist功能,同时配合userlist_deny=NO或YES来进行本地用户的允许或拒绝,12.4 vsftpd常用选项,3网络和连接参数配置 在FTP服务器的管理中无论对本地用户还是匿名用户,对于FTP服务器资源的使用都需要进行控控制,避免由于负担过大造成FTP服务器运行异常,可以添加以下配置项对FTP客户机使用FTP服务器资源进行控制: max_client:设置F
16、TP服务器所允许的最大客户端连接数,值为0时表示不限制。例如max_client=100表示FTP服务器的所有客户端最大连接数不超过100个。 max_per_ip:设置对于同一IP地址允许的最大客户端连接数,值为0时表示不限制。 local_max_rate:设置本地用户的最大传输速率,单位为B/s,值为0时表示不限制。例如local_max_rate=500000表示FTP服务器的本地用户最大传输速率设置为500KB/s。 anon_max_rate:设置匿名用户的最大传输速率,单位为B/s,值为0表示不限制。idle_session_timeout=600:空闲连接超时时间,单位为秒,1
17、2.4 vsftpd常用选项,data_connection_timeout=120:数据传输超时时间。 ACCEPT_TIMEOUT:PASV请求超时时间。 connection_timeout=60:PORT模式连接超时时间。 connection_from_port_20=YES:使用20端口来连接FTP。 listen_port=4449:该语句指定了修改后FTP服务器的端口号,应尽量大于4000。修改后访问FTP时需加上正确的端口号了,否则不能正常连接。 修改端口后,连接FTP 的过程如下图所示,12.4 vsftpd常用选项,4日志选项 vsftpd可以启用日志功能来记录文件的上传
18、与下载信息。设置日志功能的选项如下: xferlog_enable=YES:表明FTP服务器记录上传下载的情况。 xferlog_std_format=YES:使用标准格式记录日志。 xferlog_file=/var/log/xferlog :指定日志文件的位置。 上面三项设置记录xferlog日志的格式。 dual_log_enable=YES:表明启用了双份日志,在用xferlog文件记录服务器上传下载情况的同时,vsftpd_log_file所指定的文件,即/var/log/vsftpd.log也将用来记录服务器的传输情况。 vsftpd_log_file=/var/log/vsftpd.log:指定vsftpd日志文件的位置。 log_ftp_protocol:记录所有的FTP命令。 vsftpd中除了上面介绍的选项外还有很多选项,限于篇幅,此处就不再一一列举了,12.4 vsftpd常用选项
版权声明
本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。


