【教学课件】第15章FTP服务器.ppt

上传人:小飞机 文档编号:5657918 上传时间:2023-08-06 格式:PPT 页数:29 大小:453.47KB
返回 下载 相关 举报
【教学课件】第15章FTP服务器.ppt_第1页
第1页 / 共29页
【教学课件】第15章FTP服务器.ppt_第2页
第2页 / 共29页
【教学课件】第15章FTP服务器.ppt_第3页
第3页 / 共29页
【教学课件】第15章FTP服务器.ppt_第4页
第4页 / 共29页
【教学课件】第15章FTP服务器.ppt_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《【教学课件】第15章FTP服务器.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第15章FTP服务器.ppt(29页珍藏版)》请在三一办公上搜索。

1、第15章 FTP服务器,15.1 wu-ftp15.2 Proftpd15.3 Proftpd实现虚拟用户管理和磁盘配额,15.1 wu-ftp,FTP是一个以TCP/IP为基础的应用程序,所以一般的FTP服务程序都会以内嵌于inetd的方式执行。FTP分为两个部分,一个是服务器端的程序,一个是用户端的。在Unix上的FTP服务程序非常多,不同的操作系统所内嵌的版本也都不一样,常见的有wu-ftp、Proftpd、Troll ftpd、ncftpd和Bero ftpd等。本书主要介绍现在比较流行的两种FTP:wuftp和Proftpd,其中最常用最受欢迎的是wu-ftp。,15.1.1 wu-

2、ftp的安装1.在安装系统时安装现在一些Linux的发行版本都带有wu-ftp,如:redhat mandrake等,在安装系统时选择FTP服务器,则wu-ftp就已经装在系统里面了。2.rpm包的安装在安装rpm包时要注意几点:(1)下载别人已经做好的rpm包,也可以在一些Linux的发行版里面找到。(2)查询系统是否已经安装wu-ftp。rpm qa|grep wu-ftp,3.源代码包的安装首先,可以从 上面下载最新的wu-ftp的发行版本,现在就用版的作为例子。先将源代码拷贝到/usr/local/src下面。由于发行的源代码都是打包压缩的,所以要安装wu-ftp,首先要解开包。cd/

3、usr/local/src/tar zvxf解压缩后,进入源码的目录并且使用配置脚本进行环境的设置。cd./configure./configure 这个命令的意思是执行当前目录下的configure这个配置脚本,进行环境设置(如果想改变wu-ftp的默认设置可以执行./configure help)。,当执行./configure之后,再配置脚本会自动生成 Makefile,如果在设置的过程中没有任何的错误,就可以开始编译源码了。make make install如果没有出现错误则wu-ftp已经装在/usr/bin下面了。安装命令列表。以下命令需要root的身份执行。#cp wu-ftp-

4、2.6.2.tar.gz/usr/local/src/#cd/usr/local/src/#tar zvxf#cd#./configure#make#make install,15.1.2 wu-ftp的配置首先,配置wu-ftp要先认识几个文件。wu-ftp主要有以下6个配置文件:ftpaccess:主要配置文件,控制存取权限。ftpconvertions:配置文件压缩/解压缩转换。ftpgroups:设定FTP自己定义的群组。ftphosts:设定个别的用户权限。ftpservers:设定不同IP/Domain Name以对应到不同的虚拟主机。ftpusers:设定哪些账号不能用FTP连线

5、。,class:定义群组,用法如下:classclass只有三种类型:real.anonymous和guest,只有定义了class的群组,用户才能连进来,还可以用class来规范群组登录的IP,real如果没有在定义中,那么这台机器中任何真实的一般用户都无法用自己的账号连上来。anonymous如果没有在定义中,就表示不让没有账号的人连上来。如果有定义guest,那么guest群组的人就可以上来。另外是指FTP上的用户会用到的IP地址,可自行设定。,class local guest,real localhost local这个class只允许real和guest的用户从localhost访

