精華區beta FreeBSD 關於我們 聯絡資訊
※ 引述《[email protected] (rain)》之銘言: : 請問有哪個中文(簡體也可以)網站在教pure-ftpd的設定? : 謝謝...... 這個...我以前寫過一份文件.[隨便亂寫,希望對你有點幫助.:Q] [作者] far (....qo0.0op....) [看板] far [標題] [文件] Pure-ftpd on FreeBSD之攻略1 [時間] Thu Jun 20 14:23:05 2002 ───────────────────────────<咖啡*微醺>───── 唔....由於實際上需求.試過了不少ftpd.都沒有找到如我所願的ftpd. 自從我用了pure-ftpd後..我的ftp就不再委靡不振了....(感覺像是在 第四台做廣告...-_________-!!).Anyway.今天實在是因為讀書讀瘋了. 所以心情不好來寫寫Document.騙騙一些初生之犢.:Q -------------------------------------------------------------- <一>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 Adress給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 最小化安裝...:Q --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的file. --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 顯示出來的msg的語言.default=english. (意外的發現.在config.h中作者以為大陸用traditional-chinese 台灣用simplified-chinese.Anyway..不影響) C.好了就準備安裝上去吧!!:DD #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----------- [作者] far (....qo0.0op....) [看板] far [標題] [文件] Pure-ftpd on FreeBSD之攻略2 [時間] Thu Jun 20 20:46:08 2002 ───────────────────────────<咖啡*微醺>───── 再上一章節.我們已經成功把PureFTPD架起來拉.現在我們要開始設定他 的設定檔摟.:) -------------------------------------------------------------- <三>pure-ftpd.conf的設定 *在上一次,我們有把PureFTPD的default設定檔(pure-ftpd.conf)cp一 份在/usr/local/etc/下.(其實哪都可以,只是我習慣).比較建議再cp 一份叫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 #不反解client的ip MaxIdleTime 5 #最大閒置時間 PureDB /ftp/etc/pureftpd.pdb #使用者資料的DB存放地點 [由於我是用PureFTPD的內建DB.固有此選項] UnixAuthentication yes #如果你想要有簡單的Unix(/etc/passwd)的認證的話 LimitRecursion 1000 3 #ls最多list出1000個檔案.最深3層 MaxLoad 4 #當system load超過4時.使用者將不能再下載 AntiWarez no #上傳的檔案不能被Download(owner is ftp).等到local admin確認 Bind 21 #要Bind住哪個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 #<每個account最多可登入幾隻:Anonymous最多可同時登入幾隻> ############################# ----------------------------------------------------------- <四>建立帳號 有了ftp.理所當然得也要有帳號才行. #vipw ftpuser:$1$rEO39XEq$kRMKuch12ugYu3hCh/sPA.:9999:9999::0:0:ftp:/ftp: /sbin/nologin #vim /etc/group ftpgroup:*:9999: 上面是ftp client以什麼身分登入. 接下來我想要把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>](可登入時間24hr制) [-m] pure-pw usermod <login> -f <passwd file> -u <uid> [-g <gid>] -D/-d <home directory> -[c <gecos>] [-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 ------------------------------------------------------------------ 其實PureFTPD還有很多奇怪變態神奇功能.大家可以慢慢研究.抑或等 小弟的Pro篇.....:p 什麼時候會出?唔...等我讀書又讀瘋的時候.....XD. -- [版權,沒有.翻印,就得研究.XD] -- 是因為我們都太年輕了 還是都太害怕牽絆 才讓自己愛上這種"曖昧" 然後任自己在猜測中游走 不會太遠 又不敢太近 -- ※Post by far from caffeine -- 是因為我們都太年輕了 還是都太害怕牽絆 才讓自己愛上這種"曖昧" 然後任自己在猜測中游走 不會太遠 又不敢太近 -- ※Post by far from caffeine ζ Φ工管咖啡因.════╮ζ █DΠΕΜfar.twbbs.org█D