免费注册 查看新帖 |

Chinaunix

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

[原创]pure-ftp搭建ftp服务器。 [复制链接]

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-05-09 13:45 |只看该作者 |倒序浏览
前言
    看了很多unix下的ftp的搭建文章,感觉大家常用的就是vsftp、wu-ftp、proftp和pure-ftp。以上的一些我都用过,感觉pure-ftp还是很不错的,值得推荐给大家。
   
关于pure-ftp
这里就仔细说了,纤细的东西去www.pureftp.org中看去吧。反正我认为这个是一个能和win2k下的Ser-U一样比美的ftp软件。
关于做ftp,大家都喜欢和mysql结合,给人的感觉是不用系统用户,安全。但是除了数据库的认证外,我个人骗爱用系统本身的库来记录。优点是是虚拟用户,也没有数据库的烦琐。


安装环境:
硬件:sun sparc u80
系统:solaris9

安装前准备
给系统大补丁,去sun的网上去找。
# unzip 9_Recommended.zip
# cd 9_Recommended
# ./install-cluster

去sunfreeware.com上找一些必要的系统工具
# pkgadd -d tar-1.13.19-sol9-sparc-local
# cp /usr/local/bin/tar /lib/tar
# cp /usr/local/bin/tar /usr/lib/tar  ---替代solaris9自带的tar,以为它不认长文件名
# pkgadd -d top-3.5beta12.5-sol9-sparc-local
# pkgadd -d autoconf-2.57-sol9-sparc-local
# pkgadd -d automake-1.7.2-sol9-sparc-local
# pkgadd -d bison-1.75-sol9-sparc-local
# pkgadd -d gcc-2.95.3-sol8-sparc-loca
# pkgadd -d gdb-6.0-sol9-sparc-local
# pkgadd -d glib-2.2.3-sol9-sparc-local
# pkgadd -d libgcc-3.3-sol9-sparc-local
# pkgadd -d make-3.80-sol9-sparc-local
# pkgadd -d ncurses-5.3-sol9-sparc-loca
# pkgadd -d nessus-2.0.5-sol9-sparc-local
# pkgadd -d zlib-1.2.1-sol9-sparc-local
----注:虽然多了点,但是省得以后麻烦。
# groupadd www
# useradd -d /export/home/www -g www -m www
# passwd www  --设置www用户密码

1、安装pureftp。

# /usr/local/bin/tar zxvf pure-ftpd-1.0.17a.tar.gz
# cd pure-ftpd-1.0.17a
# ./configure --prefix=/data/pureftpd
   --without-inetd --with-puredb
   --with-cookie --with-throttling
   --with-ratios --with-quotas
   --with-ftpwho --with-largefile
   --with-welcomemsg
   --注:具体参数设置,看看文件包中的readme就知道了。
# make
# make install
# mkdir /data/pureftpd/etc

2、制作启动脚本
# vi /etc/rc2.d/S98pureftpd
*********************
   #!/bin/sh
    # peng 20040225
    /data/pureftpd/sbin/pure-ftpd -j -lpuredb:/data/pureftpd/etc/pureftpd.pdb &

3、pureftp的使用
1、添加用户:
# pure-pw useraddd ftpuser -f ftppasswordd -u uid -g gid -d homedirectory -m

   ---注:ftpuser :ftp用户
       -f ftppassword:存放用户密码信息的文件
       -u 用户uid  一般是系统的一个用户,就是你的ftp用户的家目录的用户
       -g 用户组id
       -d 锁定用户在家目录
       -m 使pureftp.d.passwd写进pureftpd.pdb,使更改生效。

例如:添加一个用户peng,密码保存在/data/pureftpd/etc/ftppasswd文件中,组id是www,用户id是www,用户锁定在家为/data/web/peng。
# mkdir /data/web/peng
# chown -R www:www /data/web/peng
# /data/pureftpd/bin/pure-pw useradd peng -f /data/pureftpd/etc/ftppasswd -u www -g www -d /data/web/peng -m
输入两遍密码,就ok了。

2、修改用户:
# pure-pw usermod --help

3、删除用户:
# pure-pw userdel <login>; [-f <passwd file>;] [-m]

4、更改拥护密码:

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

5、查看用户详细内容:

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

6、生成db文件,使密码生效:
# pure-pw mkdb    [<puredb database file>; [-f <passwd file>;]]

7、列出所有用户:
# pure-pw list    [-f <passwd file>;]

当你完成以上操作,一定要重起服务,pure-ftp就构架成功。

总结:
    当然了,这里只是简单的介绍了一些pure-ftp的构建和使用,如果你想发现他的其他特性和优点,可以仔细看这个软件包中的redme.*文件,pure-ftp的强大和完美不仅如此。

论坛徽章:
0
2 [报告]
发表于 2004-05-09 22:40 |只看该作者

[原创]pure-ftp搭建ftp服务器。

PENG 。。这个文章不合格。。。

要重写。。。

论坛徽章:
0
3 [报告]
发表于 2004-05-09 23:03 |只看该作者

[原创]pure-ftp搭建ftp服务器。

我也来一篇,来个狗尾续貂

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


作者:leolee761128

********************************************************************************

<一>ureFTPD介紹
顾名思义.他是纯粹的一套FTPD
--------------------------------------------------------------
<二>;安裝PureFTPD

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.(<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
ftpuser1$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>; : 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

恭喜你.你已经成功的架起一个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 的选项

-=因为那几个都是很吃系统资源的工具=-

论坛徽章:
0
4 [报告]
发表于 2004-05-10 00:25 |只看该作者

[原创]pure-ftp搭建ftp服务器。

TrustedIP 10.1.1.1  

成过吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP