关于IOFTPD的相关资料

上一篇 / 下一篇  2007-07-27 07:04:35

ioFTPD v5.8.5r Final 正式版

ioFTPD 是一款采用C语言编写的高性能的FTP服务器端软件,程序采用最优化代码设计,执行效率非常之高.程序体积小巧,资源占用率低,内含大量的选项,支持非常多的FTP服务器端优秀功能,支持SSL/TLS,经过改良的安全设计,支持线程的超级管理技术,支持防止内存碎片的技术,保持系统的高速稳定,具有强大容易使用的可扩充性能,支持模块技术,内置TCL解释程序,支持多种不同的事件类型,完整的HTTP daemon和Telnet daemon支持,支持计划任务的功能,支持脚本技术,功能非常强大,不过此程序经我们试用,用户交互操作界面还有待完善优化,适合高级用户使用!

 

(一)[转载]ioFTPD的安装和配置

一篇很实用的文章,转来留个记号。顺便修正了错别字和标点符号,奉劝作者都要以严谨的态度治学,别把祖国文化都抛一边了-_||

作者: terencehe
出处: 精品论坛

ioFTPD就是Windows平台的glftpd(一个linux下功能强大的ftpd),虽然现在还是beta版,但功能已经非常强大,下面我给大家写了一篇关于如何配置ioFTPD的文档,希望大家喜欢。关于我所介绍的软件,可以到www.ioftpd.com去下载,注意到他的forum里面去下载。

我的这篇文档主要包括如下内容
1.基本的ioFTPD配置
2.ioA和ioZS的配置
3.dZSbot和windrop的配置
三部分。

通常对于普通人来说,1、2部分足够了,如果你看不懂第三部分,也没有关系,那就不用配置。你的ftpd也能正常运行,功能也足够了。

1. 配置ioFTPD
1)修改端口等描述信息,如果ioFTPD.ini的其他地方你不动,不要修改。

修改ioFTPD.ini 文件如下处:
[FTP_Service]
Type = FTP
Listen_Device = Any
Port = 31248
Description = My FTP Service
MaxUsers = 10
Encryption = TLS
Allowed_Users = *
Req_Encrypted_Auth = !*
Req_Encrypted_Data = !*
Certificate = ..\etc\ioFTPD-rsa.pem
;Get_External_Ident = FALSE
;Data_Devices =
;Random_Devices =
将Port修改为你需要的端口,本例为31248。

2)配置虚拟文件系统
配置c:\ioFTPD\etc\admin.vfs和default.vfs为你所需要的,我的例子如下:
Admin.vfs:
"c:\ioFTPD\site" /
"c:\ioFTPD" /Admin
"d:\downloads" /DiVX
Default.vfs:
"c:\ioFTPD\site" /
"d:\downloads" /DiVX

3)添加用户
因为Windows默认的ftp工具不支持后面输入其他端口,建议你下载ncftpd的client工具,主要是为了输入命令方便。下载地址为:
ftp://ftp.ncftp.com/ncftp/binaries/ncftp-3.1.5-win32.exe
ok,启动c:\ioFTPD\system\ioftpd.exe
启动ncftp client,在命令行输入
Open ftp://ioFTPD:ioFTPD@localhost:31248/
连接上去,注意密码和用户名的大小写。

添加一个组:site grpadd ThePower
超级管理组名你可以自己取,我这里取名为ThePower。
添加你自己的帐号:site gadduser ThePower terence 123456 *@localhost
这个命令的意思就是添加一个用户terence,密码是123456,只能在127.0.0.1的ip上面登陆,如果你要添加其他ip,则使用site addip terence *@192.168.204.201,就可以允许你在192.168.204.201的机器上面登陆。

