|
|
proftpd是一个取代wu-ftp的更安全、配置更简单的ftp服务器软件。下面作一个简单的介绍,大家如果要在局域网内架设一个小型文件服务器,这个最合适不过了。
第一步不用想,肯定是“emerge -DuN proftpd -av"了,emerge的时候最好把IPv6的支持去掉(USE="-ipv6"),避免不必要的麻烦;)
emerge完成之后proftpd还不能用,因为你还没有配置文件。我在网上看的资料里说的配置文件的位置,与gentoo中不一样。gentoo里面就放在/etc/proftpd/proftpd.conf位置,但默认是没有这个文件
的,在同一个目录下有另两个文件:proftpd.conf.distru, proftpd.conf.example,这两个文件拷贝过去就能用,能实现一个最简单的允许anonymous登录的服务器。但对于proftpd来说,这个功能太简单
了,实际上它可以实现各种权限管理并有很多选项,让你的服务器完全满足你的要求。
proftpd只有一个配置文件那就是/etc/proftpd/proftpd.conf。而这个配置文件的格式也很简单,与Apache非常类似。它的配置基本格式是
#全局设置
设置项目1 参数1
设置项目2 参数2
#某个目录的设置
<Directory "路径名">;
...
...
</Directory>;
#关于匿名用户的设置
<Anonymous "匿名登陆的目录">;
...
...
<Limit 限制动作>;
...
...
</Limit>;
</Anonymous>;
这里用得最多的应该是<Limit>了,<Limit>动作用来设置访问权限,大致有如下动作:
CMD:Change Working Directory 改变目录
MKD:MaKe Directory 建立目录的权限
RNFR: ReName FRom 更改目录名的权限
DELE:DELEte 删除文件的权限
RMD:ReMove Directory 删除目录的权限
RETR:RETRieve 从服务端下载到客户端的权限
STOR:STORe 从客户端上传到服务端的权限
READ:可读的权限,不包括列目录的权限,相当于RETR,STAT等
WRITE:写文件或者目录的权限,包括MKD和RMD
DIRS:是否允许列目录,相当于LIST,NLST等权限,还是比较实用的
ALL:所有权限
LOGIN:是否允许登陆的权限
针对这些limit权限,又可以分别应用于以下几类对象:
AllowUser 针对某个用户允许的Limit
DenyUser 针对某个用户禁止的Limit
AllowGroup 针对某个用户组允许的Limit
DenyGroup 针对某个用户组禁止的Limit
AllowAll 针对所有用户组允许的Limit
DenyAll 针对所有用户禁止的Limit
举例来说,如果想限制anonymous的写权限,可以在<Anonymous ~ftp>子段中加入:
<Limit WRITE>
DenyAll
</Limit>
下面讲一个配置实例,这样起一个简单的服务器就没问题了:
<Global> #这个标记可有可无,后面如果设置多个虚拟站点的话显得清晰
IdentLookups off #关掉这个选项可以加快访问速度.
ServerName " roFTFD Default Installation" #服务器名
ServerType standalone #服务启动的类型,standalone or inetd
DefaultServer on
RequireValidShell off #不知道为什么,只知道如果开匿名的话需要
AuthPAM off #PAM是一种验证机制(Pluggable Authentication Modules),具体如何工作我也不清楚
AuthPAMConfig ftp
UseReverseDNS off #同样,关掉这个选项以加快速度.
Port 21 #服务端口,默认21
Umask 022 #默认新创建文件的权限,022防止其他用户写/修改
User nobody #服务器以谁的身份运行
Group nobody #服务器以哪个组身份运行
<Directory />
AllowOverwrite off
</Directory> #这里设置ftp根目录的一些权限,这里是不允许覆盖
#接下来设置anonymous用户了
<Anonymous ~ftp> #这里表示anonymous的主目录在/home/ftp
User ftp
Group ftp #anonymous实际是以ftp.ftp的身份登录的,anonymous是它的别名。
UserAlias anonymous ftp
MaxClients 10 #允许的最多anonymous访问数
DisplayLogin welcome.msg #如过主目录下有welcome.msg文件,就将它的内容显示为欢迎信息
DisplayFirstChdir .message #变更目录时显示的信息
#假设主目录下有一个incoming子目录
<Directory incoming>
<Limit WRITE DELE RMD XRMD RNFR RNTO>
DenyAll
</Limit>
</Directory> #incoming目录中的内容不能更该/删除/重命名等
<Limit WRITE>
DenyAll
</Limit> #拒绝所有位置的写权限
<Directory etc>
<Limit DIRS>
DenyAll
</Limit> #如果有etc目录的话,我一般不喜欢让匿名用户看见
</Anonymous>
以上配置文件完成了一个简单的匿名ftp服务器的配置。
这时候你可以将服务启动起来,测试它一下了!
#/usr/sbin/proftpd
如果要加成服务也非常简单,因为这时已经有个proftpd的脚本在/etc/init.d/proftpd了
#rc-update -a proftpd default
好了大功告成。
当然这个匿名服务器功能还是太简单了,froftpd实际上还有更多强大功能如虚拟主机,配合mysql的验证机制等,等着大家发掘哦! |
|