|
Portable FTP daemon project
Date: 2006-Sep-26
Name: Portable FTP daemon project (pftpd)
Current version: v0.1-beta
Programming language: Python
Author: billiejoex
License: GNU
Web: http://billiejoex.altervista.org
What is Portable FTP daemon project
(pftpd)?
Pftpd is a proof of concept FTP daemon
implementation entirely written in pure Python. It can work under
normal user account and does not require any
special rights to start. Thanks to Python interpreter, the internal
database password and the virtual path file-system abstraction it is
extremely system undependant.
Currently supported FTP commands
| USER
/ PASS |
user
authentication |
| PASV
/ PORT |
active / passive FTP |
LIST
|
list files and directories |
| PWD |
get current directory |
| CWD |
change current directory |
| CDUP |
go to parent directory |
| MKD |
create new directory |
| RMD |
remove directory |
| MKD |
create directory |
| DELE |
remove file |
| RNFR
/ RNTO |
rename file / directory |
| SIZE |
getting file size |
| SYST |
getting system type |
| TYPE
|
setting transfer type (binary or ASCII) |
| NOOP |
do nothing |
| STOR |
upload file |
| RETR |
download file |
| ABOR
|
stop transfer |
| QUIT |
disconnect |
Download
Sources:
v0.1 - http://billiejoex.altervista.org/Downloads/pftpd/src-pftpd_v0.1.tar
Win32 standalone executable:
v0.1 - http://billiejoex.altervista.org/Downloads/pftpd/w32bin-pftpd_v0.1.zip
Requirements
The easiest thing you can do, if you are a Windows
user, is using the precompiled binary stand alone distribution without
installing Python iterpreter.
To run pftpd on all other systems you'll only need Python
2.5 interpreter installed.
You can get it from http://www.python.org.
Pftpd claims to be the most portable as possible: for this reasons no
third-party packages are required.
Usage
Unpack pftpd distribution into a directory, edit pftpd.conf
depending on your needs and run pftpd.py from command line. That's all.
For further details about how to configure it and use advanced features
take a look at "Installing
pftpd on Linux" section treated later.
Performance
Pftpd uses multiple threads which means it manages
the memory in quite an efficient way. Here are some tests I made by
running pftpd on my AMD Athlon 2000+, 1Gb RAM, by using Python2.5:
|
Benchmark
Type
|
Windows
XP SP2
|
Linux
Debian 2.4.x
|
|
Download
|
about
34000 Kb/sec
|
about
32000 Kb/sec
|
|
Upload
|
about
9200 Kb/sec
|
about
10100 Kb/sec
|
|
Memory
usage
|
2328 Kb
|
2512
Kb
|
Bug(s)
Surely.
To do
- FTP over SSL support.
- Bandwidth throttling.
- Windows system service support.
- Support for resumed Upload / Downloads.
- NAT/Firewall support with PASV (passive) mode
connections.
- PASV/PORT connection stealing protection.
- IP-Based access control.
- Encrypted database password caching.
Warnings
This first beta release version has some known bugs not yet fixed and
many features not yet implemented. It's a working FTP server
implementation, supporting the main FTP commands, that has been tested
with major FTP clients: MS Internet Explorer, Mozilla Firefox, Bullet
proof FTP, Cute FTP, Konqueror, gftp and Windows & Linux
command line FTP client.
As far as I can say... it works, but don't use it in production.
Useful
links
RFC959: http://www.faqs.org/rfcs/rfc959.html
|