由于ioftpd不能通过命令行添加就有M标示的用户(就是超级管理员),这里我们必须手动添加:
打开c:\ioFTPD\etc\passwd文件,找到里面关于terence用户的描述行,发现: terence:106,即terence的用户号为106,到c:\ioftpd\users目录,打开文件106,在FLAGS一行改为 FLAGS 3M1V,保存退出。到此,你的超级管理员添加完成。建议你修改c:\ioFTPD\group、c:\ioFTPD\passwd、c:\ioFTPD\users\里面的文件,删除其他组和用户,只保留刚才添加的用户和组,建议删除c:\ioftpd\site下面的目录,但.ioFTPD.message这个文件不要删除。
Ok,超级管理员的添加已经完成。关闭ioftpd,重新启动(在托盘上面鼠标右键单击圆形图标,出现菜单shutdown,点击即可关闭)。
在ncftp client里面输入open ftp://terence:123456@localhost:31248/登陆,添加你的其他用户:
Site grpadd Friends (建立一个组Friends)
Site Gadduser Friends alex 123456 *@192.168.0.1
(添加一个用户alex到组Friends,密码为123456,可以登陆的机器为192.168.0.1)
Site change alex ratio 0
(修改这个用户可以下载任意多的文件,关于credits、ratio的意思,请查阅相关资料)
Ok,基本的ioftpd就配置完成。下面配置其他扩展模块,以扩充ioftpd的功能。


2. 配置ioftpd的扩展模块:
1) ioA
解开ioa.0.7.2.zip文件,在c:\ioFTPD目录下建立ioA目录,将刚才解开的文件全部拷贝进去。
打开ioA.cfg文件,首先利用write的替换功能,将里面的d:\ioFTPD全部替换为c:\ioFTPD以保证路径的正确性。
修改文档如下地方:
Search_Path=c:\ioFTPD\site|/|3
Search_Exclude_Path=c:\ioFTPD\site\_pre
Search_Exclude_Show=COMPLETE
Search_Exclude_Show=INCOMPLETE
Search_Minimum_Chars=3
加入
 Search_Path=d:\downloads|/DiVX|3
加入这个的目录的目的就是执行ioA的搜索时能够搜索这个目录,如果你在admin.vfs和default.vfs里面添加了其他目录,而且想搜索这个目录,按照上面的这个方法加入即可。注意ioA的搜索只支持路径搜索,而且搜索方法为 site search *searchstring*,搜索的字符串两天的*号是必须的。

ioA.cfg的其他部分如果你感兴趣,可以查看相关文档。
打开c:\ioFTPD\system\ioftpd.ini文件,在相关地方加入下面的东东:
在[scripts]下面加入
nuke = ..\ioA\ioA.exe nuke
unnuke = ..\ioA\ioA.exe unnuke
nukes = ..\ioA\ioA.exe nukes
unnukes = ..\ioA\ioA.exe unnukes
request = ..\ioA\ioA.exe request
reqfilled = ..\ioA\ioA.exe reqfilled
reqdel = ..\ioA\ioA.exe reqdel
pre = ..\ioA\ioA.exe pre
invite = ..\ioA\ioA.exe invite
newdate = ..\ioA\ioA.exe newdate
ioaver = ..\ioA\ioA.exe ioaver
msg = ..\ioA\ioA.exe msg
wipe = ..\ioA\ioA.exe wipe
give = ..\ioA\ioA.exe give
take = ..\ioA\ioA.exe take
search = ..\ioA\ioA.exe search
rescan = ..\ioA\ioA.exe rescan
rescanall = ..\ioA\ioA.exe rescanall
onel = ..\ioA\ioA.exe onel
sfv = ..\ioA\ioA.exe sfv
size = ..\ioA\ioa.exe size
syslog = ..\ioA\ioa.exe syslog
errlog = ..\ioA\ioa.exe errlog

在[events]下面加入
OnFtpLogIn = ..\ioA\ioA.exe logon

在[Ftp-SITE-Permissions]下面加入
invite = *
ioaver = 1M
sfv = 1M
msg = *
newdate = 1M
nuke = 1M
nukes = *
unnuke = 1M
unnukes = *
request = *
reqfilled = *
pre = M
wipe = 1MV
take = 1MV
give = 1MV
search = *
rescan = 1MV
rescanall = 1MV
onel = *
size = 1
syslog = 1
errlog = 1

保存退出,其他地方如果你不明白,不用修改。
重新启动ioftpd,看看site nuke,site wipe,site search等命令是否执行成功。
这是我执行的一个例子
ncftp /DiVX > site search *Love*
-[Search]--------------------------------------------------
/DiVX/Mad.Love.2001.DVDRip.XviD-AGX
1 match to searchcriteria
------------------------------------------------------[ioA]-
Command Successful.
ncftp /DiVX >

