版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Linux下FTP服务器的安装和配置在Internet上FTP(FileTransferProtocol,文件传输协议)扮演着十分重要的角色。我们可以通过FTP与远程机器传输交换文件数据,下载或上传最新的软件。基本的FTP服务器根据服务的对象可以分为两种,一种是Unix(当然也包括Linux)系统基本的FTP服务器,使用者是服务器上合法的用户;而另一种是匿名FTP服务器(AnonmoufTPService),任何人只要使用anonmous或ftp帐号并提供电子邮件地址作为口令就可以使用FTP服务。Forpersonaluseonlyinstudyandresearch;notforcommer
2、cialuse对于系统中合法的用户,其登录目录为他们的home目录;如果是匿名用户登录的话,登录后会到/home/ftp这个目录中,该除非我们在该目录中存放下载文件,否则匿名FTP使用者将不能做任何事情。在本章,我们将详细地介绍FTP服务器的安装、配置以及服务器的维护。安装FTP服务器在Linux的发行套件中都有FTP服务器的软件包wu-ftpd(WashingtonUniversityFTPserver),这是目前最流行的一种免费FTP服务器软件,目前绝大多数的FTP站点者B是由wu-ftpd来架设的,而wu-ftp如此流行的原因是因为它强大的功能,例如: 可控制不同网域的机器对FTP服务器
3、的存取权限和访问时段。 使用者在下载文件时,可自动对文件进行压缩或解压缩工作。 可以记录文件上传或下载的过程。 可以限制最高访问人数,以维持系统的最佳运行效率。 可显示相关的信息,以便用户了解当前的接收状态。 可暂时关闭FTP服务器,以便系统维护。在安装系统时如果选择了wu-ftpd软件包,就会自动安装。但如果我们想要使用最新的FTP软件包的话,可以到全世界各大FTP站点下载。目前最新的版本是wu-ftpd-2.5.0,得到了wu-ftpd-,请按照我们下面的步骤进行安装。1 .将wu-ftpd-#tarzxvfwu-ftpd-进入解压缩产生的目录wu-ftpd-,在开始安装之前请仔细阅读里面
4、的READM、EINSTALL等文件,以便了解安装需要注意的事项。2 .执行命令“bulidlnx”,编译wu-ftpd-#./bulidlnx这条命令将编译Linux系统使用wu-ftpd所需的服务程序,如果一切正常的话,将产生如下几个可执行文件:ftpdFTP服务程序即shut关闭FTP服务的程序ftpcount显示FTP服务器目前连接的人数的程序ftpwho查看目前使用者3 执行安装命令“makeinstall”,将编译生成的可执行文件和manpages安装到系统中。#makeinstall4 修改/etc/inetd.conf文件,加入如下一行:ftpstreamtcpnowaitro
5、ot/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目
6、录中。检查这些命令所需要的共享库可以使用“ldd”命令。例如对于“ls”命令,我们使用“ldd/usr/bin/ls”命令就可以得到如下的输出:# ldd/usr/bin/lslibc.so.6=>/lib/libc.so.6(0x)/lib/ld-linux.so.2=>/lib/ld-linux.so.2(0x00000000)这样,我们就需要将/lib/需的共享库您也可以参照上面的方法找出并复制到/home/etc/lib目录中。接下来复制/etc/passwd和/etc/group文件到/home/ftp/etc,并删除其中任何个人用户和个人用户组的信息。基本上应该按照下面
7、的例子修改:#/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/
8、*配置FTP服务器在安装好wuftpd之后,我们还需要定制FTP服务器,使之实现我们上一节中提到的各种功能。为了使我们的FTP服务器实现这些功能,我们需要修改ftpusers、ftpaccess、ftpconversions、xferlog、ftpgroups、ftphosts等系统配置文件。下面我们就来看一看这些文件的功能以及配置它们的方法。各配置文件的功能在开始配置FTP服务器的配置文件之前,我们先来简要地介绍一下各个文件的功能。在开包后的wu-ftpd-doc/examples目录下,我们可以找到以下这些文件的示例。/etc/ftpaccess一般情况下,我们最为重视的配置文件应该是“f
9、tpaccess”,因为该文件决定着我们FTP服务器是否能够正常工作。此外,我们还可以在这个系统参数文件中设置多项有关使用权限记录,以及与信息有关的文件名称及路径。/etc/ftpusers决定哪些人不可以执行ftp命令来传输文件,这些帐号通常是root、bin、news以及guest等有特殊用途的帐户。/etc/ftpconversions配置该文件可以实现用户在通过FTP传输文件的同时,对文件进行压缩打包等处理。/etc/ftphosts决定哪些网络中的主机或某些用户不能访问FTP服务器的文件。/etc/ftpgroups该文件不是决定哪些用户组不能够访问FTP服务器,它只有在使用SITE
10、GROU助能时才有用。/var/log/xferlogFTP日志文件。该文件将记录使用匿名帐户的用户所上传或下载的过的文件,该文件只是记录FTP信息,我们不需要对它进行配置。大致了解了各个设置文件的功能以后,我们就来为您介绍这些文件中的内容以及学习如何配置。配置/etc/ftpaccess文件我们前面介绍的wu-ftpd的大多数功能都是在ftpaccess文件中设置的。我们无须自己编写该文件,doc/examples/ftpaccess.heavy是一个稍微修改一下就能适用于大多数FTP服务器的例子,所以下面我们将以这个示例文件为例为您介绍ftpaccess文件的配置。#wu-ftpd-# 设
11、置用户登录FTP服务器时,允许输错密码的次数。# loginfails2表示允许用户输错两次密码,如果两次都输入# 错误的话,FTP服务器打印"repeatedloginfailures”的信息# 并退出FTP会话过程。如不设置,则缺省值是5。#loginfails2# class是用来定义用户级别的命令,它的格式为# class<class><typelist><addrglob><addrglob>.# FTP服务器上有三种类型的使用者,分别是“real”表示# 在IgFTP服务器上有合法帐号的用户;“guest”一一表示另行# 定
12、义的某些使用组的使用者;“anonymous权限最低的匿名# 用户。有了这三种使用者以后,在ftpaccess文件中就可以根据不# 同的使用者设置不同的存取权限。但是,只有三种定义一般是不够# 的,我们可以根据class的语法定义更多的控制命令。例如:# classremotereal,guest,anonymous*# 这条class语句定义了remote中有三种不同的使用者,“*”表示网络# 上所有的计算机,也就是说任何人都可以访问FTP服务器,一般的匿名# FTP站点都应该有这一项。如果我们希望某台主机或网域中的机器具有# 特殊的权限,那么我们可以设置如下的class:# classlo
13、calreal,guest,anonymouslocalhost# 这表示本地主机的类别被定义为local,当我们从主机连上FTP服务器上# 时,就可以用较为特别的权限。# 下面是ftpaccess.heavy文件指定的两个class,它们的意思是来自*.domain# 和本地主机被归为local组,而其它的主机则是remote组。#classlocalreal,guest,anonymous*.domainclassremotereal,guest,anonymous*# 我们可以使用limit命令设置某个时间段的FTP用户数量,如果超出了# 规定的人数,则打印/etc/msgs/msgs.
14、toomany文件并拒绝用户登录。例如:# limitlocal20Any/etc/msgs/msgs.roomany# 就是限制local这个组的机器同时间内最多允许20人连接FTP服务器,如果# 超员,则打印/etc/msgs/msgs.toomany文件,显示当前在线人数太多。ftp的# 说明文件都可以包含变量,在说明文件中可以使用“变量替换(magic# sookies)”以指定的字符串代替某个变量:# %T本地时间# %FCWD所在分区的剩余空间# %C当前工作目录# %E定义在ftpaccess文件中维护者的电子邮件地址# %R远端主机名称# %L本地主机名称# %U登录时所给的用
15、户名称# %M该class允许的最大使用者数目# %N该class目前的使用者数目# 我们可以利用这些变量编辑一个显示信息非常完善的说明文件。下面的# 例子是设置当local用户在任何时候不能超过20人,remote用户在周六# 周日的18:00到6:00不能超过100人,否则将显示/etc/msgs目录下的# msg.toomany文件的内容。#limitlocal20Any/etc/msgs/msg.toomanylimitremote100SaSu|Any1800-0600/etc/msgs/msg.toomanylimitremote60Any/etc/msgs/msg.toomany
16、# readme命令的作用是指定用户登录或进行其它操作(如更换目录)时# FTP服务器提示用户阅读的文件。#readmeREADME*loginreadmeREADME*cwd=*# messages命令主要是设置一些FTP的显示信息,如下面的“message# /welcome.msglogin”就是代表用户登录时,将显示/home/ftp目录下的# welcome.msg作为进站画面。我们要提醒您的是FTP服务器都是以# /home/ftp这个目录作为根目录的,所以要写成/welcome.msg。而#"message.messagecwd=*"则是定义用户在更换目录时将
17、显示在目录# 下的文件。#message/welcome.msgloginmessage.messagecwd=*# 下面定义的允许从local和remote登录的机器在传输文件时,可执行compress# 压缩文件或使用tar命令将多个文件打包成一个文件。#compressyeslocalremotetaryeslocalremote# 是否允许通过SITEGROUPSSITEGPASST令适用秘密文件# allowuseofprivatefileforSITEGROUPandSITEGPASS?#privateyes# 设置密码检查的规则。FTP服务器将要求匿名用户使用其电子邮件# 地址作
18、为密码,可是有人还是会胡乱输入,所以我们可以使用passwd-check# 来查看用户是否输入一个类似于userhostname的E-mail地址:none表# 示不进行密码检查;trivial表示密码必须含有“”;而使用rfc822时,# 表示密码必须满足rfc822规定的地址。当密码不合要求时,warn将给予# 警告,但依然允许他们登录,而enforce则表示警告并使用户退出。# passwd-check<none|trivial|rfc822><enforce|warn>passwd-checkrfc822warn# logcommands<typelist
19、>记录<typelist>类型(可以是anonymous、# guest和real)用户使用的命令。Logtransfer<typelist><directions># 记录<typelist>类型的用户做的<directions>(可以为inbound传进服务器、# outbound传出服务器)方向的文件传输。#logcommandsreallogtransfersanonymous,realinbound,outbound# 如果shutdown<path>指定的文件存在,FTP服务器将定期检查<path&
20、gt;文件# 以查看服务器是否预定关闭。<path>文件的格式为:# <year><month><day><hour><minute><deny_offset><disc_offset><text># <deny_offset>和<disc_offset>的意思是在服务器关闭前多长时间新的登录# 请求和现存的连接将被拒绝和终止。<text>是对拒绝连接的用户的一段信#如:#1999102500:0000100005#Systemshutdownat%s
21、#表示1999年10月25日00:00关闭FTP服务器,10分钟以前拒绝连接,5分钟#以前中断正在连接的FTP服务。外部程序ftpshut可以用来产生path文件,#例如上面的文件可以通过如下的命令来产生:#ftpshut0000#shutdown/etc/shutmsg#设置用户在FTP服务器上可以使用的命令,我们可以看到下面所有的#命令后面都是“no”,也就是说guest用户不能使用delete、overwrite、#rename命令,而anonymous则都不能使用。只有real用户可以使用这些命令。#allthefollowingdefaultto"yes"fore
22、verybody#deletenoguest,anonymous#deletepermission?overwritenoguest,anonymous#overwritepermission?renamenoguest,anonymous#renamepermission?chmodnoanonymous#chmodpermission?umasknoanonymous#umaskpermission?# 设置用户上传文件的目录。下面例子中/var/ftp目录下的/incoming目录可以# 用来上传文件,上传文件的属主是root,组别是daemon,读取权限是0600,# dirs表示在/
23、incoming目录中可以创建子目录。# specifytheuploaddirectoryinformation#upload/var/ftp*nonobodynogroup0000nodirsupload/var/ftp/binnoupload/var/ftp/etcnoupload/var/ftp/incomingyesrootdaemon0600dirs# 为/incoming目录设置路径别名为inc:,用户在任何时候只要使用命令# “cdinc:”就可以到达/incoming目录。# directoryaliases.note,the":"isnotrequire
24、d#aliasinc:/incoming# cdpath主要定义在改变目录时使用的搜索路径。如果我们定义:# cdpath/incoming/test、cdpath/pub、cdpath/,那么用户在任意路径# 随便cd到一个目录,比如cdtest,那么将依次搜寻:# /incoming/test# /pub/test# /test# 以寻找一个符合test目录的路径。#cdpath/incomingcdpath/pubcdpath/# path-filter的功能是检查用户上传文件的文件名是否合法,如下面# 第一条命令就是指定所有的匿名用户上传文件的文件名只能是以# A-Z、a-z、0-9以
25、及“._-”组成,而不能以一个“.”或是一个“-”开始。# 如果文件名不合法,将显示/etc/pathmsg给该用户。#path-filteranonymous/etc/pathmsgA-A-Za-z0-9_.*$A.A-path-filterguest/etc/pathmsgA-A-Zaz0-9_.*$a.A# 设置guest用户# specifywhichgroupofuserswillbetreatedas"guests".#guestgroupftponly# FTP服务器管理员的邮件地址#emailuserhostname以上是一些ftpaccess常用的设置,您
26、也可以参考ftpaccess的manpagse来获得更详细的配置信息。配置/etc/ftpusers和/etc/ftphosts文件通过ftpusers文件,我们可以限制系统中有哪些用户不能使用ftp服务,ftphosts文件与之类似,所不同的是该文件中记录的是不能访问FTP服务器的主机。通常这样做的目的都是出于系统安全的考虑。Wu-ftpd为我们准备有这两个文件的示例,我们可以在examples目录中找到它们。下面是ftpusers文件设置的例子:# 禁止使用FTP服务的用户rootbinbootdaemondigitalfieldgatewayguestnobodyoperatorriss
27、ccssysuucp限制这些用户使用FTP服务器主要是基于系统安全的考虑,避免权利过大的用户(如root、ftpadm)登录FTP服务器和避免使用系统命令作为帐号(如shutdown、sync),以避免系统管理上的困惑。我们可以根据自己使用的需要,向该文件中增加或删除用户并将它复制到/etc目录中。如果我们要架设的是匿名FTP服务器,那么通常不需要设置ftphosts文件,对于其它类型的FTP服务器可以参考examples/ftphosts文件的格式结合自己的情况加以修改,然后复制到/etc目录中即可。下面是examples/ftphosts文件,该文件允许网络somehost.domain中
28、的用户ftp访问FTP服务器(somehost.domain可以是IP地址或域名)而禁止网络otherhost.domain和网络# ftphosts文件配置示例,allow和deny的格式分别为:# allow<username><hostnameordomain># deny<username><hostnameordomain># 以“#”开头的均为注释,空行将被忽略#allowftpsomehost.domaindenyfredotherhost.domain配置/etc/ftpconversions文件ftpconversions文件主
29、要定义用户从FTP服务器中下载文件时对文件进行格式转换的规则。例如压缩、解压缩、打包和开包等操作,这样用户就不必为.tar.gz、.tgz、.Z、.z之类的文件伤脑筋了。Ftpconversions文件的格式初看上去很复杂,不过不用担心,/examples目录中也有该文件的例子,我们只要原封不动的将它复制到/etc目录中就能满足我们的使用需要了。下面让我们来看看ftpconversions文件中各个记录项,有关各项的说明我们罗列在表14-1中:# ftpconversions文件示例#:.Z:/bin/compress-d-c%s:T_REG|T_ASCII:O_UNCOMPRESS:UNCO
30、MPRESS:.Z:/bin/compress-c%s:T_REG:O_COMPRESS:COMPRESS:.gz:/bin/gzip-cd%s:T_REG|T_ASCII:O_UNCOMPRESS:GUNZIP:.gz:/bin/gzip-9-c%s:T_REG:O_COMPRESS:GZIP:.tar:/bin/tar-c-f-%s:T_REG|T_DIR:O_TAR:TAR:.tar.Z:/bin/tar-c-Z-f- %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+COMPRESS:.tar.gz:/bin/tar-c-z-f- %s:T_REG|T_DIR:O
31、_COMPRESS|O_TAR:TAR+GZIP:.crc:/bin/cksum%s:T_REG:CKSUM:.md5:/bin/md5sum%s:T_REG:MD5SUM表1ftpconversions文件各项说明对照表真实文件名目标文件名命令操作<filename>.Z<filename>传递前使用comprss-d命令压缩<filename>.gz<filename>传递前使用gzip-d命令压缩<filename><filename>.Z传递前使用compress命令压缩<filename><fi
32、lename>.gz传递前使用gzip-9命令压缩<filename><filename>.tar传递前使用tar-cf命令打包<filename><filename>.tar.Z传递前使用tar-cZf命令打包并压缩<filename><filename>tar.gz传递前使用tar-czf命令打包并压缩<directory><directory>.tar.Z传递前使用tar-cZf命令对目录打包并压缩<directory><directory>.tar.gz传递前使
33、用tar-czf命令对目录打包并压缩Ftpconversions文件基本上把常用的压缩,打包命令都包括在内了,我们只要将它复制到/etc目录中,以后只要有人访问我们的FTP服务器,FTP服务程序就会根据用户的需要执行压缩或打包的命令。例如,用户想下载目录Howto中所有的文件,那么他不必使用mget命令,而只要使用get,这时wu-ftpd就会将该目录打包压缩并发送到用户的机器上了。所以使用该文件可以完成压缩传递的数据量,减少传输时间等作用。此外ftpconversions文件中定义的可执行文件的位置/bin指的都是/home/ftp/bin而不是Lnux/目录下的bin,所以请检查/home
34、/ftp/bin目录中有无上述命令,如果没有还需要将这些程序复制到该目录中。截止到这里,匿名FTP服务器的架设工作基本上就完成了,我们可以用ftp命令连接自己的服务器,检查合法用户和匿名用户的连接情况以及各个目录的权限是否正确。之后就可以准备FTP服务的开张了。本文以redhatAS4.0为例:首先要安装linux下的vsftp软件包。rpm-qa|gerpvsftpd/查找vsftpd有没有安装如果没有安装就vsftpd-(在第一张光盘)在linux中有一个非常重要的一点就是要挂载光驱mount/media/cdrom在这里我们就不用源代码安装了。用的是rpm安装#rpm-ivhvsftpd
35、-这里就安装好了。servicevsftpdstart启动vsftpd服务如果在不设置任何的情况下,可以以匿名的方式访问该ftp。注.如果访问不了的时候请大家要把linux的防火墙也要关闭:iptables-F清除防火墙在安装好ftp会产生几个文件:/etc/vsftpd/vsftpd.conf主配置文件/etc/vsftpd.ftpusers指定哪些用户不能访问FTP服务器文件中/etc/vsftpd.user_list文件中指定的用户是否可以访问ftp服务器由vsftpd.conf的userlist_deny的取值来决定。这几个文件就是整个ftp控制和禁止用户的权限配置。下面我们就来设置一
36、个vsftpd的核心文件#cd/etc/vsftpd/vsftpd.conf这就是vsftpd的核心配置文件anonymous_enable=YES/no是否允许匿名用户登录anonymous_enable=yes/no是否允许匿名上传文件local_enable=YES/no是否允许本地用户登录write_enable=YES/no是否允许本地用户上传guest_enable=yes/no是否允许虚拟用户登录;local_mask=022设置本地用户的文件生成掩码为022,默认值为077dirmessage_enable=YES设置切换到目录时显示.message隐含文件的内容xferlog
37、_enable=YES激活上传和下载日志connect_from_port_20=YES启用FTP数据端口连接pam_service_name=vsftpd设置PAM认证服务的配置文件名称,该文件存放在/etc/pam.d目录下userlist_enable=YES允许vsftpd.user_list文件中的用户访问服务器userlist_deny=YES拒绝vsftpd.user_list文件中的用户访问服务器listen=YES/no是否使用独占启动方式(这一项比较重要)tcp_wrappers=YES/no是否使用tcp_wrappers作为主机访问控制方式最主要的就是这些设置了。(这是
38、一般都是默认的不是太懂的不要动)大家可以设置下面的设置:ftpd_banner=welcometoftpservice设置连接服务器后的欢迎信息idle_session_timeout=60限制远程的客户机连接后,所建立的控制连接,在多长时间没有做任何的操作就会中断(秒)data_connection_timeout=120设置客户机在进行数据传输时,设置空闲的数据中断时间accept_timeout=60设置在多长时间后自动建立连接connect_timeout=60设置数据连接的最大激活时间,多长时间断开,为别人所使用;max_clients=200指明服务器总的客户并发连接数为200max_per_ip=3指明每个客户机的最大连接数为3local_max_rate=50000(50kbytes/sec)anon_max_rate=30000设置本地用户和匿名用户的最大传输速率限制pasv_min_port=端口pasv-max-prot=端口号定义最大与最
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年专用版:临时设施转租合同协议
- 大班主题活动教案:时光隧道
- 2024年企业融资中介协议
- 大班安全上学期教案及教学反思《打电话要小心》
- 中班语言详案教案《瞧这一家子》
- 2024年区块链应用合作框架
- 健身赛事组织与运营方案
- 2024年历史文化街区保护开发合同
- 2024年初级保育员应知应会试题(含答案)
- 中班健康教案:避暑好方法
- 物业工程能耗管控方案
- 企业环境管理知识培训
- 2023-2024学年教科版三年级上学期科学期中检测试卷(含答案)
- 浙南名校联盟2023-2024学年高一年级上册12月联考物理试题含答案
- 帕金森病机制
- 2024航空工业集团校园招聘笔试参考题库附带答案详解
- 如何进行有效的课堂笔记
- 零售行业数字化转型研究
- 结构力学试卷西南交通大学期中答案期中考试
- 广东省佛山市2022-2023学年高二上学期期末数学试题(学生版+解析)
- 矿井水害综合监测预警系统通用技术条件
评论
0/150
提交评论