返回   青蛙论坛 » IT论坛 » 操作系统类
用户名
密码
帮助 会员 日历 标记论坛为已读

回复
 
主题工具 显示模式
旧 04-06-2005, 09:36   #1
chyangwa
蝌蚪-小毛驴
 
chyangwa的头像
 
注册日期: Nov 2000
来自: 上海
帖子: 8,285
精华: 6
Pure-FTPd

Pure-FTPd初步接触

看了Netkiller(陈景峰)写的Pure-FTPd + LDAP + MySQL + PGSQL + Virtual-Users + Quota How To感觉Pure-FTPd还是比较强大的,今天先安装一下。

wget ftp://ftp.pureftpd.org/pub/pureftpd/releases/pure-ftpd-1.0.17a.tar.gz

tar zvxf pure-ftpd-1.0.17a.tar.gz

cd pure-ftpd-1.0.17a

./configure --prefix=/usr/local/pureftpd --with-mysql --with-puredb --with-shadow --with-pam --with-paranoidmsg --with-welcomemsg --with-uploadscript --with-cookie --with-virtualchroot --with-virtualhosts --with-virtualroot --with-diraliases --with-quotas --with-sysquotas --with-ratios --with-ftpwho --with-throttling --with-language=simplified-chinese

make

make check

make install

mkdir /usr/local/pureftpd/etc #搞不明白为什么系统没建立这个文件夹


cd configuration-file
chmod u+x pure-config.pl
cp pure-config.pl /usr/local/pureftpd/bin
cp pure-ftpd.conf /usr/local/pureftpd/etc
cd ..
cp pureftpd* /usr/local/pureftpd/etc/

修改pure-ftpd.conf 让他基本使用起来,并保证基本的安全,过几天再慢慢研究

vi /usr/local/pureftpd/etc/pure-ftpd.conf
默认的配置文件只支持匿名登录,你只要稍微修改一下就可以支持lunix系统用户登陆了


ChrootEveryone yes
AnonymousOnly no
#是否只让匿名登录
NoAnonymous yes
#不开放匿名登入
UnixAuthentication yes
#如果你想要有简单的Unix(/etc/passwd)的认证的話
ProhibitDotFilesWrite no
ProhibitDotFilesRead no
#(”.”)开头的文件能不能被读/写

启动pure-ftpd

/usr/local/pureftpd/bin/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf

用你的客户端试验一下,看到的登录信息可是中文哦