2) ioZS
下载ioZS v0.97 Installer.rar解开为ioZSInstaller.msi,执行,注意默认的安装路径为c:\ioFTPD\scripts\ioZS目录,认可。直接安装完成。
在c:\ioFTPD\system\ioftpd.ini文件的[Events]处加入
OnUploadError = c:\ioftpd\scripts\ioZS\ioZS.exe Upload
OnUploadComplete = c:\ioftpd\scripts\ioZS\ioZS.exe Upload
在c:\ioFTPD\system\ioftpd.ini文件的[Post]处加入
dele = c:\ioftpd\scripts\ioZS\ioZS.exe Delete
在 c:\ioFTPD\system\ioftpd.ini文件的[Scripts] 处加入
rescan = C:\ioFTPD\scripts\ioZS\ioZS.exe Rescan
在 c:\ioFTPD\system\ioftpd.ini文件的[Ftp-SITE-Permissions] 处加入
rescan = 1MV
在 c:\ioFTPD\system\ioftpd.ini文件的[Scheduler] 处加入:
ioZSCleanup = 59 23 * * ..\scripts\ioZS\ioZSCleanup.exe Quiet
ok,ioZS配置完成,为了保险起见,重新启动ioFTPD.
测试一下,传送带sfv的rar或zip文件,看看是否自动校验文件的正确性。
我的输出如下:

226- .---------==[ ioZS v0.97 ]-=-[ by StarDog, (c)2003 ]==------------.
226- | + CRC32-oK: agt.dvdrip.xvid-deity.r07 |
226- +----====---------------===[UserTop]====------------------====----+
226- | 1. terence 176.3MB 13F 100.00% 2488KB/s |
226- +----====---------------===[GroupTop]===------------------====----+
226- | 1. ThePower 176.3MB 13F 100.00% 2488KB/s |
226- '---[#####---------------]-------======---------------[ 13/ 50]---'
226- Elapsed Time: 50 M$
Ok,基本的ioA和ioZS就配置完成,ioZS还提供了其他很多功能,可以查看其文档。
下面一段将配置和irc的连接,这样可以在irc里面就看到软件的发布,查询速度、带宽、察看磁盘空间等功能。

 

1. 目录结构

ioFTPD主目录包括以下文件:Changelog, TODO, README.1ST

更新记录文件包含了ioFTPD的最新更新内容,可使您及时了解软件的bug修正及新增特征等。
TODO文档列出了ioFTPD未来版本中要添加的内容。
README.1ST文件为一些必要的法律公告。

--------------------------------------------------------------------------------

 

(二)ioftpD 简单说明

ioFTPD下的目录包括:

/cache 包括缓存文件,您不能改动此目录下的任何文件。
/etc 目录内文件包括

UserIdTable -用户及其UID(用户ID)列表
GroupIdTable - 组及其GID(组ID)列表
default.vfs和admin.vfs - VFS示例文件
ioftpd.env - 定义环境变量
 
/groups 组数据文件。文件名即为GID(组ID)
/help 帮助文件。
/lib TCL库
/logs 服务器运行记录文件如Error.log及Sysop.log等.
/scripts ioFTPD的第三方脚本。
/site 您的site的缺省根目录。
/source 可能对脚本编写有用的源代码。
/system ioFTPD.exe, ioFTPD.ini, tcl84.dll
/text 用户登陆时显示的信息文件,以及运行命令时显示的状态信息等文件。
/users 用户数据文件。文件名为UID(用户ID)。

 

2. 安装指南

此文档可让您在几分钟内最快速成功配置ioFTPD!

1. 解压ioFTPD文件包。

2. 编辑 ..\etc\default.vfs. 注意根目录必须加载为:";/";.
如::
"d:\ftp" / <-- 用已有的空目录作根目录。
"e:\mp3" /mp3 <-- 在根目录加载为/mp3

注意组ioftpd(缺省用户ioFTPD所在的组)的虚拟目录文件缺省为admin.vfs。要让ioftpd组使用default.vfs,可用命令: site change ioftpd groupvfsfile ..\etc\default.vfs 或将..\groups目录下0文件内的VFSFILE行删除即可。

3. 打开..\system\ioFTPD.ini.

在ioFTPD.ini中,注释行用“#”,取消选项/设置用分号";"。
# Comment
;Disabled = True

3a. 设置DEVICES。.
在多数情况下可用缺省设置。
缺省device名为";Any";.
[Any]
Host = 0.0.0.0 <-- 未定义IP,则允许在任何IP上连接。
Ports = 1024-2048 <-- 数据传输端口。
Random = True <-- 使用随机端口。

3b. 设置SERVICES(示例仅用于FTP_Service)

[FTP_Service]
Type = FTP
Device_Name = Any <-- 使用的Device。缺省为";Any";
Port = 9999 <-- 连接端口
Description = My FTP Service
User_Limit = 10 <-- 最大连接用户数。
Allowed_Users = *
Messages = ..\text\ftp
Require_Encrypted_Auth = !* <-- 无用户使用加密请求。
Require_Encrypted_Data = !*
;Certificate_Name = 192.168.1.11 <-- SLL认证名(CN):若不使用认证,请注释此行,否则你的ftpd不会运行!
Explicit_Encryption = True
Encryption_Protocol = SSL3
Min_Cipher_Strength = 128
Max_Cipher_Strength = 384
;Get_External_Ident = False <-- True/False. 保护支持
;Data_Devices = <-- 流量平衡设备
;Random_Devices = False <-- True/False. Data_Devices使用随机次序。

需要更高级的devices及services,如NAT及流量平衡等设置样例文件,请参见ioFTPD-Advanced.ini。

4. 用缺省的管理员(Master)帐号登陆,注意在ioFTPD下,用户名、密码、组名、标识名及其他名称均区分大小写!
用户名:ioFTPD
密码:ioFTPD

5. 使用SITE PASSWD <新密码> 更改缺省的ioFTPD密码。

6. 打开并编辑 ..\etc\Hosts.Rules,使其可由外部IP连接。 在最新的未注册版本中,缺省规则为禁止(DENY). 注释此缺省行,并去掉ALLOW行的注释。若ioFTPD.exe正在运行,则需重启(修改Hosts.Rules需要完全重启)。

完成!现在请阅读此文档其余部分,提高您的配置技巧。

问:什么是Master帐号?

答:Master权限帐号登陆后可做几乎任何事。可浏览所有目录,传输任何文件,即使其被别的用户限制。可以更改别的用户或组(但不能更改别的Master帐号)的设置。Master的旗标是"M"。

其他FAQ,请见ioFTPD主页的知识基地.

-----------------------------------------------------------------------
提示#1: 好的脚本、sfv校验、sitebot、已知bug及其他ioFTPD信息,请查看论坛.
提示 #2: 在登陆服务器时出现错误,请检查..\logs\Error.log文件。
提示 #3: 要学会如何用site命令控制ioFTPD。
提示#4: 请阅读此文档的其他部分,更多了解ioFTPD。
-----------------------------------------------------------------------

3. 虚拟文件系统(VFS)

VFS文件用来创建服务器的文件目录结构,用户登陆后即可见。示例的VFS文件为default.vfs和admin.vfs,均位于..\etc目录下。

基本VFS设置
子目录加载
用于存档的Raid目录加载
不同用户和/或不同组的VFS文件
私有目录
符号链接
目录权限设置


--------------------------------------------------------------------------------

基本VFS设置

最快的VFS文件设置法是将一空目录设置为根目录,这样必须在你的VFS文件中将此目录加载为:";/"; 如下:
"c:\ioFTPD\site" /
在..\site目录下有些示例目录,你可以删除它们。

然后你可指定VFS根目录下要显示的目录。
如:
"c:\ioFTPD\site" /
"d:\games" /games
"e:\mp3" /mp3

也支持驱动器盘符的直接加载,但不推荐此设置,因为不能隐藏象系统卷标信息之类的系统目录。
如:
"f:\" /f-drive
"g:\" /g-drive

要设置这些目录的权限(这样用户就可上传等),请用SITE CHMOD.

这些是ioftpd新手需要了解的基本设置,高级VFS设置请参见下面内容……


--------------------------------------------------------------------------------

加载子目录

ioFTPD's VFS十分灵活,你可指定某些目录作为子目录。
但要确保你的上级目录存在(此处为/mnt)。
如:
"c:\ioFTPD\site" /
"c:\ioFTPD\mnt" /mnt
"c:\" /mnt/c-drive
"d:\" /mnt/d-drive
"e:\" /mnt/cdrom


--------------------------------------------------------------------------------

用于文件存储目的的Raid目录加载

可合并两个或更多目录内容,如下:
注意:对于只读目的!尽管可写,但上传的文件(在Raided VFS目录下)会被存储在最后一个指定的设备下,此处为e:\dir2。

如:
"d:\目录1" /存档文件
"e:\目录2" /存档文件


--------------------------------------------------------------------------------

