架设FTP服务器

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

架设FTP服务器来源:天津热线[转帖]架设FTP服务器来源:天津热线[转帖]在Internet上FTP(FileTransferProtocol,文件传输协议)扮演着十分重要的角色。我们可以通过FTP与远程机器传输交换文件数据,下载或上传最新的软件。基本的FTP服务器根据服务的对象可以分为两种,一种是Unix(当然也包括Linux)系统基本的FTP服务器,使用者是服务器上合法的用户;而另一种是匿名FTP服务器(AnonmousFTPService),任何人只要使用anonmous或ftp帐号并提供电子邮件地址作为口令就可以使用FTP服务。对于系统中合法的用户,其登录目录为他们的home目录;如果是匿名用户登录的话,登录后会到/home/ftp这个目录中,该除非我们在该目录中存放下载文件,否则匿名FTP使用者将不能做任何事情。在本章,我们将详细地介绍FTP服务器的安装、配置以及服务器的维护。安装FTP服务器在Linux的发行套件中都有FTP服务器的软件包wu-ftpd(WashingtonUniversityFTPserver),这是目前最流行的一种免费FTP服务器软件,目前绝大多数的FTP站点都是由wu-ftpd来架设的,而wu-ftp如此流行的原因是因为它强大的功能,例如:·可控制不同网域的机器对FTP服务器的存取权限和访问时段。·使用者在下载文件时,可自动对文件进行压缩或解压缩工作。·可以记录文件上传或下载的过程。·可以限制最高访问人数,以维持系统的最佳运行效率。·可显示相关的信息,以便用户了解当前的接收状态。·可暂时关闭FTP服务器,以便系统维护。在安装系统时如果选择了wu-ftpd软件包,就会自动安装。但如果我们想要使用最新的FTP软件包的话,可以到全世界各大FTP站点下载。目前最新的版本是wu-ftpd-2.5.0,得到了wu-ftpd-2.5.0.tar.gz后,请按照我们下面的步骤进行安装。1.将wu-ftpd-2.5.0.tar.gz复制到临时目录中并解压缩:#tarzxvfwu-ftpd-2.5.0.tar.gz进入解压缩产生的目录wu-ftpd-2.5.0中,在开始安装之前请仔细阅读里面的README、INSTALL等文件,以便了解安装需要注意的事项。2.执行命令“bulidlnx”,编译wu-ftpd-2.5.0的源程序。#./bulidlnx这条命令将编译Linux系统使用wu-ftpd所需的服务程序,如果一切正常的话,将产生如下几个可执行文件:ftpdFTP服务程序ftpshut关闭FTP服务的程序ftpcount显示FTP服务器目前连接的人数的程序ftpwho查看目前使用者3.执行安装命令“makeinstall”,将编译生成的可执行文件和manpages安装到系统中。#makeinstall4.修改/etc/inetd.conf文件,加入如下一行:ftpstreamtcpnowaitroot/usr/sbin/tcpdin.ftpd-l–a如果系统中以前安装有wu-ftpd的话,这一步可以略去不做,安装安装程序会自动更新/etc/inetd.conf文件有关ftp的记录项。5.如果想为FTP用户提供压缩解压缩的功能,我们还需要将tar、gzip、compress、cpio、sh等可执行文件复制到/home/ftp/bin目录下。此外,还需要将ls命令复制到/home/ftp/bin中,以便使用者查看目录。因为我们复制到/home/ftp/bin目录下的程序有可能是动态链接的,所以它们运行时还需要共享函数库,我们要将他们运行时需要用到的共享库复制到/home/frp/lib目录中。检查这些命令所需要的共享库可以使用“ldd”命令。例如对于“ls”命令,我们使用“ldd/usr/bin/ls”命令就可以得到如下的输出:#ldd/usr/bin/lslibc.so.6=/lib/libc.so.6(0x40003000)/lib/ld-linux.so.2=/lib/ld-linux.so.2(0x00000000)这样,我们就需要将/lib/libc.so.6和/lib/ld-linux.so.2复制到/home/ftp/lib目录中。其它命令所需的共享库您也可以参照上面的方法找出并复制到/home/etc/lib目录中。接下来复制/etc/passwd和/etc/group文件到/home/ftp/etc,并删除其中任何个人用户和个人用户组的信息。基本上应该按照下面的例子修改:#/home/ftp/etc/passwd文件root:*:0:0:::bin:*:1:1:::operator:*:11:0:::nobody:*:99:99:::ftp:*:1000:1000:::#/home/ftp/etc/group文件root::0:bin::1:daemon::2:sys::3:adm::4:ftp::1000:6.为了确保提供FTP服务不会给我们的系统带来安全隐患,我们还需要采取以下措施:#chmod0555/home/ftp#chmod0111/home/ftp/bin/*#chmod0555/home/ftp/lib/*#chmid0444/home/ftp/etc/*配置FTP服务器在安装好wu-ftpd之后,我们还需要定制FTP服务器,使之实现我们上一节中提到的各种功能。为了使我们的FTP服务器实现这些功能,我们需要修改ftpusers、ftpaccess、ftpconversions、xferlog、ftpgroups、ftphosts等系统配置文件。下面我们就来看一看这些文件的功能以及配置它们的方法。各配置文件的功能在开始配置FTP服务器的配置文件之前,我们先来简要地介绍一下各个文件的功能。在开包后的wu-ftpd-2.5.0目录中的doc/examples目录下,我们可以找到以下这些文件的示例。/etc/ftpaccess一般情况下,我们最为重视的配置文件应该是“ftpaccess”,因为该文件决定着我们FTP服务器是否能够正常工作。此外,我们还可以在这个系统参数文件中设置多项有关使用权限记录,以及与信息有关的文件名称及路径。/etc/ftpusers决定哪些人不可以执行ftp命令来传输文件,这些帐号通常是root、bin、news以及guest等有特殊用途的帐户。/etc/ftpconversions配置该文件可以实现用户在通过FTP传输文件的同时,对文件进行压缩打包等处理。/etc/ftphosts决定哪些网络中的主机或某些用户不能访问FTP服务器的文件。/etc/ftpgroups该文件不是决定哪些用户组不能够访问FTP服务器,它只有在使用SITEGROUP功能时才有用。/var/log/xferlogFTP日志文件。该文件将记录使用匿名帐户的用户所上传或下载的过的文件,该文件只是记录FTP信息,我们不需要对它进行配置。大致了解了各个设置文件的功能以后,我们就来为您介绍这些文件中的内容以及学习如何配置。配置/etc/ftpaccess文件我们前面介绍的wu-ftpd的大多数功能都是在ftpaccess文件中设置的。我们无须自己编写该文件,doc/examples/ftpaccess.heavy是一个稍微修改一下就能适用于大多数FTP服务器的例子,所以下面我们将以这个示例文件为例为您介绍ftpaccess文件的配置。#wu-ftpd-2.5.0的/etc/ftpaccess示例文件ftpaccess.heavy##设置用户登录FTP服务器时,允许输错密码的次数。#loginfails2表示允许用户输错两次密码,如果两次都输入#错误的话,FTP服务器打印“repeatedloginfailures”的信息#并退出FTP会话过程。如不设置,则缺省值是5。#loginfails2##class是用来定义用户级别的命令,它的格式为#classclasstypelistaddrglob[addrglob….]#FTP服务器上有三种类型的使用者,分别是“real”——表示#在该FTP服务器上有合法帐号的用户;“guest”——表示另行#定义的某些使用组的使用者;“anonymous”——权限最低的匿名#用户。有了这三种使用者以后,在ftpaccess文件中就可以根据不#同的使用者设置不同的存取权限。但是,只有三种定义一般是不够#的,我们可以根据class的语法定义更多的控制命令。例如:#classremotereal,guest,anonymous*#这条class语句定义了remote中有三种不同的使用者,“*”表示网络#上所有的计算机,也就是说任何人都可以访问FTP服务器,一般的匿名#FTP站点都应该有这一项。如果我们希望某台主机或网域中的机器具有#特殊的权限,那么我们可以设置如下的class:#classlocalreal,guest,anonymouslocalhost#这表示本地主机的类别被定义为local,当我们从主机连上FTP服务器上#时,就可以用较为特别的权限。#下面是ftpaccess.heavy文件指定的两个class,它们的意思是来自*.domain#和本地主机被归为local组,而其它的主机则是remote组。#classlocalreal,guest,anonymous*.domain0.0.0.0classremotereal,guest,anonymous*##我们可以使用limit命令设置某个时间段的FTP用户数量,如果超出了#规定的人数,则打印/etc/msgs/msgs.toomany文件并拒绝用户登录。例如:#limitlocal20Any/etc/msgs/msgs.roomany#就是限制local这个组的机器同时间内最多允许20人连接FTP服务器,如果#超员,则打印/etc/msgs/msgs.toomany文件,显示当前在线人数太多。ftp的#说明文件都可以包含变量,在说明文件中可以使用“变量替换(magic#sookies)”以指定的字符串代替某个变量:#%T本地时间#%FCWD所在分区的剩余空间#%C当前工作目录#%E定义在ftpaccess文件中维护者的电子邮件地址#%R远端主机名称#%L本地主机名称#%U登录时所给的用户名称#%M该class允许的最大使用者数目#%N该class目前的使用者数目##我们可以利用这些变量编辑一个显示信息非常完y##readme命令的作用是指定用户登录或进行其它操作(如更换目录)时#FTP服务器提示用户阅读的文件。#readmeREADME*loginreadmeREADME*cwd=*##messages命令主要是设置一些FTP的显示信息,如下面的“message#/welcome.msglogin”就是代表用户登录时,将显示/home/ftp目录下的#welcome.msg作为进站画面。我们要提醒您的是FTP服务器都是以#/home/ftp这个目录作为根目录的,所以要写成/welcome.msg。而#“message.messagecwd=*”则是定义用户在更换目录时将显示在目录#下的文件。#message/welcome.msgloginmessage.messagecwd=*##下面定义的允许从local和remote登录的机器在传输文件时,可执行compress#压缩文件或使用tar命令将多个文件打包成一个文件。#compressyeslocalremotetaryeslocalremote##是否允许通过SITEGROUP和SITEGPASS命令适用秘密文件#allowuseofprivatefileforSITEGROUPandSITEGPASS?#privateyes##设置密码检查的规则。FTP服务器将要求匿名用户使用其电子邮件#地址作为密码,可是有人还是会胡乱输入,所以我们可以使用passwd-check#来查看用户是否输入一个类似于user@hos

1 / 11
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功