Linux下最常用的FTP服务器是wu-ftpd,这个产品一般被用于提供简单的ftp服务,这里我们将简单地介
绍它的基本配置和使用方法。
wu-ftpd包含在大部分Linux发行版中,通常以rpm方式提供,这里使用的是wu-ftp2.4,可以用rpm命令安装。
通常ftp服务是通过inetd服务程序提供,如果你在安装Linux时已经安装了ftp server,那么inetd自动包含
ftp的启动命令,否则首先要设置/etc/serveices,有关ftp的行是:
ftp 21/tcp
然后设置/etc/inetd.conf,有关行是
ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a
重起inetd,就可以提供ftp服务了。
第一个任务是设置ftp宿主目录,它就是名叫ftp的用户的宿主目录,缺省是/home/ftp,可以通过更改ftp用
户的属性(修改/etc/passwd?)来改变这个目录。
接下来,你的主要问题是精确设置/etc/ftpaccess来对ftp进程加上限制,下面有一个范例的ftpaccess文件,
你可以用类似的方法来编写自己的ftpaccess,注意许多东西是缺省的,原则是只更改那些不同的内容:
class anonclass anonymous *
#定义一个叫做anonclass的类,它只包含匿名用户,可以从全世界任何地点登录
class local real 111.111.111.*
#定义一个名叫local的类,这个类中包含所有的本系统实际帐号(real),而且这个类只能从
111.111.111.1-111.111.111.254登录。
#还有一个可以使用的类是guest,这个类有时容易引起一些安全问题,一般不用,详细内容参考ftp手册。
message /.login login
#message是当ftp用户发生某个动作时进行的操作,上面这一行时用户登录到ftp服务器时,自动显示
/home/ftp/.login文件的内容
message /pub/.anonlogin cwd=/pub
#进入/home/ftp/pub目录时,显示/home/ftp/pub/.anonlogin的内容
message /incoming/.write cwd=/incoming
#进入/home/ftp/incoming 显示/home/ftp/incoming/.write的内容
compress yes all
tar yes all
允许压缩-解压模式,使用户可以通过服务器得到解压的版本
chmod no guest,anonymous
delete no guest,anonymous
overwrite no guest,anonymous
rename no guest,anonymous
定义用户是否可以使用chmod,overwrite,rename,delete等方法改变服务器上的文件,上面的定义是只有真正
的用户帐号才可以使用上述方式,而guest和匿名用户没有(no)这个权利。
log transfers anonymous,real inbound,outbound
#记录用户传输的文件,被记录的用户是匿名和实际帐号,记录的方向包括上传和下载
shutdown /etc/shutmsg
#一般没有什么意义,但是放上也没有问题
passwd-check trivial warn
#对匿名用户的口令如何校验,trival表示口令中至少有一个@符号,还可以选择的另外两个选项是none(不检查)
和rfc822(必须是一个标准的email帐号);warn表示发现口令不合法时对用户产生警告信息,但仍然允许登录,
可以使用enforce选项表示一旦口令形式不合法就禁止登录。
upload /home/ftp /incoming* yes ftp ftp 0600 dirs
定义上载方式,/home/ftp目录下的所有/incoming*目录都可以(yes)上传,用户上载的文件将属于ftp用户,
ftp用户组,上载的文件的属性自动设置为0600,用户可以建立自己的子目录(dirs,否则为nodirs)
limit anonclass 100 /home/ftp/too_many
#最大允许100个属于anonclass的用户进入系统,超过后显示/home/ftp/too_many的内容
然后,你需要设置/home/ftp/incoming的拥有者为ftp,用户组ftp,属性为644.(缺省时是777).
另外,/etc/ftpusers定义了不允许ftp的用户表。
注意:由于ftpd程序是以root方式执行,一定要小心处理关于上载的设定!
|