免费注册 查看新帖 |

Chinaunix

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

Pure-ftpd攻略 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-06-23 21:35 |只看该作者 |倒序浏览

Pure-ftpd攻略
PureFTPD介紹
   顾名思义.他是纯粹的一套FTPD.(-.-"废话).她好用在哪里?唔...就是
   好用.用了就对了.问那么多干嘛.^_^!!
   --------------------------------------------------------------
安裝PureFTPD
   FreeBSD的ports里面也有.如果你偷懒的話.可以直接到ports下安裝即
   可(/usr/ports/ftp/pure-ftpd).不过我建议你去他的官方网站抓
   新版的(http://www.pureftpd.org/).我用的是1.0.12版.用起来还不错.
   以往我都是懒人安裝法:到ports目录下打make install clean.完成!!
   后来.发现用ports装並不能將pure-ftpd的強大体现出来.(其实是旧版
   fxp支持上有问題.)所以...难得...这么懒的我.也就用source装了.
   废话了好多.:D
   A。把抓下来的source解开.(建议解在/tmp下)
   #tar zxvf pure-ftpd-1.0.12.tar.gz
       如果沒事做.可以看看里面的README.* 很值得看.如果你有什
       么特殊需求的话.也可以直接在里面去找.应该是可以找到你要的东
       东.(Ex: LDAP.MySQL.Virtual.......)
   B。开始准备依你的意愿做出你想要的ftp-server.
   #./configure --with-paranoidmsg --with-sysquotas --with-puredb  
     --with-altlog --with-throttling --with-ratios --with-ftpwho  
     --with-welcomemsg --with-uploadscript --with-largefile  
     --with-virtualhosts --with-virtualchroot --with-diraliases  
     --with-quotas --with-peruserlimits --with-language=traditional-chinese
       在README中[ADVANCED COMPILATION]的段落中,有对上面的使用的
       详细说明.在这里我只对常用的做简略的解释.
       --without-standalone
           不能以standalone的方式执行ftpd.
       --without-inetd
           不能以inetd的方式执行ftpd.
       --without-iplogging
           做log時不将IP 地址给log下來.
       --without-shadow
           不做shadow.除非是用PAM, LDAP or SQL.不然极不建议拿掉.
       --without-usernames
           文件列表只会列出UID & GID,不列出实际user or group name.
       --without-humor
           嘿嘿嘿....
       --without-ascii
           不支持7-bits transfers(ASCII).
       --with-paranoidmsg
           唔....不知该怎么说.算是可以给特定人的信息吧.
       --with-sysquotas
           吃系统的quota设定.
       --with-minimal
           最小化安裝.
       --with-pam
       --with-puredb
       --with-ldap
       --with-mysql
       --with-pgsql
           以上五种都是存储资料的格式?!(算吧?!).看你比较习惯什么.
           我是比较喜欢用puredb.
       --with-altlog
           留log拉....
       --with-cookie
           使用者进站看到的东东.类似进站画面.
       --with-ratios
           上下传比.
       --with-throttling
           频宽可设限.
       --with-ftpwho
           可用pure-ftpwho來看线上使用者.像是Serv-u的线上状态.
       --with-uploadscript
           当一个文件被完整上传完后自动呼叫某一script去对这个文件
           处理.当然.这个script得你自己写.
       --with-largefile
           支持下载超过2G的文件.
       --with-virtualhosts
           跟http的virtualhost有异曲同工之妙.
       --with-virtualchroot
           配合上面的chroot.
       --with-diraliases
           跟Serv-U上面的link功能一样.
       --with-nonroot
           不需root权限.一般user即可启动ftpd.
       --with-quotas
           使用quota.(非系统下的quota)
       --with-peruserlimits
           enable per-user concurrency limits.Avoid this on
           very loaded servers.(太难翻译了)
       --with-everything
           所有功能全上.
       --with-language=traditional-chinese
           显示出来的信息的语言.缺省为英语.
           (意外的发现.在config.h中作者以为大陆用traditional-chinese
            台湾用simplified-chinese.但不管如何,这不影响我们的使用)
   C.好了就准备安装上去吧!!
   #make ; make check ; make install
   D.把一些东东搬到该放的位置.
   #chmod 755 configuration-file/pure-config.pl
   #cp configuration-file/pure-config.pl /usr/local/sbin/
   #cp configuration-file/pure-ftpd.conf /usr/local/etc/
-------OK.PureFTPD就这样装完了.其他Config等下回分解.:p-----------
   在上一章节.我们已经成功把PureFTPD架起来了.现在我们要开始设定他的设定文件.:)
--------------------------------------------------------------------------
pure-ftpd.conf的设定
   *在上一次,我们把PureFTPD的default设定文件(pure-ftpd.conf)拷贝一
   份在/usr/local/etc/下.(其实哪都可以,只是我习惯).建议再拷贝
   一份叫pure-ftpd.xxx.conf(如果你要跑多支ftpd的话.xxx部分可以自
   由替代成你要的名字.方便就好).开始编辑pure-ftpd.xxx.conf.
   #vim pure-ftpd.xxx.conf (看你喜欢用什么编辑器.自己选用)
####pure-ftpd.xxx.conf#######
ChrootEveryone                  yes
TrustedGID                      50
#以上两者要一起用
BrokenClientsCompatibility      no
MaxClientsNumber                999
#最大链接数
Daemonize                       yes
#Fork in background
MaxClientsPerIP                 5
#每个ip最多链接数
VerboseLog                      no
#是否要把所有client端的指令都log下来
DisplayDotFiles                 no
#显示开头的文件
AnonymousOnly                   no
#是否只让匿名登录
NoAnonymous                     yes
#不开放匿名登入
SyslogFacility                  ftp
DontResolve                     yes
#不反向解释客户端的ip
MaxIdleTime                     5
#最大闲置時間
PureDB                          /ftp/etc/pureftpd.pdb
#使用者资料的DB存放地点 [由于我是用PureFTPD的內建DB.固有此选项]
UnixAuthentication              yes
#如果你想要有简单的Unix(/etc/passwd)的认证的話
LimitRecursion                  1000 3
#ls最多列出1000个文件.最深3层
MaxLoad                         4
#当system load超过4時.使用者将不能再下载
AntiWarez                       no
#上传的文件不能被下载(owner is ftp).等到local admin确认
Bind                            21
#要绑定哪个ip/port
#格式-> 127.0.0.1,21 如果只写port表All ip,port
Umask                           133:022
#上传文件的Umask.(:)
MinUID                          1000
# UID至少多少才能登录
AllowUserFXP                    yes
#支不支持FXP
ProhibitDotFilesWrite           no
ProhibitDotFilesRead            no
#.开头的文件能不能被读写
AutoRename                      no
#上传文件若有相同文件名自动改名(file.1,file.2...)
TrustedIP                       10.1.1.1
#锁IP.
AltLog                          stats:/ftp/etc/log/pureftpd.log
#log存放地点
NoChmod                         yes
#不给Chmod指令的权限
KeepAllFiles                    yes
#使用者可续传.但不可刪除文件
CreateHomeDir                   no
#如果user的home不存在自动建立
PIDFile                         /ftp/etc/log/pure-ftpd.pid
#记录pure-ftpd的PID文件
Quota                           1000:10
#
CallUploadScript                yes
#呼叫UploadScript
MaxDiskUsage                    99
#当硬盘使用率到多少時将停止上传
NoRename                        yes
#不给改文件名
PerUserLimits                   3:20
#
#############################
   -----------------------------------------------------------
建立账号
   有了ftp.理所当然得也要有账号才行.
   #vipw
   ftpuser:$1$rEO39XEq$kRMKuch12ugYu3hCh/sPA.:9999:9999::0:0:ftp:/ftp:
   /sbin/nologin
   #vim /etc/group
   ftpgroup:*:9999:
   上面是ftp 客户以什么身分登入.
   接下来我想要把pure-ftpd要吃的密码文件选个地方放.我是选择放在/ftp/etc/下
   #pure-pw far -f pureftpd.ps -u 9999 -g 9999 -d /ftp/far -y 2
   #pure-pw mkdb pureftpd.pdb -f pureftpd.ps
   
   useradd  [-f ] -u  [-g ]
                   -D/-d  [-c ]
                   [-t ] [-T ]
                   [-n ] [-N ]
                   [-q ] [-Q ](上下传比)
                   [-r /] [-R /]
                   [-i /] [-I /]
                   [-y ]
                   [-z -](可登入時间24小时制) [-m]
   pure-pw usermod  -f  -u  [-g ]
                   -D/-d  -[c ]
                   [-t ] [-T ]
                   [-n ] [-N ]
                   [-q ] [-Q ]
                   [-r /] [-R /]
                   [-i /] [-I /]
                   [-y ]
                   [-z -] [-m]
   pure-pw userdel  [-f ] [-m]
   pure-pw passwd   [-f ] [-m]
   pure-pw show     [-f ]
   pure-pw mkdb    [ [-f ]]
   -d  : chroot user (建议值)
   -D  : don't chroot user
   -y 0 : 同時最多链接数不限
   -m : 同時更新/etc/pureftpd.pdb文件.(如果PureDB不放置在此的请不要加)
   For a 1:10 ratio, use -q 1 -Q 10
   To allow access only between 9 am and 6 pm, use -z 0900-1800
   ****************************************************************
   关于文件权限部份.(需要將可Upload的使用者改成ftpuser:ftpgroup.可
   下载的文件权限也要是644)
   #chown -R ftpuser:ftpgroup Upload/
   ------------------------------------------------------------------
启动
   到/usr/local/bin/rc.d/下编辑一个pure-ftpd.sh
#############################
#!/bin/sh
case "$1" in
       start)
               if [ -f /usr/local/etc/pure-ftpd.xxx.conf ]; then
                       /usr/local/sbin/pure-config.pl /usr/local/etc/pure-
