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

王朝厨房·作者佚名  2007-01-05
宽屏版  字体: |||超大  

[转贴]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

p;p; 不支持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去对这个文件

sp; 处理.当然.这个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> -[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> : o'''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&np'''pure-ftpd Ben'''

fi

;;

stop)

/usr/bin/killall pure-ftpd > /dev/null 2>&1 && echo -n&np'''pure-

ftpd Sp'''

;;

*)

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

&nbnbsp; 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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有