6、问这个FTP,但anonymous不受这个限制。当定义好的那些同属于一个class的用户,一旦连线就会被对应到一个相应的群组下面,这样用户就可以用Unix的文件权限对某一群人做限制。deny:拒绝某些地址连线,用法如下:deny 拒绝连线的地址表示格式:ip:netmask ip可以用通配符。禁止某些机器连线,并显示。,guestgroup:设定访客群。guestuser:设定访客账号。realgroup:设定真实群组。realuser:设定真实账号。defumask:设定class的umask,用法如下:defumaskumask:建立文件时该文件的权限掩码。tcpwindow:设定tcpw

7、indow的大小。keepalive:设定是否使用TCP SO_KEEPALIVE来控制断线情形。timeout:设定连线超时,用法如下:timeout accept 接受连线超时,预设120秒。timeout connect 连线建立超时,预设120秒。,timeout data 数据传送超时,预设1200秒。timeout idle 用户发呆超时,预设900秒。file-limit:限制某class只能传几个文件,用法如下:file-limit 对某个class限制存取文件的数目,包含了in(上传)、out(下载),total raw代表整个传输的结果,不光是数据文件。例如:file-li

8、mit out 20 real 限制real这个class的用户最多只能下载20个文件。byte-limit:限制某class只能传几个字节,用法跟file-limit相似。limit-time:限制一个连线只能持续多久,用法如下:limit-time*|anonymous|guest limit:限制某class能同时几人上线,用法如下:limit limit real 32 Any/home/ftp/etc/toomanyuser.msg 限制real这个组在任意时间的连接总数是32,当人数超过32时显示拒绝信息-toomanyuser.msg。,limit real 5 Any2300-

9、0600/home/ftp/etc/toomanyuser.msg 限制real这个class的用户在23:00到6:00这段时间内只能有5人连线。noretrieve:设定哪些文件不可下载。noretrieveabsolute/relativeclass=-absolute或relative指文件是用绝对路径还是相对路径。allow=retrieve:设定哪些文件可以下载。allowabsolute/relativeclass=-loginfails:设置登入错误可尝试的次数。当用户连线时可能打错ID或密码,这个设定可以让他打错几次以后就断线,避免有人用穷举法猜测密码。private:设定线

10、上是否可以执行SITE GROUP/SITE GPASS。当开放SITE GROUP与SITE GPASS指令时,可以用这两个指令切换到/etc/ftpgroup的群组。一般而言我们不会用到这个功能,以避免安全漏洞。greeting:显示Server的版本信息,用法如下:greeting,当用户登入界面显示的server信息,full是预设值,包含版本号以及hostname,brief只有hostname,而terse只有“FTP server ready”的信息。barnner:设定未进入Login界面之前用户看到的信息,用法如下:banner 这里叙述了在用户登入时,还没打ID/Passw