ftpd.xxx.conf > /dev/null 2>&1 && echo -n 'pure-ftpd Begin!'
               fi
               ;;
       stop)
               /usr/bin/killall pure-ftpd > /dev/null 2>&1 && echo -n 'pure-
ftpd Stop!'
               ;;
       *)
               echo ""
               echo "Usage: `basename $0` { start | stop }"
               echo ""
               exit 64
               ;;
esac
#############################
   #chmod +x pure-ftpd.sh
   #./pure-ftpd.sh start
   ok...开始测试看看吧
   ftp xxx.far2.net 21
   Connected to ftp.far2.net.
   220-=()=-.:. (( 欢迎来到 PureFTPd 1.0.12 )) .:.-=()=-
   220-您是第 48 个使用者,最多可达 999 个连线
   220-现在本地時间是 19:52 负载是 1.37。服务器端口: 21。
   220-这是私用系统 - 不开放匿名登入
   220 在 5 分钟內沒有活动,您会被断线。
   Name (xxx.far2.net:far):far
   331 使用者 far OK. 需要密码.
   Password:
   230-使用者 far 有群组存取于:  ftpgroup
   230-这个服务器支持FXP传输
   230 OK. 目前限制的目录是 /
   Remote system type is UNIX.
   Using binary mode to transfer files.
   ftp>
   当你看到以上信息時.恭喜你.你已经成功的架起一个ftp了.:)
   --------------------------------------------------------------------
   是不是很简单呢.现在你可以好好享用你的FTP Server了.:)
   --------------------------------------------------------------------
   ps.如果你是超超超超超超大的b3k站.PureFTPD下面有几点建议.
   * Compile with :
   #env CFLAGS="-O2 -fomit-frame-pointer -fgcse -Os"
   #./configure --with-minimal --without-inetd --without-pam
   #make install-strip
   -=特殊功能都不要加.以减轻Server负担=-
   *用standalone的模式去启动.不要打开pure-ftpwho & pure-uploadscript
     & per-userlimits 的选项
   -=因为那几个都是很吃系统资源的工具=-
   
   *编辑/etc/fstab, 对所有filesystems的options增加",noatime"
   *在/boot/loader.conf里增加以下两行
     hw.ata.wc="1"
     kern.ipc.nmbclusters="60000"
   *在/etc/sysctl.conf里增加
     vfs.vmiodirenable=1
     kern.ipc.maxsockbuf=2097152
     kern.ipc.somaxconn=8192
     kern.ipc.maxsockets=16424
     kern.maxfiles=65536
     kern.maxfilesperproc=32768
     net.inet.tcp.rfc1323=1
     net.inet.tcp.delayed_ack=0
     net.inet.tcp.sendspace=65535
     net.inet.tcp.recvspace=65535
     net.inet.udp.recvspace=65535
     net.inet.udp.maxdgram=57344
     net.local.stream.recvspace=65535
     net.local.stream.sendspace=65535
     求一下土地公.让你等一下不用跑机房.然后reboot.重开机后就大功告成.
     PS.你问我上面的参数有沒有用?唔...我加了.至于效果么.....站不够大.
     所以...不知道.你可以试试跟我说...:DD


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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP