当前位置: 首页 > 图文教程 > 服务器 > Linux服务器 > Linux组网入门(2):FTP服务器

Linux服务器
linux下用cron定时执行任务的方法
.htaccess绑定域名到子目录的方法
linux apache下虚拟主机配置方法
apache 局域网访问配置方案
linux Apache服务器系统安全设置与优化
linux中mac地址绑定方法
linux托盘不断闪烁之解决方法
Apache配置 虚拟转向实例
Apache No space left on device的解决办法
Apache rewrite的重写相关的参数说明
LINUX入门级常用命令20条整理
Ubuntu设置开机自动挂载所有格式硬盘分区
5个可能被你忽略的Linux安全设置方法
学习Apache的mod rewrite、access写法
改版时保留原链接,创建新的URL的方法
rsync中文手册之使用rsync实现网站镜像和备份linux
rsync 数据同步使用详解
linux URL的301重定向代码分析
eclipse3.2.2 + MyEclipse5.5 + Tomcat5.5.27 配置数据库连接池
Apache服务器二级域名的完美实现

Linux服务器 中的 Linux组网入门(2):FTP服务器


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 48 ::
收藏到网摘: n/a



在众多的网络应用中,FTP(FileTransferProtocol)有着非常重要的地位。在Internet中一个十分重要的资源就是软件资源。而各种各样的软件资源大多数都是放在FTP服务器中的。可以说,FTP与WEB服务几乎占据了整个Internet应用的80%以上。
FTP服务可以根据服务对象的不同分为两类:一类是系统FTP服务器,它只允许系统上的合法用户使用;另一类是匿名FTP服务器,AnonymousFTPServer,它使用任何人都可以登录到FTP服务器上去获取文件。

5.1选择和安装FTP服务器软件
如果你在安装LINUX系统的时候,在选择启动进程的时候选择了“ftpd”这一项的话,安装完LINUX系统后,它已经将一个默认的FTP服务器安装到系统中去了。我们已经可以利用它来实现系统FTP服务器的功能了。我们只需在此基础上根据我们的需要进行一些个性化设定就可以了。
在绝大多数的LINUX发行版本中都选用的是WashingtonUniversityFTP,它是一个著名的FTP服务器软件,一般简称为wu-ftp。它功能强大,能够很好地运行于众多的UNIX操作系统,例如:IBMAIX、FreeBSD、HP-UX、NeXTstep、Dynix、SunOS、Solaris等。所以Internet上的FTP服务器,一大半以上采用了它。
wu-ftp拥有许多强大的功能,很适于吞吐量较大的FTP服务器的管理要求:
1)可以在用户下载文件的同时对文件做自动的压缩或解压缩操作;
2)可以对不同网络上的机器做不同的存取限制;
3)可以记录文件上载和下载时间;
4)可以显示传输时的相关信息,方便用户及时了解目前的传输动态;
5)可以设置最大连接数,提高了效率,有效地控制了负载。

5.2wu-ftp的组成
安装了wu-ftp后,你将在/bin目录下看到以下五个可执行文件:
ftpdFTP服务器程序
ftpshut用于关闭FTP服务器程序
ftpcount显示目前在线人数
ftpwho查看目前FTP服务器的连接情况
ckconfig检查FTP服务器的设置是否正确
除了这些可执行文件以外,它还在/etc和/var目录下生成了七个配置文件:
/etc/ftpusers
/etc/ftpaccess
/var/run/ftp.pids
/etc/ftpconversions
/var/log/xferlog
/etc/ftpgroups
/etc/ftphosts
系统安装了wu-ftp后,会建立一个特殊的用户ftp,并在/home目录下建立了一个ftpd目录,当用户以匿名登录上来时,将会自动定位于这个目录下。在这个目录下一般会建立几个子目录。
/home/ftpd/bin:存放一些供FTP用户使用的可执行文件
/home/ftpd/etc:存放一些供FTP用户使用的配置文件
/home/ftpd/pub:存放供下载的信息
/home/ftpd/incoming:存放供上载信息的空间

