3.配置实例
建立一个单机(standalone)模式的FTP服务器:
建立配置文件如下:
ServerName “FTP Server”
ServerType standalone
DefaultServer on
Port 21
Umask 027
MaxInstances 30
User nobody
Group nogroup
<Directory /*>
AllowOverwrite off
</Directory>
使用su命令切换为root用户。
在/etc/rc.d/init.d目录中安装启动脚本:cp ./contrib/dist/rpm/proftpd.init.d /etc/rc.d
/init.d/proftpd
添加一个新组:groupadd nogroup。
建立符号链结让FTP服务器随启动自动启动:ln -/etc/rc.d/init.d/proftpd /etc/rc.d/rc3.d/S95proftpd
测试连接情况:从客户端测试proftpd是否正常运行:
C:WINDOWS>ftp 192.168.2.33
Connected to 192.168.2.33.
220 ProFTPD 1.2.0rc3 Server (ProFTPD Default Installation)[ftpd.test.com.cn]
User (192.168.2.33:(none)): ideal
Password:
230 User ideal logged in.
ftp>
ProFTPD的控制命令:/etc/rc.d/init.d/proftpd stop 关闭服务器
/etc/rc.d/init.d/proftpd start 启动服务器
/etc/rc.d/init.d/ proftpd reload 重新加载修改后的配置文件etc/proftpd.conf并且启动服务器。
4.建立一个安全的匿名ProFTPD站点
如果人们只需要从FTP服务器等到一些小文件(几兆),可以使用Apache web服务器代替匿名FTP站点。如果要通过一个匿名账号频繁上传、下载文件,就要建立一个安全的ProFTPD服务器。下面是配置文件/etc/proftpd.conf内容(其中incoming目录容许用户上传文件):
<Anonymous ~ftp>
User ftp
Group ftp
RequireValidShell off
UserAlias anonymous ftp
MaxClients 40
<Directory *>
<Limit WRITE>
DenyAll
</Limit>
</Directory>
<Directory incoming>
<Limit WRITE>
AllowAll
</Limit>
<Limit READ>
DenyAll
</Limit>
</Directory>
</Anonymous>
根据以上内容建立的ProFTPD服务器会为自动连接到匿名ProFTPD服务器的用户创建一个chroot限制,用户的主目录为站点的根目录。下面解释主要配置指令的作用:
User 和 Group:这两个指令确保User ftp和Group ftp拥有所有匿名会话。
RequireValidShell:由于在/etc/passwd中没有用户FTP的有效列表,所以该指令说明ProFTPD允许User ftp的匿名会话。
UserAlias:该指令把anonymous赋予FTP账号,以便所有用户可以使用ftp和anonymous作为用户名登录匿名FTP服务器。
MaxClients:这里限制匿名连接数目是40,你可以根据系统负载设定连接数目。
<Directory>容器:这些容器给定目录的各种限制:
第一个目录容器对每个用户和每个目录禁止写权限(包括上传、删除和修改)。
第二个目录容器在incoming子目录中给每个用户写权限。
最后一个Limit指令确保在incoming子目录中上传文件的用户不能查看和恢复目录中的文件。
5. 设定虚拟主机
可以通过指令:VirtualHost来实现虚拟主机,一个最简单的例子:
<VirtualHost 192.168.2.35>
ServerName "virtual FTP server"
</VirtualHost>
若你仅仅希望通过匿名访问某个虚拟主机,则使用如下的指令:
<Anonymous ~student>
User student
Group ftp
MaxClientsPerHost 1 "Sorry,This ftp only use one''s IP connect!!"
AnonRequirePassword on
RateReadBPS 512000 “限制带宽最大速度”
RateReadFreeBytes 512000
RateReadHardBPS on
<Limit LOGIN /home/student/*>
Order allow,deny
Allow from 192.16.*.* “限制IP登陆范围”
Deny from all
</Limit>
<Limit READ> “设置/home/student用户可以读”
AllowAll
</Limit>
<Limit DELE> “不能删除 文件”
DenyAll
</Limit>
<Limit RNFR> “不可更名文件”
DenyAll
</Limit>
<Limit MKD> “不可建立文件目录”
DenyAll
</Limit>
</Anonymous>
Limit参数说明:
CWD :Change Working Directory,变换目录之意;
MKD :MaKe Directory,可建立目录与否;
RNFR :ReName FRom,可更改档名与否;
DELE :DELEt,可删除文件语法;
RMD :ReMove Directory,可移除目录与否;
RETR :RETRieve,下载之意由服务器传送数据到客户端;
READ :可读取与否 ;
WRITE:可写入与否 ;
STOR :STORe,上传之意,由客户端传送数据到服务器;
ALL :允许全部的动作;