Pure-FTPD.conf 中文说明

以下是 pure-ftpd.conf 的翻译版,E文不行的自己看吧,赫赫

[coolcode]
############################################################
# #
# 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
#
# 请不要忘了浏览一下 [url]http://www.pureftpd.org/documentation.html[/url] 的
# 文档,查看全部的选项列表。

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

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-uploadscrīpt 支持,这个指令将会使 pure-ftpd
# 发送关于新上传的情况信息到 /var/run/pure-ftpd.upload.pipe,这样 pure-uploadscrīpt
# 就能读然后调用一个脚本去处理新的上传。

# CallUploadscrīpt 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
[/coolcode]
pure-ftpd 1.0.21 Makefile配置[针对利用虚拟用户认证方式]
[coolcode]
CONFIGURE_ARGS= –with-puredb \
–with-paranoidmsg \
–without-inetd \
–with-virtualchroot \
–with-tls \
–with-largefile \
–with-paranoidmsg \
–with-shadow \
–with-welcomemsg \
–with-uploadscrīpt \
–with-quotas \
–with-cookie \
–with-pam \
–with-virtualhosts \
–with-diraliases \
–with-sysquotas \
–with-ratios \
–with-ftpwho \
–with-throttling \
–with-language=simplified-chinese \
–sysconfdir=${PREFIX}/etc
[/coolcode]
复制上述内容安装就可以,要理解–with-everything 请参加下面转载之内容:
# groupadd nogroup
# useradd –g nogroup –d /dev/null –s /sbin/nologin nobody

首先创建上传下载的用户和组:

# groupadd ftp
# useradd –g ftp –d /home/down –s /sbin/nologin down
# useradd –g ftp –d /home/upload –s /sbin/nologin upload
參、編譯選項
Pure-ftpd的部份功能必須在編譯時有選定才會啟用,這樣做大概是會了讓程式執行時快一點吧!

我們先看一下編譯時的比較重要與常用的選項
–without-standalone: 如果不用standalone模式,加這個選項編譯出來的程式可以小一點。standalone模式是建議的方式。
–without-inetd: 如果都是用standalone模式,可加這選項讓程式小一點。不能同時啟用這一項與前一項,否則會無法使用。
–without-banner: 不要顯示啟始的標題,就是連線成功時就出現的訊息。
–with-sysquotas: 支援系統配額(不是PrueFTPd的虛擬配額)。有要用系統配額時才啟用這項。
–with-cookie: 當使用者登入時顯示自訂的標題訊息。(參?-F’選項)。
–with-throttling: 支援頻寬節流。
–with-ratios: 支援上傳/下載率。
–with-ftpwho: 支援’pure-ftpwho’命令。啟用這項會多耗些記憶體。最好在standalone模式使用,在inet模式會較慢。
–with-welcomemsg: 像其他一樣FTP servers讀取’welcome.msg’檔案。但是Pure-ftpd預設是使用’.banner’檔案。
–with-uploadscrīpt: 成功上傳後可自動呼叫外部的指令。這需要安裝其他的程式’pure-uploadscrīpt’,要更詳細的資訊請看man page。
–with-largefile: 支援在32-bit架構上可下載超過2GB大小的檔案。啟用這項會多用一些CPU資源,所以沒必要別用這項。
–with-virtualhosts: 支援虛擬主機。就是可為每個IP位址設不同的匿名登入區域。如果只有一個IP就用不著這項。
–with-virtualchroot: 通常當使用者被chrooted(用-A與-a選項),他不可能跑出家目錄以外的地方。啟用這項,再使用symbolic links,就變成可能了。預設沒有啟用這功能。
–with-diraliases: 支援目錄別名(給”cd”用的”捷徑”)。
–with-guotas: 啟用虛擬配額。可限制使用者儲存在他的帳號中的最大檔案數。也可以限制總共的大小容量。
–with-everything: 建立啟用大部份功能的伺服器:altlog, cookies, throttling, ratios, ftpwho, upload scrīpt, virtual users(puredb), quotas, virtual hosts, directory aliases及external authentication
–with-language: 變更伺服器訊息的語言。預設是english,其他尚有12種語言,繁/簡體中文在1.0.12版時會加入。

肆、安裝∕移除
安裝前最好先將ports更新,以便能裝到最新的版本
以下的編譯選項僅做示範,請依自己的需求調整,當然無選項也是可以,只是功能就不一樣囉
#cd /usr/ports/ftp/pure-ftpd
#make CONFIGURE_ARGS=’–without-inetd –with-cookie –with-throttling –with-ftpwho –with-welcomemsg –with-virtualchroot’
註:上一行也可以像這樣改成多行:
#make CONFIGURE_ARGS=’–without-inetd –with-cookie –with-throttling’ \
‘–with-ftpwho –with-welcomemsg –with-virtualchroot’
#make install

