歡迎您光臨本站 註冊首頁

Pure-ftpd攻略(原BSD版精華貼)

←手機掃碼閱讀     火星人 @ 2014-03-04 , reply:0

Pure-ftpd攻略(原BSD版精華貼)

[轉貼]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中的段落中,有對上面的使用的
       詳細說明.在這裡我只對常用的做簡略的解釋.
       --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.(<umask for files>;:<umask for dirs>;)
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

   <Ex:>;
   useradd <login>; [-f <密碼文件>;] -u <uid>; [-g <gid>;]
                   -D/-d <主目錄>; [-c <gecos>;]
                   [-t <下載頻寬>;] [-T <上傳頻寬>;]
                   [-n <最多下載文件數>;] [-N <最多下載Mb>;]
                   [-q <upload ratio>;] [-Q <download ratio>;](上下傳比)
                   [-r <allow client ip>;/<mask>;] [-R <deny client ip>;/<mask>;]
                   [-i <allow local ip>;/<mask>;] [-I <deny local ip>;/<mask>;]
                   [-y <同時最多鏈接數>;]
                   [-z <hhmm>;-<hhmm>;](可登入時間24小時制) [-m]
   pure-pw usermod <login>; -f <passwd file>; -u <uid>; [-g <gid>;]
                   -D/-d <home directory>; -
                   [-t <download bandwidth>;] [-T <upload bandwidth>;]
                   [-n <max number of files>;] [-N <max Mbytes>;]
                   [-q <upload ratio>;] [-Q <download ratio>;]
                   [-r <allow client ip>;/<mask>;] [-R <deny client ip>;/<mask>;]
                   [-i <allow local ip>;/<mask>;] [-I <deny local ip>;/<mask>;]
                   [-y <max number of concurrent sessions>;]
                   [-z <hhmm>;-<hhmm>;] [-m]

   pure-pw userdel <login>; [-f <passwd file>;] [-m]

   pure-pw passwd  <login>; [-f <passwd file>;] [-m]

   pure-pw show    <login>; [-f <passwd file>;]

   pure-pw mkdb    [<puredb database file>; [-f <passwd file>;]]

   -d <home directory>; : chroot user (建議值)
   -D <home directory>; : 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 的選項

   -=因為那幾個都是很吃系統資源的工具=-

   <FreeBSD下可以.....>;
   *編輯/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 編輯 ]
《解決方案》

Pure-ftpd攻略(原BSD版精華貼)

為什麼我老是上不了  pure-ftp的網站???

我是長寬用戶..
《解決方案》

Pure-ftpd攻略(原BSD版精華貼)

我也是,上不了他的網站
《解決方案》

Pure-ftpd攻略(原BSD版精華貼)

怎麼修改MAKEFILE文件??
《解決方案》

Pure-ftpd攻略(原BSD版精華貼)

pure-ftp網站已經被中國電信封了,用代理可以上。
《解決方案》

Pure-ftpd攻略(原BSD版精華貼)

原帖由 "jsn"]pure-ftp網站已經被中國電信封了,用代理可以上。


莫名其妙!連這都要封!
《解決方案》

Pure-ftpd攻略(原BSD版精華貼)

代理好象可以上
《解決方案》

Pure-ftpd攻略(原BSD版精華貼)

翻譯得不是很詳細,不過pure-ftp的確不錯。
《解決方案》

Pure-ftpd攻略(原BSD版精華貼)

anonymous的根目錄怎麼設置?我按照上面的安裝后,結果anonymous登錄不上。客戶端顯示:421 Unable to set up secure anonymous FTP不知何故?
另外鄙人覺得pureftp在網路的限制上做得功能很強,選項好多,好爽。但是怎麼限制某個目錄對多個正常用戶設置不同的上傳和下載的允許屬性呢?proftp中可以用<Limit READ>;<Limit WRITE>;來限制允許上傳和下載。
《解決方案》

Pure-ftpd攻略(原BSD版精華貼)

:(  我的代理上不去,可以告訴我一個代理地址么?

[火星人 ] Pure-ftpd攻略(原BSD版精華貼)已經有1032次圍觀

http://coctec.com/docs/service/show-post-26839.html