今天不讲详细的配置了,以后会讲具体的应用,还有访问pure-ftpd的官方网站非常不方便,见鬼了,国内怎么这样的网站都要屏蔽了,这可是开源软件网站呀:(
chyangwa离线中   回复时引用此帖
旧 04-06-2005, 09:44   #2
chyangwa
蝌蚪-小毛驴
 
chyangwa的头像
 
注册日期: Nov 2000
来自: 上海
帖子: 8,285
精华: 6
回复: Pure-FTPd

前言:具体步骤在论坛里面能找到想关文章,小弟只是把自己安装中需要注意的地方和碰到的问题列出来。

1。首先从光盘安装FREEBSD5.3,安装的时候选择Developer,不安装Ports,从Ports安装一些东西没有成功过,而且慢,所以都直接下载源码安装。

2。更新源码,选择国内教快的服务器 cvsup2.freebsdchina.org。

3。编译源码,与4.X不一样,不是make world,而是make buildworld,make installworld。

4。编译内核,服务器有SCSI卡,安装的是时候选择相应SCSI卡,在SCSI外设一项,没有SCSI外设也需要选择SICS BUS。

5。安装Pure-FTPd,下载源码。
./configure --with-everything --with-largefile --with-paranoidmsg --with-peruserlimits --with-virtualchroot
由于我的FTP服务器主要用于匿名下载,所以没有用MYSQL数据库认证,但又有用户需要上传和给一些用户开一些私人空间,所以使用自带的数据库认证

最后出现问题是,建立的用户可以访问,但是匿名用户无法登陆,在配置文件里面已经允许匿名用户了,在README中说,只要有“ftp”用户,匿名用户就可以使用,但我加了 ftp 虚拟用户也没用,提示无法建立安全的匿名服务器,而且服务器启动的时候出现无法启用FTP认证,但建立的其他用户可以正常访问啊。

后来下载了PDF文件,110页,里面详细说了,原来要建立系统ftp用户才行,README里面没有说清楚,

建立不允许登陆的系统ftp帐号:
pw useradd ftp -g ftpgroup -d 匿名目录 -s /sbin/nologin

这样以后所以错误都消失,正常使用

测试下载的时候,直接用IE下载,稳定在10M/S,用SERV-U最多6M,而且是越来越慢的,用FREEBSD+Pure-FTPd更高效。

后记,由于版本不同,有些参数就不同,如make buildworld,5.x和4.x就不同,对于一些不清楚的,要看一下READM,再不清楚可以看以下网站下载的PDF详细资料,其中能找到详细配置的。
chyangwa离线中   回复时引用此帖
旧 04-06-2005, 09:46   #3
chyangwa
蝌蚪-小毛驴
 
chyangwa的头像
 
注册日期: Nov 2000
来自: 上海
帖子: 8,285
精华: 6
回复: Pure-FTPd

1.我仅仅用pureftpd 建立了一个ftp服务器,现将傻瓜版发布。
2、系统和环境:
redhat9 or solaris9


pure-ftpd-1.0.20.tar.gz
3、安装软件:
tar zxvf pure-ftpd-1.0.20.tar.gz
或 gzip -d pure-ftpd-1.0.20.tar.gz
tar xvf pure-ftpd-1.0.20
./configure --prefix=/export/pureftpd/ // /export/pureftpd/我的安装目录
--without-inetd --with-puredb
--with-cookie --with-throttling
--with-ratios --with-quotas
--with-ftpwho --with-largefile
--with-welcomemsg
# make
# make install
# mkdir /export/pureftpd/etc//存放一些配置文件 例如:pure-ftpd.conf ftppasswd pureftpd.db
#cd configuration-file //进入编译过的文件目录的配置文件中 也就是你tar -zxvf 后的目录的 /pure-ftpd-1.0.20/configuration-file

#cp pure-config.pl /export/pureftpd/etc
#chmod u+x pure-config.pl //因为以后要执行
#cp pure-ftpd.conf /export/pureftpd/etc //配置文件拷贝到我的安装目录的etc文件夹下
#groupadd ftpgroup -g 6000
#useradd ftpusers -g ftpgroup -u 1024


配置pureftp.conf

pure-ftpd.conf的設定 //你的安装目录的/etc目录下



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 //磁盘限额 默认 1000个文件 10k空间
#<檔案數:Megabytes>
CallUploadScript yes
#呼叫UploadScript
MaxDiskUsage 99
#當硬碟使用率到多少時將停止上傳
NoRename yes
#不給改檔名
PerUserLimits 3:20
#<每個account最多可登入幾隻:Anonymous最多可同時登入幾隻>
#############################


注:找到# PureDB /etc/pureftpd.pdb


把#掉支掉,路径改成你刚才建的。
 
我的是/export/pureftpd/etc/pureftpd.pdb //这样就可以用文件形式了验证
//关于其他配置属性可参看其他资料
用户

建立用户过程:
[root@xjvhost:/export/www] mkdir down

[root@xjvhost:/export/www]#chown -R 1024:6000 /export/www/down /修改该目录属主
//1024 ftpuserid 6000 ftpgroupid
[root@xjvhost:/export/pureftpd/bin]#./pure-pw useradd down -f /export/pureftpd/etc/ftppasswd -u 1024 -g 6000 -d /export/www/down
Password:
Enter it again:
//两次输入相同密码。

root@xjvhost:/export/pureftpd/bin]# ./pure-pw mkdb /export/pureftpd/etc/pureftpd.pdb -f /export/pureftpd/etc/ftppasswd
//生成密码文件