如果要讓系統啟動時就自動執行pure-ftpd,可這樣做
# cd /usr/local/etc/rc.d
# ee pure-fptd.sh
在 pure-fptd.sh 中輸入以下資料:
#!/bin/sh
/usr/local/sbin/pure-ftpd &
echo “pure-ftpd started…”
存檔後設為可執行
#chmod ug+x pure-fptd.sh

現在來看一下如何執行purefptd,至於執行選項,後面再補充
#/usr/local/sbin/pure-ftpd &
或是
# /bin/sh /usr/local/etc/rc.d/pure-fptd.sh

測試一下
# telnet localhost 21
Trying ::1…
Trying 127.0.0.1…
Connected to localhost.
Escape character is ‘^]’.
220-=(<*> )=-.:. (( Welcome to PureFTPd 1.0.10 )) .:.-=(<*> )=-
220-You are user number 1 of 50 allowed
220-Local time is now 11:29 and the load is 0.00. Server port: 21.
220 You will be disconnected after 15 minutes of inactivity.
看到上述訊息表示正常,按’ctrl + ]’,再按’q’結束連線

當執行’ps auxw|grep pure-ftpd’時,結果像這樣
root 15211 0.1 0.3 1276 452 ? S 13:53 0:00 pure-ftpd [SERVER]
root 15212 0.1 0.5 1340 672 ? S 13:54 0:00 pure-ftpd [IDLE]
root 15214 0.0 0.5 1340 672 ? S 13:56 0:00 pure-ftpd [DOWNLOADING]

[SERVER]是主伺服器。
[IDLE]顯示有個連線沒有傳輸活動。
[DOWNLOADING]顯示有個用戶正在下載檔案。
[UPLOADING]顯示有個用戶正在上傳檔案。
會建立一個檔案’/var/run/pure-ftpd.pid’,裡面會有主伺服器行程的PID。

要移除的話
#cd /usr/ports/ftp/pure-ftpd
#make deinstall
然後將自己建的pure-ftpd.sh移除掉,當然記得也要把process kill掉

