Proftpd的配置文件:ProFTPD设计目标是实现一个安全且易于设定的FTP Server。目前Unix或类Unix平台上 FTP Server十分有限,最常使用的恐怕就是wu-ftpd了。虽然wu-ftpd有着极佳的效能同时也是一套很好的软件,然而它却欠缺了许多Win32平台上FTP Server的一些特色,同时wu-ftpd过去也有不少的安全漏洞陆续被发现。ProFTPD的原创者本身就曾经花非常多的时间寻找wu-ftpd 的漏洞加以改进并且增加许多功能。然而十分不幸的是,他很快地发现显然wu-ftpd需要全部重新的改写才能补足欠缺的设定能力以及缺乏的一些功能。ProFTPD不是从其它FTP Server的既有原始码修改而产生的,相反的,它是完全独立而完整、重新改写的FTP Server。
新建两个用户:ftp和ftpadmin,home目录都是/home/ftp
下面是proftpd的配置文件,比较全面的配置
- # cat /usr/local/etc/proftpd.conf
-------------------------------------------------------------------------
ServerName "babydragon's FTP" #服务器的名字
ServerType standalone #proftpd运行的方式,有standalone和inetd
DeferWelcome off #只有在认证用户之后才显示欢迎信息
Port 21 #ftp连接端口
Umask 002 #新文件的权限掩码
TimeoutLogin 120 #登陆时允许idle的时间
TimeoutIdle 600 #登陆后允许idle的时间
TimeoutNoTransfer 900 #没有数据传输时允许idle的时间
AllowStoreRestart on #允许断点续上传
AllowRetrieveRestart on #允许断点续下载
PassivePorts 50000 65534 #指定数据端口的范围
User nobody #以nobody,nogroup的身份运行程序
Group nogroup
RequireValidShell no #用户是否拥有shell,关闭安全
MaxClientsPerHost 2 #每个ip只能有两个连接
MaxClientsPerUser 1 #每个帐号只能有一个连接
DefaultRoot ~ #ftp的根目录,~限制用户只能访问自己的目录
UseReverseDNS off #关闭DNS反向查询,节省连接时间
TransferLog /var/spool/syslog/proftpd/xferlog.legacy #数据传输记录
LogFormat auth "%v %P %h %t "%r\" %s"
LogFormat write "%h %l %u %t "%r\" %s %b"
# 定义了几种日志格式,可以根据自己的需要定制:
# %a:客户ip
# %A:匿名用户名(就是匿名用户的password)
# %b:发送请求的字节数
# %d:目录名(相对路径)
# %D:目录名(绝对路径)
# %f:上传或下载的文件名(绝对路径)
# %F:上传或下载的文件名(相对路径)
# %h:客户的域名
# %L:本服务器ip
# %m:客户发送的命令
# %p:本服务器的端口
# %P:服务进程的id
# %r:客户发送的整条命令
# %t:本地时间
# %T:传送文件所用的时间(秒)
# %u:客户登陆的用户名
#设置一些全局参数
DisplayLogin welcome.msg
#显示~/welcome.msg中的欢迎信息,可以编辑welcome.msg自己制定欢迎信息
# %T 当前的时间
# %F 所在硬盘剩下的空间
# %C 当前所在的目录
# %R:客户的主机名
# %U:客户登陆的帐号
# %M:允许最大连接数
# %N:当前的连接人数
# %E:FTP服务器管理员的email
# %i:本次上传的文件数量
# %o:本次下载的文件数量
AllowOverwrite yes #允许文件可以重新写
IdentLookups off #查找客户的远程用户名,关掉节省连接时间
ExtendedLog /var/spool/syslog/proftpd/access.log WRITE,READ write
#以write的日志格式记录READ,WRITE的日志
ExtendedLog /var/spool/syslog/proftpd/auth.log AUTH auth
#以auth的日志格式记录AUTH的日志
User ftp
Group ftp
UserAlias anonymous ftp #匿名用户以ftp用户登陆
RequireValidShell no #用户有没shell也可以使用FTP(安全)
MaxClients 20 #最大客户数
MaxInstances 30 #连接的间隔时间
MaxLoginAttempts 10 #连接的最大次数
Order deny,allow
Deny from 172.16.0.0/11 #禁止172.16.0.0/11网段访问
Allow from all
AllowAll #所有人在pub目录有读权限
AllowUser ftpadmin #ftpadmin用户拥有写权限
DenyAll #其他用户无写权限
RateReadBPS 1024000 #下载最高速1M/s
RateReadFreeBytes 10240000 #下载总速度不超过10M/s
AllowAll #所有人都可以在incoming目录上传文件,新建目录
AllowUser ftpadmin #允许ftpadmin用户写
DenyAll #其他用户无写权限
RateWriteBPS 1024000 #上传最高速1M/s
RateWriteFreeBytes 10240000 #上传总速度不超过10M/s
#
# CWD:改变所在目录
# MKD/XMKD:新建目录
# RNFR/RNTO:重命名目录的(一起使用)
# DELE:删除文件
# RMD/XRMD:删除目录
# RETR:下载
# STOR:上传
# LOGIN:登陆
# READ:包括了RETR,SITE,SIZE,STAT
# WRITE:包括了APPE, DELE, MKD, RMD, RNTO, STOR, XMKD, XRMD
# DIRS:包括了DUP, CWD, LIST, MDTM, NLST, PWD, RNFR, XCUP, XCWD, XPWD
# ALL:包括了READ WRITE DIRS
#以上权限结合动作一起使用:
# AllowUser:允许某个用户
# DenyUser:禁止某个用户
# AllowGroup:允许某个用户组
# DenyGroup:禁止某个用户组
# AllowAll:允许所有用户
# DenyAll:禁止所有用户
【编辑推荐】