启动pureftpd
/export/pureftpd/bin/pure-config.pl /export/pureftpd/etc/pure-ftpd.conf


ok!
that all !
chyangwa离线中   回复时引用此帖
旧 04-06-2005, 10:00   #4
chyangwa
蝌蚪-小毛驴
 
chyangwa的头像
 
注册日期: Nov 2000
来自: 上海
帖子: 8,285
精华: 6
回复: Pure-FTPd

Pureftpd 架设与系统帐号分离的ftp服务器
环境:系统FreeBSD freebsd.hcren.com 4.9-STABLE FreeBSD 4.9-STABLE

研究freebsd 已有几个月了。但一直没有找到一个比windows下的serv-u 易管理的

ftp 服务器软件。前一段服务器都是用vsftpd+系统quota , 但帐号是系统本身帐号。虽然,我做了
/sbin/nologin

但感觉还是不安全。也试过。proftpd+mysql ,但如果一个企业就开ftp,你要和系统帐号分离,难道还要
装mysql,等等数据库不成?

下面我就把我pureftpd 配置写出来。本人是菜鸟,哪地方不对希望高手多多指点!


我都是都过ports 方式安装的

freebsd# cd /usr/ports/ftp/pure-ftpd/

默认ports 安装pure-ftpd 不支持 puredb 需要

freebsd# vi Makefile

加入 --with-puredb

然后wq!

freebsd# make WITH_LANG=simplified-chinese install

建立第一个虚拟用户:如down 用户,组都为888 主目录/home/888

freebsd# mkdir /home/888
freebsd# chown -R 888:888 /home/888

freebsd# /usr/local/bin/pure-pw useradd down -u 888 -g 888 -d /home/888
Password:           输入二次
Enter it again:

建立用户数据库:

freebsd# /usr/local/bin/pure-pw mkdb /usr/local/etc/pureftpd.pdb


修改配置文件。

freebsd# cd /usr/local/etc/
freebsd# cp pure-ftpd.conf.sample pure-ftpd.conf

找到# PureDB /etc/pureftpd.pdb

把#掉支掉,路径改成你刚才建的。 我的是/usr/local/etc/pureftpd.pdb

启动pureftpd 。。

freebsd# /usr/local/sbin/pure-config.pl /usr/local/etc/pure-ftpd.conf



D:\>ftp 218.*.*.*
Connected to *.*.*.*
220---------- 欢迎来到 Pure-FTPd [TLS] ----------
220-您是第 1 个使用者,最多可达 50 个连接
220-现在本地时间是 13:20。服务器端口: 21。
220 在 15 分钟内没有活动,您被会断线。
User (218.*.*.*none)):

好了。就这么简单。就和系统帐号完全分离了。如果你想即系统帐号又和puredb 帐号同时使用

在pure-ftpd.conf 打开UnixAuthentication yes

些项即可。自启动把/usr/local/etc/rc.d/pure-ftpd.sh.sample 改名cp 去掉.sample 即可。其实还有

很多比如quota ,好多,你们慢慢研究吧!最后把我的pureftpd 给大家看一看。

###########################################################
# #
# Configuration file for pure-ftpd wrappers #
# #
############################################################

# If you want to run Pure-FTPd with this configuration
# instead of command-line options, please run the
# following command :
#
# /usr/local/sbin/pure-config.pl /usr/local/etc/pure-ftpd.conf
#
# Please don't forget to have a look at documentation at
# http://www.pureftpd.org/documentation.html for a complete list of
# options.

# Cage in every user in his home directory

ChrootEveryone yes



# If the previous option is set to "no", members of the following group
# won't be caged. Others will be. If you don't want chroot()ing anyone,
# just comment out ChrootEveryone and TrustedGID.

# TrustedGID 100



# Turn on compatibility hacks for broken clients

BrokenClientsCompatibility no



# Maximum number of simultaneous users

MaxClientsNumber 50



# Fork in background

Daemonize yes



# Maximum number of sim clients with the same IP address

MaxClientsPerIP 8



