Pure-ftpd攻略(原BSD版精华贴)

zt371 发布于 2009/05/06 10:57
阅读 315
收藏 0

MySQL连接为什么挂死了?别踩坑!>>>

[转贴]Pure-ftpd on FreeBSD之攻略(中文简体版) 

 
作者:leolee761128     发表时间:2002/12/22 11:57am
 
  此贴(繁体原版)MaxBSD以前已经贴出来过,个人感觉看起来不方便,就把它弄成了简体的,希望对大家有点帮助。
有错漏的地方请指正,谢过!
********************************************************************************
                  Pure-ftpd on FreeBSD之攻略
                                             ----[作者]far
<一>;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
#<文件数:Megabytes>;
CallUploadScript                yes
#呼叫UploadScript
MaxDiskUsage                    99
#当硬盘使用率到多少時将停止上传
NoRename                        yes
#不给改文件名
PerUserLimits                   3:20
#<每个账号最多可登入几次:Anonymous最多可同時登入几次>;
#############################
   -----------------------------------------------------------
<四>;建立账号
   有了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 <最多下载Mb>;]
                   [-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

[ 本帖最后由 wolfg 于 2007-1-2 16:44 编辑 ]



加载中
返回顶部
顶部