11、ord之前要出现的信息。文件路径指的是相对于真实的路径,而不是相对于FTP的根目录。host:设定FTP主机名。E-mail:指定FTP管理者的E-mail地址。message:信息文件的设定,用法如下:message 这里的文件路径是相对于FTP根目录的,“何时”是指当用户做了什么动作之后的反应,有几个选择:login(登入时)cwd=(进入某目录时)class 名称是前面已经定义过的,允许用户的信息只对哪些人发出。,而信息文件的内容除了文字以外,还可以使用以下一些事先定义好的代号:%T(本机时间)%F(目前分区所剩余的空间)%C(目前所在的目录)%E(管理者的E-mail)%R(客户端主机

12、名称)%L(本机主机名称)%U(用户名称)%M(与我相同class用户允许多少人连线)%N(与我相同class用户目前有多少人连线)%B(绝对磁盘限制大小,目前分区(单位blocks)%b(preferred磁盘限制大小,目前分区(单位blocks)%Q(目前已使用的blocks)%I(最大可使用的inodes(+1)%i(Preferred inodes限制),%q(目前使用的indoes)%H(超量使用磁盘空间的时间限制)%h(超量使用文件数目的时间限制)log commands:记录用户所使用过的命令,用法如下:log commands log transfers:记录用户所传输的文件,

13、用法如下:log transfers 设定有哪些类型的用户传输文件需要记录,包含了inbound(用户上传)和outbound(用户下载),例如:log transfers anonymous,guest inbound,outbound log security:记录安全性,用法如下:log security 特别用于记录某类用户关于noretrive、notar等有关安全性的记录。log syslog:记录到系统的syslog文件。alias:设定目录别名,用法如下:alias cdpath:设定cd更换目录搜索顺序。,compress,tar:设定是否自动压缩,用法如下:compress

14、 tar定义哪些人可以执行压缩以及tar。shutdown:通知用户要关站了。shutdown 如果信息文件存在的话,当这个文件指定的某时间以后,就会拒绝连线并切断已有的连线,等时间一到就关机。这个信息文件的格式如下:daemon address:指定只监听某个IP地址,用法如下:daemon address 当用户有许多IP的时候,使用这个选项将会取消其他任何虚拟FTP主机的设定。不设定则监听所有IP。virtual:设定虚拟FTP站台。wu-ftp提供了虚拟主机的功能,也就是说,在同一台机器上提供了不同FTP站台,以主机名称或IP来区分;当然要用名称,还需要跟DNS配合才行。virtual

15、有很多个设定:virtual可以是主机名或IP地址。root指的是FTP的根目录,banner是欢迎信息,logfile指的是这个虚拟站台的log文件,15.1.3 wu-ftp的启动和测试1.wu-ftp的启动在RedHat 6.2以前的版本(包含6.2)中可以通过修改inetd.conf和services来实现,方法如下:(1)vi/etc/services查找有FTP那一行,将前面的#号去掉,如果里面没有FTP这行则添加。格式如下:ftp 21/tcpftp 21/udp(2)vi/etc/inetd.conf 查找有没有类似这样的一行:ftp stream tcp nowait roo

16、t/usr/sbin/tcpd in.ftpd-l a如果有将其前面的#号去掉,如果没有,加入这一行,然后,运行killall HUP inetd,重启inetd,这样ftp就可以up起来了。,在RedHat 9.0以后的启动是:(1)用root 身份login。(2)运行setup会弹出和图15-1所示类似的界面。(3)选择system services 回车,出现如图15-2所示的界面。(4)在wu-ftp前面的选择框中选择,单击“OK”退出,最后重新启动电脑。,图15-1 图15-2,2.测试FTP启动了wu-ftp就开始测试ftpd了,并且运行iptables F清除防火墙规则。首先,

17、执行netstat a看看FTP端口有没有开。tcp 0 0 0.0.0.0:21 0.0.0.0:*LISTENtcp 0 0 0.0.0.0:22 0.0.0.0:*LISTEN上面的第一行就是ftpd已经在listen,表示ftpd已经启动。,15.1.4 实用命令ftpwho:显示在线的FTP链接和每个class的人数。ftpcount:显示每个class的在线人数。Ftpshut:关闭ftp。,15.2 Proftpd,15.2.1 Proftpd的安装首先,去Proftpd的官方网站http:/取得最新版本,现在比较新的版本是。现在就用版本的Proftpd为例子讲解Proftpd的

18、相关内容。1.下载下来以后解压包#tar zvxf#cd2.将Proftpd安装在/usr/proftpd中#./configure-prefix=/usr/proftpd在这个config的过程中还有很多的选项,用户可以到./configure help查看,然后各取所需。,15.2.2 Proftpd的配置配置Proftpd主要是配置Proftpd.conf文件,在安装目录的etc/下面。几个基本的参数:ServerName服务器的名字,用“”括住。ServerType:默认为standalone也可以改为由inetd启动,那么ServerType就应该设为inetd。ServerAdmi

19、n:管理员的E-mail地址。DefaultServer:是否设置为默认的服务器。DefaultRoot:设置用户登录时的主目录。DefaultTransferMode ascii|binary:设置服务器传输的模式,默认为ascii。,RequireValidShell:on/off 这里定义实际用户和anonymous用户在没有shell的情况下能不能login。On表示没有登陆。Port:定义端口,默认为21。Umask:设置FTP文件的掩码。MaxInstances:设置一个Proftpd能够同时有多少个子程序。UseReverseDNS on/off:设置对上载和下载的客户机是否进行

20、域名解释。TimeoutStalled:定义没有传输情况下FTP服务器和客户端timeout的时间,单位为秒。TimeoutIdle:定义在客户端没有任何数据传输(包括控制信息)时的timeout时间,单位为秒。TimeoutNoTransfer:定义服务器和客户端没有文件传输时的timeout时间,单位也为秒。PassivePorts:设置当client 发送pasv command时,server接收的端口范围。格式是:PassivePorts min-pasv-port max-pasv-port。Class on/off:设置是否使用组,还可以设置class的来源地,限制class登录

21、人数,15.2.3 一个实例15.2.4 Proftpd的启动和测试以root的身份运行#/usr/proftpd/sbin/proftpd。如果没有error提示则Proftpd启动完成。可以把上面的命令加到/etc/rc.local里面,则系统启动的同时启动Proftpd。如果是用inet启动可以参考wu-ftp的启动方法启动。,15.3 Proftpd实现虚拟用户管理和磁盘配额,准备安装:首先准备软件:proftpd-1.2.9.tar.gzftpd程序proftpd-mod-quotatab-1.2.11.tar.gz磁盘空间限制程序mysql-3.23.54a-11.i386.rpm

22、mysql客户端mysql-devel-3.23.54a-11.i386.rpmmysql开发包mysql-server-3.23.54a-11.i386.rpmmysql server,首先,安装mysql:启动和测试mysqld,如下图所示。,配置防火墙:在RedHat 9.0中,默认防火墙运行,要使其他工作站能访问这台机器的服务,需要将这些端口放开或者清楚防火墙规则。清除防火墙规则有两种方法,如:#setup进入配置状态安装proftpd:将和复制到临时目录:然后可以进行编译了,在编译之前需要确定几样东西:(1)Proftpd安装路径。(2)Mysql的includes和lib路径。这样

23、,proftpd就安装完毕,可以进行调试。,SQLConnectInfo proftpdlocalhost:3306 ftpuserauth abc123!#这里是连接数据库,proftpd是数据库名,localhost是数据库主机名,3306是数据端口,ftpuserauth是连接这个数据库的时候使用的用户名,abc123!#是连接这个数据库时ftpuserauth的密码。SQLAuthTypes Backend Plaintext数据库认证的类型:SQLUserInfo FTPUSERS userid passwd uid gid home shellFTPUSERS是数据库中的一个表,p

24、roftpd从这个表上面获取用户的信息,userid、passwd、uid、gid、home、shell都是这个表上面的字段名。他们分别存放了用户名、秘密、映射系统用户的uid、映射系统的gid、home目录、用户的shell。RequireValidShell off用户没有shell也可以登录。SQLAuthenticate users数据库的鉴别:SQLHomedirOnDemand on当home目录不存在的时候系统自动创建。,创建系统用户:在proftpd中,需要一个有效的用户来启动FTPD,而且,所有的虚拟用户都需要把它们自己映射到这个用户上来才有足够的权限进行读写。创建组:#gr

25、oupadd g 1000 r ftp2创建用户:#useradd u 1000 g 1000 d/home/ftp2 s/bin/bash r ftp2创建用户目录:#mkdir p/home/ftp2修改目录属组:#chown-R ftp2:ftp2/home/ftp2创建数据表:根据配置文件中的要求,需要创建一个数据库,里面有若干个表,保存用户信息。添加数据和添加用户:用root进入mysql数据库,然后运行 创建数据表:添加测试用户:,小结本章主要介绍现在比较流行的两种FTP服务器软件的安装和配置。在这两种服务器上面,如果有大量的客户群,则推荐使用Proftpd。不管是在易用性,还是在稳定性方面,Proftpd都是非常优秀的。在配置FTP服务器时要注意哪些地方可以写入;哪些用户拥有哪些权限;允许哪些IP地址登录以及最大的用户数。同时,虚拟用户和用户quota的实现被普遍应用到各种类型的网站,实用性比较强。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号