# If you want to log all client commands, set this to "yes".
# This directive can be duplicated to also log server responses.

VerboseLog no



# List dot-files even when the client doesn't send "-a".

DisplayDotFiles yes



# Don't allow authenticated users - have a public anonymous FTP only.

AnonymousOnly no



# Disallow anonymous connections. Only allow authenticated users.

NoAnonymous no



# Syslog facility (auth, authpriv, daemon, ftp, security, user, local*)
# The default facility is "ftp". "none" disables logging.

SyslogFacility ftp



# Display fortune cookies

# FortunesFile /usr/share/fortune/zippy



# Don't resolve host names in log files. Logs are less verbose, but
# it uses less bandwidth. Set this to "yes" on very busy servers or
# if you don't have a working DNS.

DontResolve yes



# Maximum idle time in minutes (default = 15 minutes)

MaxIdleTime 15



# LDAP configuration file (see README.LDAP)

# LDAPConfigFile /etc/pureftpd-ldap.conf



# MySQL configuration file (see README.MySQL)

# MySQLConfigFile /etc/pureftpd-mysql.conf


# Postgres configuration file (see README.PGSQL)

# PGSQLConfigFile /etc/pureftpd-pgsql.conf


# PureDB user database (see README.Virtual-Users)

PureDB /usr/local/etc/pureftpd.pdb


# Path to pure-authd socket (see README.Authentication-Modules)

# ExtAuth /var/run/ftpd.sock



# If you want to enable PAM authentication, uncomment the following line

# PAMAuthentication yes



# If you want simple Unix (/etc/passwd) authentication, uncomment this

UnixAuthentication yes



# Please note that LDAPConfigFile, MySQLConfigFile, PAMAuthentication and
# UnixAuthentication can be used only once, but they can be combined
# together. For instance, if you use MySQLConfigFile, then UnixAuthentication,
# the SQL server will be asked. If the SQL authentication fails because the
# user wasn't found, another try # will be done with /etc/passwd and
# /etc/shadow. If the SQL authentication fails because the password was wrong,
# the authentication chain stops here. Authentication methods are chained in
# the order they are given.



# 'ls' recursion limits. The first argument is the maximum number of
# files to be displayed. The second one is the max subdirectories depth

LimitRecursion 2000 8



# Are anonymous users allowed to create new directories ?

AnonymousCanCreateDirs no



# If the system is more loaded than the following value,
# anonymous users aren't allowed to download.

MaxLoad 4



# Port range for passive connections replies. - for firewalling.

# PassivePortRange 30000 50000



# Force an IP address in PASV/EPSV/SPSV replies. - for NAT.
# Symbolic host names are also accepted for gateways with dynamic IP
# addresses.

# ForcePassiveIP 192.168.0.1



# Upload/download ratio for anonymous users.

# AnonymousRatio 1 10



# Upload/download ratio for all users.
# This directive superscedes the previous one.

# UserRatio 1 10



# Disallow downloading of files owned by "ftp", ie.
# files that were uploaded but not validated by a local admin.

AntiWarez yes



# IP address/port to listen to (default=all IP and port 21).

# Bind 127.0.0.1,21



# Maximum bandwidth for anonymous users in KB/s

# AnonymousBandwidth 8



# Maximum bandwidth for *all* users (including anonymous) in KB/s
# Use AnonymousBandwidth *or* UserBandwidth, both makes no sense.

# UserBandwidth 8



# File creation mask. <umask for files>:<umask for dirs> .
# 177:077 if you feel paranoid.

Umask 133:022



# Minimum UID for an authenticated user to log in.

MinUID 100



# Allow FXP transfers for authenticated users only.

AllowUserFXP yes



# Allow anonymous FXP for anonymous and non-anonymous users.

AllowAnonymousFXP no



# Users can't delete/write files beginning with a dot ('.')
# even if they own them. If TrustedGID is enabled, this group
# will have access to dot-files, though.

ProhibitDotFilesWrite no



# Prohibit *reading* of files beginning with a dot (.history, .ssh...)

ProhibitDotFilesRead no