5.3wu-ftp的配置
5.3.1查看、修改/etc/inetd.conf文件
/etc/inetd.conf文件是LINUX系统的超级服务器inetd的配置文件。它负责监听多个TCP/IP端口。当它收到请求,就根据配置文件派生一个相应的服务器。通过使用超级服务器,其他服务就可以只在需要时才派生,从而大大节省了系统资源。
而wu-ftp就是利用超极服务器inetd来监听请求的。当超级服务器inetd收到了客户端的FTP请求时,就根据配置文件打开一个FTP服务进程。所以我们如果要使用wu-ftp,就必须确认在超级服务器inetd的配置文件inetd.conf中有这样一句:
ftpstreamtcpnowaitroot/usr/sbin/tcpdwu.ftpd
以便当超级服务器收到FTP请求的时候,能够派生一个wu-ftp的FTP服务进程。(注:要确认是否有这样一行时,可以使用文件内容查找命令来确认:
cat/etc/inetd.conf|grepftp如果没有,则用手工加入或手工修改。

5.3.2wu-ftpd的命令选项
wu-ftpd就是wu-ftp的服务进程。它可以不带参数执行,也可以带参数执行。下面简单介绍一下wu-ftpd的执行参数。
-d当FTP服务器发生错误时,将错误入系统的syslog中;
-l将每次FTP客户端进行连接的入系统的syslog中;
-t设置FTP客户端连接几分钟无操作就切断连接;
-a使wu-ftp使用/etc/ftpaccess的设定;
-A使wu-ftp不使用/etc/ftpaccess的设定;
-L将FTP客户端连线后所执行的程序记录在系统的syslog中;
-I将FTP客户端上载文件的日志记录在/usr/adm.xferlog文件中;
-o将FTP客户端下载文件的日志记录在/usr/adm/xferlog文件中。
通过对以上参数的理解,我们建议,将上面系统安装时的那条默认配置改为:
ftpstreamtcpnowaitroot/usr/sbin/tcpdwu.ftpd–a–I

5.3.3提供自动压缩、解压缩的功能
如果想让FTP服务器有自动压缩、解压缩的功能,必须先将一些压缩、解压缩的命令文件如tar、gzip、gunzip、compress、uncompress等命令文件拷贝到/home/ftpd/bin目录下。

5.3.4关于/etc/ftpaccess的设置
这个配置文件是FTP服务器上最重要的配置文件,它直接关系到你的FTP服务器能否正常工作,还有许多权限上的设置。下面是一个典型的配置实例。
loginfails3
classlocalreal*
classremoteanonymousguest*
limitremote100Any/etc/ftpd/toomany.
msgmessage/etc/ftpd/welcome.msglogin
compressyeslocalremote
taryeslocalremote
privateyes
passwd-checkrfc822warn
logcommandsreal
logtransferanonymousguestinboundoutbound
logtransferrealinbound
shutdown/etc/ftpd/shut.msg
deletenoanonymous,guest
overwritenoanonymous,guest
renamenoanonymous
chmodnoanonymous,guest
umasknoanonymous
upload/home/ftpd*no
upload/home/ftpd/binno
upload/home/ftpd/etcno
upload/home/ftpd/pubyesreal0644dirs
upload/home/ftpd/incomingyesrealguestanonymous0644dirs
aliasin/incoming
[email protected]
[email protected]
deny*.com.tw/etc/ftpd/deny.msg
下面我们逐句进行讲解,并给出每条设置的含义,以便大家触类旁通,以便根据自己FTP服务器的具体情况进行合理的设置。
1.格式:loginfails[次数]
功能:设定当用户登录到FTP服务器时,允许用户输错密码的次数。
实例:loginfails3:密码输入错误三次就切断连接。
2.格式:class[类名][real/guest/anonymous][IP地址]
功能:这个指令的功能设定FTP服务器上用户的类别。并可对客户端的IP地址进行限制,允许某部分的IP地址或全部的IP地址访问。而在FTP服务器上的用户基本上可以分为以下三类:
real在该FTP服务器有合法帐号的用户;
guest有记录的匿名用户;
anonymous权限最低的匿名用户
实例:classlocalreal*:定义一个名为local的类,它包含了在任何地方登录(*代表所有IP地址)的real用户。
classremoteanonymousguest*:定义一个名为remote的类,它包含了在任何地方登录的anonymous用户和guest用户。
3.格式:limit[类别][人数][时间][文件名]
功能:这个指令的功能为设置指定的时间内指定的类别允许连接的指定人数上限。当达到人数上限的时候,显示指定文件的内容。
实例:limitremote100Any/etc/ftpd/toomany.msg:在任何时间内,remote类的访问用户达到100人时,将不再允许无法产生新的连接,当第101位客户要连接时,连接将失败,并象用户出示文件/etc/ftpd/toomany.msg的内容。
4.格式:message[文件名称][指令]
功能:当用户执行所指定的指令时,系统将指定的文件内容显示出来。
实例:message/etc/ftpd/welcome.msglogin:当用户执行login命令时,也就是登录到FTP服务器上的时候,系统将显示文件/etc/ftpd/welcome.msg的内容。
5.格式:compress[yes/no][类别]
功能:设置哪一个类别的用户可以使用compress(压缩)功能。
实例:compressyeslocalremote:允许local和remote两个类别的用户都能使用compress(压缩)功能。
6.格式:tar[yes/no][类别]
功能:设置哪一个类别的用户可以使用tar(归档)功能。
实例:taryeslocalremote:允许local和remote两类的用户都能使用tar功能。
7.格式:private[yes/no]
功能:设定是否支持群组对文件的取用。
实例:privateyes:支持群组对文件的取用。
8.格式:passwd-check[none/trivial/rfc822][enforce/warn]
功能:设定对匿名用户anonymous的密码使用方式。
none表示不做密码验证,任何密码都可以登录;
trival表示只要输入的密码中含有字符“@”就可以登录;
rfc822表示密码一定要符合RFC822中所规定的E-Mail格式才能登录;
enfore表示输入的密码不符合以上指定的格式就不让登