伍、執行選項與設定檔
pure-ftpd可採用不使用設定檔的執行方式,而使用執行選項(即參數),而原作者也建議如此作法,所以這裡就不介紹設定檔。
將重要的選項列出並說明如下:
-1: 在syslog輸出中,記錄每個session的PID。
-a : 認證過的使用者預設只能在自己的家目錄而不能到別的地方,就是被chroot()。用這選項,在中的群組則不受限制。是群組號碼,不是群組名稱。
-A: chroot()每個人,除了root。
-B: 讓standalone server以backgroup方式啟動。
-c : 最大的用戶端連線數目。預設是50。
-C : 限制同一個IP進來的連線數。
-D: 顯示以點(‘.’)開頭的檔案,即使用戶送出沒有帶有’-a’選項的list命令。不要隨便啟用這項。
-e: 只允許匿名使用者。
-E: 只允許驗證過的使用者。禁止匿名登入。
-f : 使用指定的facility(場所、設施?)做syslog記錄。’-f none’,可關閉記錄。
-F : 在登入時顯示fortune cookie簽餅(中國餐館的摺疊形小餅,內藏有預測運氣話語的紙條)。句子是從文字檔中隨機取出的。檔案行中以’%’分開。Pure-FTPd必須用–with-cookie選項編譯。如果只是要一個簡單的標題,將所要的文字檔名稱加在這裡。
-g : 變更伺服器在standalone模式執行時的pid檔案位置。預設是/var/run/pure-ftpd.pid。
-H: 預設的情況下會記錄fully-qualified host name,而這選項可避免名稱解析的動作,而只記錄IP位址。在忙錄的伺服器上設這項可加速連線與減小頻寬的耗用。
-i: 不論目錄的權限設定如何,不允許匿名使用者上傳。
-I : 變更最大的閒置時間。預設是十五分鐘。
-j: 如果使用者的家目錄不存在,則自動建立。新建立的家目錄屬於該使用者,權限依據目前目錄mask來設定。上一層目錄不要屬於不信任的使用者,以避免遭攻擊。
-K: 允許使用者重來(resume)及上傳檔案,但 *不能* 將它們刪除或改名。目錄可被移除,但只限於空目錄。覆寫現有的檔案還是允許的,如果也要把這項禁掉,加上 -r。
-k : 當硬碟分割區(partition)超過指定的百分比時,不允許上傳。
-L :: 為防止DOS攻擊,Pure-FTPd在一次’ls’命令中不會顯示超過2000個檔案,及’ls -R’中不會顯示超五層子目錄。可用這選項來增減這些限制。
-M: 允許匿名使用者建立目錄。
-m : 在超過cpu load時不允許下載。上傳則仍允許。
-N: NAT模式。
-n :: 如果編譯時有啟用虛擬配額,可限制所有使用者(除了’trusted’群組的成員)的配額設定。的單位是Megabytes。
-O :: 將所有檔案傳輸,用其它種的格式記錄在指定的記錄檔。目前支援三種格式:CLF(Apache-like), Stats及W3C。例子:’-O clf:/var/log/pureftpd.log’
-p :: 在passive-mode下載中,只用規定範圍內的埠口。
-q :: 針對匿名使用者啟動上傳/下載率。
-Q :: 針對所有使用者啟動上傳/下載率。root群組不受影響。
-r: 絕不覆寫現存的檔案。當上傳時已有上個同名稱的檔案存在時,則自動更改。像xyz, xyz.1, xyz.2, xyz.3等等。
-R: 不允許使用者使用CHMOD命令,只有root才能使用。
-s: 這是”waRez protection”。不允許匿名使用者下載”ftp”所擁的檔案(由其它匿名使用者上載的檔案)。所以上傳後必須經系統管理確認後(chown給別的使用者)才能供下載。
-S [,|,][,]: 這項只適用於standlone server。只接受特定的IP及埠口。
-T 及-t : 啟用頻寬限制。以kilobytes/seconds方式指定。分別設定上傳/下載的頻寬,可用這樣的語法[]:[]。
-u : 不允許低於的使用者登入。’-u 1’拒絕root登入,’-u 100’拒絕大部份Linux得虛擬帳號登入。
-U :: 變更檔案建立mask。預設是133:022。
-V : 只允許在特定的本地IP位址可以用非匿名FTP存取。
-x 在正常運作模式中,驗證過的使用者可以讀/寫以點(‘.’)開頭的檔案,匿名使用者則不可。當使用這選項,驗證過的使用者可以下載dot-files,但不可覆寫/建立。
-X 與-x功能一樣,但是再加上使用者無法讀取以點開頭的檔案及目錄。
註:-a的群組不受-x/-X的限制。
-z:允許匿名使用者能讀取以點開頭的目錄與檔案。
-Z: 防止使用者用’chmod’命令。
現在看過了以上的執行選項,這裡舉一個使用的例子:
#/usr/local/sbin/pure-ftpd -a 0 -c 100 -i -s -F /usr/local/etc/pure-ftpd.banner &
-a 0: 除了gid為0的群組,即wheel,將其他群組chroot()
-c 100: 最大100個連線。
-i, -s: 意思很淺顯了,可對照一下上面。
-F /usr/local/etc/pure-ftpd.banner: 在連線成功,登入前顯示pure-ftpd.banner裡的文字

====================================================================
pure-ftpd.conf 配置:
############################################################
# #
# 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.shtml 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 yes

# 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. : .
# 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.
AllowUserFXP no

# 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 yes

# 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-uploadscrīpt support,
# this will make pure-ftpd write info about new uploads to
# /var/run/pure-ftpd.upload.pipe so pure-uploadscrīpt can read it and
# spawn a scrīpt to handle the upload.
#CallUploadscrīpt 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 : :
# 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
# scrīpt 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
# UTF-8 support for file names (RFC 2640)
# Define charset of the server filesystem and optionnally the default charset
# for remote clients if they don’t use UTF-8.
# Works only if pure-ftpd has been compiled with –with-rfc2640
# FileSystemCharset big5
# ClientCharset big5
===========================================
启动方式推荐/usr/local/sbin/pure-config.pl /usr/local/etc/pure-ftpd.conf &

注意:在pure-ftp.conf中PUREDB的配置文件是在/etc/pure-ftpd.pdb,事实上软件在没有指定其位置的情况下是把pure-ftpd.passwd 及pure-ftpd.pdb放在/usr/local/etc/下面的,在进行用户验证时如果出错,请检查此项.

——————————————-
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-uploadscrīpt –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-uploadscrīpt
当一个文件被完整上传完后自动呼叫某一scrīpt去对这个文件
处理.当然.这个scrīpt得你自己写.
–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.(;:😉
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>;
CallUploadscrīpt yes
#呼叫Uploadscrīpt
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

;
useradd ; [-f <密码文件>;] -u ; [-g ;]
-D/-d <主目录>; [-c ;]
[-t <下载频宽>;] [-T <上传频宽>;]
[-n <最多下载文件数>;] [-N <最多下载Mb>;]
[-q ;] [-Q ;](上下传比)
[-r ;/;] [-R ;/;]
[-i ;/;] [-I ;/;]
[-y <同時最多链接数>;]
[-z ;-;](可登入時间24小时制) [-m]
pure-pw usermod ; -f ; -u ; [-g ;]
-D/-d ; -[c ;]

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据