不用用户和/或组的VFS文件

要为用户指定不同的VFS文件,仅需新建一VFS文件,并使用此命令来更改用户的VFS文件
site change <用户> vfsfile ..\etc\custom.vfs

你也可改变某个组的VFS,该组下所有用户均自动使用此组VFS文件
如:
site change <组> groupvfsfile ..\etc\group1.vfs

重要!用户VFS文件会覆盖组VFS文件。你已用一指定的组VFS文件更改了组内某用户的VFS文件,且你想让此用户使用此组VFS文件,可清除..\users目录下的用户 user文件中的VFSFILE行,或者用命令更改此用户的VFS文件至此组VFS文件:site change vfsfile ..\etc\group1.vfs
记住若将用户的VFS文件改变为与组VFS文件的文件,且然后又将此组VFS文件改变为另一个文件,你需要再一次改变用户的VFS文件。


--------------------------------------------------------------------------------

私有目录

另一种不同目录的权限设置(包括不同的VFS)方法为私有路径。私有路径对其他用户隐藏,即使这些目录也存在于他们的VFS中。这样便很容易地设置VFS,而不必设置多重VFS文件(使某些用户使用某些目录)。除了Master,其他用户无权进入私有目录。私有目录不对Master隐藏。

SITE命令"site chattr"用于设置私有目录,此命令也可将目录转换为符号链接。

用法: site chattr +h "<目录>" "<权限列表>"
示例: site chattr +h "私有目录" "-用户2 -用户5 =组11"

若目录名包含空格,或你指定多个用户和/或组权限时,则需要用引号("; ";) 引用。旗标也可在权限列表中使用。

使用以下命令查看当前私有目录的权限:
site chattr +h "目录"

联想到+h是指";hidden";, 很容易便可记住+h是指私有目录,+l指目录链接。


--------------------------------------------------------------------------------

符号链接

符号链接是一个快捷目录,可指向你的虚拟文件系统中的任何指定位置。

使用SITE命令"site chattr"将目录转换成符号链接。

用法: site chattr +l "<目录>" ""
示例: site chattr +l "mp3-today" "/mp3/0525"

使用以下命令查看当前路径的链接指向:
site chattr +l "符号链接名"

符号链接也可设置为私有路径。


--------------------------------------------------------------------------------

目录权限的详细设置

如果你想禁止某些目录的上传,那么VFS的此部分设置是很有用的。权限前缀";!"; 表示禁止,如!-user !=group !F。也可指定多个用户和/或组,如!-user1 -user2 =group1,此处仅user1被禁止。

以下是ioFTPD.ini里的缺省设置:
[VFS]
...
###
# 目录权限的详细设置
#
# priviledge = <virtual path> <rights>
#
Upload = * *
Resume = * *
Download = * *
MakeDir = * *
RemoveDir = * *
RemoveOwnDir = * *
Rename = * 1VM
RenameOwn = * *
Overwrite = * VM
Delete = * 1VM
DeleteOwn = * *
NoStats = * !*

虚拟路径用此格式:/目录/*

-----------------------------------------------------------------------
规则为首个匹配即生效。
在虚拟目录和权限间,仅可使用空格,不要用tab键空格。
最后的"*"是必须的,表示允许其他所有人。
-----------------------------------------------------------------------

示例:
# 所有GuestGroup组的用户不可创建目录
# 也不可在mp3目录内上传文件,但其他用户被允许此二项。
#
MakeDir = /mp3/* !=GuestGroup *
MakeDir = * *
Upload = /mp3/* !=GuestGroup *
Upload = * *

ioFTPD 4.9.0(包含RemoviOwnDir)后的版本有一个新功能"NoStats",NoStats取消指定用户和/或组的状态统计。NoStats是路径相关的。记住,在这些指定目录下,这些用户和/或组的活动不被计入统计。

总将NoStats = * !*放在最底部,否则活动统计对其他用户也会失效。可在此行上方加入你自己的NoStats行。


TAG:

大師的个人空间 引用 删除 大師   /   2007-07-30 22:05:18
嘟嘟你研究出來了嗎
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-11-22  
      1
2345678
9101112131415
16171819202122
23242526272829
30      

数据统计

  • 访问量: 786
  • 日志数: 8
  • 图片数: 1
  • 影音数: 1
  • 建立时间: 2007-06-15
  • 更新时间: 2007-07-27

RSS订阅

Open Toolbar