# Never overwrite files. When a file whoose name already exist is uploaded,
# it get automatically renamed to file.1, file.2, file.3, ...

AutoRename no



# Disallow anonymous users to upload new files (no = upload is allowed)

AnonymousCantUpload no



# Only connections to this specific IP address are allowed to be
# non-anonymous. You can use this directive to open several public IPs for
# anonymous FTP, and keep a private firewalled IP for remote administration.
# You can also only allow a non-routable local IP (like 10.x.x.x) to
# authenticate, and keep a public anon-only FTP server on another IP.

#TrustedIP 10.1.1.1



# If you want to add the PID to every logged line, uncomment the following
# line.

#LogPID yes



# Create an additional log file with transfers logged in a Apache-like format :
# fw.c9x.org - jedi [13/Dec/1975:19:36:39] "GET /ftp/linux.tar.bz2" 200 21809338
# This log file can then be processed by www traffic analyzers.

# AltLog clf:/var/log/pureftpd.log



# Create an additional log file with transfers logged in a format optimized
# for statistic reports.

# AltLog stats:/var/log/pureftpd.log



# Create an additional log file with transfers logged in the standard W3C
# format (compatible with most commercial log analyzers)

# AltLog w3c:/var/log/pureftpd.log



# Disallow the CHMOD command. Users can't change perms of their files.

#NoChmod yes



# Allow users to resume and upload files, but *NOT* to delete them.

#KeepAllFiles yes



# Automatically create home directories if they are missing

#CreateHomeDir yes



# Enable virtual quotas. The first number is the max number of files.
# The second number is the max size of megabytes.
# So 1000:10 limits every user to 1000 files and 10 Mb.

#Quota 1000:10



# If your pure-ftpd has been compiled with standalone support, you can change
# the location of the pid file. The default is /var/run/pure-ftpd.pid

#PIDFile /var/run/pure-ftpd.pid



# If your pure-ftpd has been compiled with pure-uploadscript support,
# this will make pure-ftpd write info about new uploads to
# /var/run/pure-ftpd.upload.pipe so pure-uploadscript can read it and
# spawn a script to handle the upload.

#CallUploadScript yes



# This option is useful with servers where anonymous upload is
# allowed. As /var/ftp is in /var, it save some space and protect
# the log files. When the partition is more that X percent full,
# new uploads are disallowed.

MaxDiskUsage 99



# Set to 'yes' if you don't want your users to rename files.

#NoRename yes



# Be 'customer proof' : workaround against common customer mistakes like
# 'chmod 0 public_html', that are valid, but that could cause ignorant
# customers to lock their files, and then keep your technical support busy
# with silly issues. If you're sure all your users have some basic Unix
# knowledge, this feature is useless. If you're a hosting service, enable it.

CustomerProof yes



# Per-user concurrency limits. It will only work if the FTP server has
# been compiled with --with-peruserlimits (and this is the case on
# most binary distributions) .
# The format is : <max sessions per user>:<max anonymous sessions>
# For instance, 3:20 means that the same authenticated user can have 3 active
# sessions max. And there are 20 anonymous sessions max.

# PerUserLimits 3:20



# When a file is uploaded and there is already a previous version of the file
# with the same name, the old file will neither get removed nor truncated.
# Upload will take place in a temporary file and once the upload is complete,
# the switch to the new version will be atomic. For instance, when a large PHP
# script is being uploaded, the web server will still serve the old version and
# immediatly switch to the new one as soon as the full file will have been
# transfered. This option is incompatible with virtual quotas.

# NoTruncate yes



# This option can accept three values :
# 0 : disable SSL/TLS encryption layer (default).
# 1 : accept both traditional and encrypted sessions.
# 2 : refuse connections that don't use SSL/TLS security mechanisms,
# including anonymous sessions.
# Do _not_ uncomment this blindly. Be sure that :
# 1) Your server has been compiled with SSL/TLS support (--with-tls),
# 2) A valid certificate is in place,
# 3) Only compatible clients will log in.

# TLS 1



# Listen only to IPv4 addresses in standalone mode (ie. disable IPv6)
# By default, both IPv4 and IPv6 are enabled.

# IPV4Only yes



# Listen only to IPv6 addresses in standalone mode (ie. disable IPv4)
# By default, both IPv4 and IPv6 are enabled.

# IPV6Only yes
chyangwa离线中   回复时引用此帖
旧 04-06-2005, 10:14   #5
chyangwa
蝌蚪-小毛驴
 
chyangwa的头像
 
注册日期: Nov 2000
来自: 上海
帖子: 8,285
精华: 6
回复: Pure-FTPd

原创--熬夜翻译完的PureFTPd配置文件
http://www.chinaunix.net 作者:jeffwu 发表于:2003-08-24 05:16:12

干了个通宵,一边玩一边把配置文件翻译完了,翻得不好的地方还请各位多多提点,少许不是很明白的地方就留在那了。

鼓励转贴,分发,为所有看到E文头痛的兄弟们帮点小忙,PureFTPd的文档本来就不多,中文的更少了。从配置文件中就能看出不少PureFTPd的好功能来了。

来CU很久了,收获很多,这篇小文算是对CU的一点点小贡献。


############################################################
# #
# Configuration file for pure-ftpd wrappers #
# #
############################################################

# 如果你想要使用配置文件代替命令行选项来运行 Pure-FTPd ,请运行下面的命令:
#
# /usr/local/pureftpd/sbin/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf
#
# RPM 缺省使用另外一个配置文件:
# /etc/sysconfig/pure-ftpd
#
# 请不要忘了浏览一下 http://www.pureftpd.org/documentation.html 的
# 文档,查看全部的选项列表。

# 限制所有用户在其主目录中

ChrootEveryone yes


# 如果前一个指令被设置为了 "no",下面组的成员(GID)就不受主目录的限制了。而其他的用户还是
# 会被限制在自己的主目录里。如果你不想把任何用户限制在自己的主目录里,只要注释掉 ChrootEveryone
# 和 TrustedGID 就可以了。

# TrustedGID 100

# 兼容ie等比较非正规化的ftp客户端

BrokenClientsCompatibility no

# 服务器总共允许同时连接的最大用户数

MaxClientsNumber 50

# 做为守护(doemon)进程运行(Fork in background)

Daemonize yes

# 同一IP允许同时连接的用户数(Maximum number of sim clients with the same IP address)

MaxClientsPerIP 8

# 如果你要记录所有的客户命令,设置这个指令为 "yes"。
# This directive can be duplicated to also log server responses.

VerboseLog no

# 即使客户端没有发送 '-a' 选项也列出隐藏文件( dot-files 。

DisplayDotFiles yes

# 不允许认证用户 - 仅作为一个公共的匿名FTP。

AnonymousOnly no

# 不允许匿名连接,仅允许认证用户使用。

NoAnonymous no

# Syslog facility (auth, authpriv, daemon, ftp, security, user, local*)
# 缺省的功能( facility 是 "ftp"。 "none" 将禁止日志。

SyslogFacility ftp

# 定制用户登陆后的显示信息(Display fortune cookies)

# FortunesFile /usr/share/fortune/zippy

# 在日志文件中不解析主机名。日志没那么详细的话,就使用更少的带宽。在一个访问量很大
# 的站点中,设置这个指令为 "yes" ,如果你没有一个能工作的DNS的话。

DontResolve yes

# 客户端允许的最大的空闲时间(分钟,缺省15分钟)

MaxIdleTime 15

# LDAP 配置文件 (参考 README.LDAP)

# LDAPConfigFile /etc/pureftpd-ldap.conf

# MySQL 配置文件 (参考 README.MySQL)

# MySQLConfigFile /etc/pureftpd-mysql.conf

# Postgres 配置文件 (参考 README.PGSQL)

# PGSQLConfigFile /etc/pureftpd-pgsql.conf

# PureDB 用户数据库 (参考 README.Virtual-Users)

# PureDB /etc/pureftpd.pdb

# pure-authd 的socket 路径(参考 README.Authentication-Modules)

# ExtAuth /var/run/ftpd.sock

# 如果你要启用 PAM 认证方式, 去掉下面行的注释。

# PAMAuthentication yes

# 如果你要启用 简单的 Unix系统 认证方式(/etc/passwd), 去掉下面行的注释。

# UnixAuthentication yes

# 请注意,LDAPConfigFile, MySQLConfigFile, PAMAuthentication 和
# UnixAuthentication 这些指令只能被使用一次,不过,他们能被混合在一起用。例如:如果你使用了
# MySQLConfigFile 和 UnixAuthentication,那么 SQL 服务器将被访问。如果因为用户名未找
# 到而使 SQL 认证失败的话,就会在/etc/passwd 和 /etc/shadow 中尝试另外一种认证,如果因
# 为密码错误而使 SQL 认证失败的话,认证就会在此结束了。认证方式由它们被给出来的顺序而被链
# 接了起来。

# 'ls' 命令的递归限制。第一个参数给出文件显示的最大数目。第二个参数给出最大的子目录深度。

LimitRecursion 2000 8

# 允许匿名用户创建新目录?

AnonymousCanCreateDirs no

# 如果系统被 loaded 超过下面的值,匿名用户会被禁止下载。

MaxLoad 4

# 被动连接响应的端口范围。- for firewalling.

# PassivePortRange 30000 50000

# 强制一个IP地址使用被动响应( PASV/EPSV/SPSV replies)。 - for NAT.
# Symbolic host names are also accepted for gateways with dynamic IP
# addresses.

# ForcePassiveIP 192.168.0.1

# 匿名用户的上传/下载的比率。

# AnonymousRatio 1 10

# 所有用户的上传/下载的比率。
# This directive superscedes the previous one.

# UserRatio 1 10

# 不接受所有者为 "ftp" 的文件的下载。例如:那些匿名用户上传后未被本地管理员验证的文件。

AntiWarez yes

# 服务监听的IP 地址和端口。(缺省是所有IP地址和21端口)

# Bind 127.0.0.1,21

# 匿名用户的最大带宽(KB/s)。

# AnonymousBandwidth 8

# 所有用户的最大带宽(KB/s),包括匿名用户。
# Use AnonymousBandwidth *or* UserBandwidth, both makes no sense.

# UserBandwidth 8

# 新建目录及文件的属性掩码值。<文件掩码>:<目录掩码> .
# 177:077 if you feel paranoid.

Umask 133:022

# 认证用户允许登陆的最小组ID(UID) 。

MinUID 100

# 仅允许认证用户进行 FXP 传输。

AllowUserFXP yes

# 对匿名用户和非匿名用户允许进行匿名 FXP 传输。

AllowAnonymousFXP no

# 用户不能删除和写点文件(文件名以 '.' 开头的文件),即使用户是文件的所有者也不行。
# 如果 TrustedGID 指令是 enabled ,文件所属组用户能够访问点文件(dot-files)。

ProhibitDotFilesWrite no

# 禁止读点文件(文件名以 '.' 开头的文件) (.history, .ssh...)

ProhibitDotFilesRead no

# 永不覆盖文件。当上传的文件,其文件名已经存在时,自动重命名,如: file.1, file.2, file.3, ...

AutoRename no

# 不接受匿名用户上传新文件( no = 允许上传)

AnonymousCantUpload no

# 仅允许来自以下IP地址的非匿名用户连接。你可以使用这个指令来打开几个公网IP来提供匿名FTP,
# 而保留一个私有的防火墙保护的IP来进行远程管理。你还可以只允许一内网地址进行认证,而在另外
# 一个IP上提供纯匿名的FTP服务。

#TrustedIP 10.1.1.1


# 如果你要为日志每一行添加 PID 去掉下面行的注释。

# LogPID yes

# 使用类似于Apache的格式创建一个额外的日志文件,如:
# fw.c9x.org - jedi [13/Dec/1975:19:36:39] "GET /ftp/linux.tar.bz2" 200 21809338
# 这个日志文件能被 www 流量分析器处理。

# AltLog clf:/var/log/pureftpd.log


# 使用优化过的格式为统计报告创建一个额外的日志文件。

# AltLog stats:/var/log/pureftpd.log


# 使用标准的W3C格式创建一个额外的日志文件。(与大部分的商业日志分析器兼容)

# AltLog w3c:/var/log/pureftpd.log

# 不接受 CHMOD 命令。用户不能更改他们文件的属性。

# NoChmod yes


# 允许用户恢复和上传文件,却不允许删除他们。

# KeepAllFiles yes


# 用户主目录不存在的话,自动创建。

# CreateHomeDir yes

# 启用虚拟的磁盘限额。第一个数字是最大的文件数。
# 第二个数字是最大的总的文件大小(单位:Mb)。
# 所以,1000:10 就限制每一个用户只能使用 1000 个文件,共10Mb。

# Quota 1000:10

# 如果你的 pure-ftpd 编译时加入了独立服务器( standalone 支持,你能够改变 pid 文件
# 的位置。缺省位置是 /var/run/pure-ftpd.pid 。

# PIDFile /var/run/pure-ftpd.pid

# 如果你的 pure-ftpd 编译时加入了 pure-uploadscript 支持,这个指令将会使 pure-ftpd
# 发送关于新上传的情况信息到 /var/run/pure-ftpd.upload.pipe,这样 pure-uploadscript
# 就能读然后调用一个脚本去处理新的上传。

# CallUploadScript yes

# 这个选项对允许匿名上传的服务器是有用的。当 /var/ftp 在 /var 里时,需要保留一定磁盘空间
# 来保护日志文件。当所在磁盘分区使用超过百分之 X 时,将不在接受新的上传。

MaxDiskUsage 99

# 如果你不想要你的用户重命名文件的话,就设置为 'yes' 。

# NoRename yes

# 是 'customer proof' : 工作区(workaround)反对普通的客户错误,类似于:'chmod 0 public_html' 的错误。
# 那是一个有效的命令,不过,将导致无知的客户所定他们自己的文件,将使你的技术支持忙于愚蠢的的问题中。
# 如果你确信你所有的用户都有基本的Unix知识的话,这个特性将没什么用了。不过,如果你是一个主机提供商
# 的话,启用它。

CustomerProof yes

# 每一个用户的并发限制。只有在添加了 --with-peruserlimits 编译选项进行编译后,这个指令才起
# 作用。(大部分的二进制的发布版本就是例子)
# 格式是 : <每一个用户最大允许的进程>:<最大的匿名用户进程>
# 例如: 3:20 意思是同一个认证用户最大可以有3个同时活动的进程。而且同时最多只能有20个匿名用户进程。

# PerUserLimits 3:20
chyangwa离线中   回复时引用此帖
旧 04-06-2005, 10:18   #6
chyangwa
蝌蚪-小毛驴
 
chyangwa的头像
 
注册日期: Nov 2000
来自: 上海
帖子: 8,285
精华: 6
回复: Pure-FTPd

Pure-ftpd攻略
此贴(繁体原版)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装了.
废话了好多.

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等下回分解.-----------

在上一章节.我们已经成功把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> : 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.你问我上面的参数有沒有用?唔...我加了.至于效果么.....站不够大.
所以...不知道.你可以试试跟我说...D
chyangwa离线中   回复时引用此帖
回复


主题工具
显示模式

发帖规则
不可以发表新主题
不可以回复主题
不可以上传附件
不可以编辑您的帖子

vB 代码开启
[IMG]代码开启
HTML代码关闭
论坛跳转



所有的时间均为北京时间。 现在的时间是 08:33.


NewvBB Core 1.1 Final - vBulletin v3.0.3
中文化与插件制作 NewVBB.com™ 2024。
友情连接        
摩托车.上海.中国        
         
         
         
         
         

上海市通信管理局
沪ICP备010502
沪ICP备05000578号