免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1109 | 回复: 0
打印 上一主题 下一主题

FTP服务器之————PROftp [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-26 14:27 |只看该作者 |倒序浏览

以下内容引用自
http://bbs.topsage.com/dispbbs_118_187328.html
此链接中。
proftpd默认用户可以使用系统非root组的用户登录,登陆后都在自己的/home目录中。同时匿名用户不能登陆。而要对权限进行进一步的设置,需要在proftpd.conf里面进行定制。在默认的conf中,有如下的例子#
#     User      ftp
#     Group      nogroup
#     # We want clients to be able to login with "anonymous" as well as "ftp"
#     UserAlias     anonymous ftp
#     # Cosmetic changes, all files belongs to ftp user
#     DirFakeUser on ftp
#     DirFakeGroup on ftp
#
#     RequireValidShell    off
#
#     # Limit the maximum number of anonymous logins
#     MaxClients     10
#
#     # We want 'welcome.msg' displayed at login, and '.message' displayed
#     # in each newly chdired directory.
#     DisplayLogin     welcome.msg
#     DisplayFirstChdir    .message
#
#     # Limit WRITE everywhere in the anonymous chroot
#     
#      
#         DenyAll
#      
#     
#
#     # Uncomment this if you're brave.
#     #
#     #     # Umask 022 is a good standard umask to prevent new files and dirs
#     #     # (second parm) from being group and world writable.
#     #     Umask      022    022
#     #              
#     #              DenyAll
#     #              
#     #              
#     #              AllowAll
#     #              
#     #
#
# proftpd的配置文件的格式和apache很相似:#全局设置
设置项目1 参数1
设置项目2 参数2#某个目录的设置
...
#关于匿名用户的设置
...
..
其中最重要的就是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:是否允许登陆的权限针对这些设置,又有如下具体的配置:AllowUser 针对某个用户允许的Limit
DenyUser 针对某个用户禁止的Limit
AllowGroup 针对某个用户组允许的Limit
DenyGroup 针对某个用户组禁止的Limit
AllowAll 针对所有用户组允许的Limit
DenyAll 针对所有用户禁止的Limit同时,可以针对单独的用户来限制速度TransferRate STOR|RETR 速度(Kbytes/s) user 使用者
而对于虚拟用户,无法登陆的。所以,必须修改为下面是我的配置
User      ftp                                                          #指定用户的组和名称
Group      nogroup
UserAlias     anonymous ftp                          #使得ftp和匿名用户都能登陆
DirFakeUser on ftp
DirFakeGroup on ftp
RequireValidShell    off                                 
MaxClients     50                                             该用户的最大连接数
DisplayLogin     welcome.msg                    #显示欢迎信息,需要注意把msg文件放到登陆后的主目录
DisplayFirstChdir    .message
MaxClientsPerHost     3                               #限制每个主机最大连接数
                                                #这里是对目录进行设置,即不允许写
    DenyAll
                                  #对上传目录的设置,我们有一个incoming文件夹需要允许别人上传
Umask      022    022
                                             #不允许下载
    DenyAll
                                      #允许上传和新建目录
    AllowAll
同时,我们还需要对ftp进行管理。所以在系统中建立一个用户,名称为ftpadmin,属于nogroup组,不允许登陆。同时赋予它对ftp所有的权限
User      ftpadmin
Group      nogroup
   
     AllowAll
   
#global也可不要,后面如设置多个虚拟站点清晰
IdentLookups off #连接快些 还有后面的 UseReverseDNS
RequireValidShell off #匿名的一般需要加上这个
MaxLoginAttempts 1 #匿名的话1就可以了,最大密码验证次数
WtmpLog NONE #不记log到wtmp
DenyFilter \*.*/.ftpaccess #DenyFilter做一些过滤,正则表达式
#DenyFilter ~!`\**/?,$@ # 根据自己需要写吧,上面的好烂:P
#LsDefaultOptions "-l" #ls参数
#AllowForeignAddress on #要允许 FXP 写成 on
CommandBufferSize 128 #最大命令长度
DirFakeUser On FTP #不显示给用户真实的用户、组
DirFakeGroup On FTP
DeferWelcome on #显示欢迎信息
PathDenyFilter "(^\.ftpaccess$)" #同DenyFilter 过滤用
User nobody #proftpd 以哪个用户、组的身份运行
Group nobody
TimesGMT off #时间
DenyAll
#出于某些考虑,开始禁掉,后面需要再打开。READ也可加过来...
#也可以这里设置允许连接的网段 Login,或者后面,建议用防火墙
IgnoreHidden on
HideNoAccess on
AllowOverwrite off #禁止重写覆盖,后面打开允许续传
#AllowRetrieveRestart默认是on 也可以写进来
ServerName "FTP server"
ServerType standalone #运行方式 还可以用 inetd xinetd
ServerIdent on "Welcome to FTP" #身份验证前显示给用户的,也可用文件,这里略
DefaultServer on
UseReverseDNS off #加快连接速度
Port 21 #FTP端口
Umask 022 #掩码 为了便于管理 用 002
PassivePorts 20000 30000 #被动模式端口段
SystemLog /var/proftpd/syslog #log 注意自己加上 logrotate 配置
MaxInstances 250 #最大
TimeoutLogin 30 #身份验证超时
TimeoutIdle 120 #发呆超时
TimeoutNoTransfer 300 #无数据传输超时
#TimeoutStalled 300
#log一些自定义格式,根据需要调整或者用默认
LogFormat myxfer "%h %u %t \"%r\" %s %b"
LogFormat default "%h %a %u %t \"%r\" %s %b $$ \'%F\'"
LogFormat auth "%h %a %t \"%r\" %s"
LogFormat write "%h %a %t \"%r\" %s %b"
#匿名的根目录 记得设置相应目录权限,ftp 用户应至少有 r x 权限
User ftp
Group ftpadmin
Umask 002
UserAlias anonymous ftp
MaxClients 50 "客满(%m)" #人多时的提示信息,可以用一些变量
#RateReadBPS 500000 #限速用
MaxClientsPerHost 2 "连接数多" #一个IP的连接数
TransferLog NONE #log
ExtendedLog /var/proftpd/upload.log write myxfer #log
ExtendedLog /var/proftpd/download.log read myxfer #log
DisplayLogin etc/welcome #欢迎文件,可以用一些变量
DisplayFirstChdir .message #改变目录时显示的消息
AuthAliasOnly on #只允许 UserAlias 过的 这里只允许 anonymous 不允许ftp
AllowAll
#打开允许连接,可以这是允许访问的网段,建议防火墙
AllowStoreRestart on #允许上传目录,可以续传,不能覆盖
AllowAll
#如果不想让下载,只让上载 可以加上
# DenyAll
#到这差不多就完了,每个目录可以写 .ftpaccess 设置权限
#后面这两个可以参考根据需要
#在FTP根目录又不让看的,上面把欢迎信息放里面了,当然可以放别的
DenyAll
#限制特定IP段能看的,也可在目录的.ftpaccess里面设置
Order deny,allow
Allow from 166.111.
#到这匿名的就完了
#加帐号密码可以用多种方式,密码文件,数据库等
#如果用系统的帐号,可以用 DefaultRoot 限制活动目录,比如把TA堵在家里 ~
#还有别的很多 根据需要自己看文档吧 比如打开MultilineRFC2228等
#
#记得设置相应目录权限,r x 一个都不能少
#记得设置文件权限(chmod/chown) 配置 .ftpaccess
#应该了解 ls rm chmod chown find xargs crontab 等命令以便进行简单管理
#kill/killall -HUP 或者用脚本 ftpshut ftpwho
#rm -f /etc/shutmsg
#相应的辅助工具还有很多,也可以自己写脚本


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/12297/showart_1667266.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP