标题：ProFTPD
简介
[1]ProFTPd是一套可配置性强的开放源代码的FTP伺服器软件，名称最後的d字是因为在Linux中是用daemon来称呼。ProFTPd与Apache的配置方式类似，因此十分容易配置和管理。[2]
ProFTPd亦开发了有图形用户界面的FTP伺服器软体称为gProFTPd。[2]
  ProFTPDProFTPD:一个Unix平台上或是类Unix平台上(如Linux, FreeBSD等)的FTP服务器程序，它是在自由软件基金会的版权声明(GPL)下开发、发布的免费软件，也就是说任何人只要遵守GPL版权声明，都可以随意修改源始码。
proftpd全称：Professional FTP daemon是针对Wu-FTP的弱项而开发的，除了改进的安全性，还具备许多Wu-FTP没有的特点，能以Stand-alone、xinetd模式运行等。ProFTP已经成为继Wu-FTP之后最为流行的FTP服务器软件，越来越多的站点选用它构筑安全高效的FTP站点，ProFTP配置方便，并有MySQL和Quota模块可供选择，利用它们的完美结合可以实现非系统账号的管理和用户磁盘的限制。
特点
ProFTPD设计目标是实现一个安全且易于设定的FTP Server。[3]
在项目开始时,Unix或类Unix平台上 FTP Server十分有限，最常使用的恐怕就是wu-ftpd了。虽然wu-ftpd有着极佳的效能同时也是一套很好的软件，然而它却欠缺了许多Win32平台上FTP Server的一些特色，同时wu-ftpd过去也有不少的安全漏洞陆续被发现。ProFTPD的原创者本身就曾经花非常多的时间寻找wu-ftpd 的漏洞加以改进并且增加许多功能。然而十分不幸的是，他很快地发现显然wu-ftpd需要全部重新的改写才能补足欠缺的设定能力以及缺乏的一些功能。[3]
除了wu-ftpd的，也有一些其他的FTP服务器可被设计成重量轻，安全而牺牲的可配置性。例如，Troll FTP是一个很好的FTP程序，比wu-ftpd更为安全而且资源占用更少。不幸的是，它是非常适合于基本的FTP服务，但不适合需要更复杂功能的FTP站点.[3]
ProFTPD不是由其它FTP Server的源代码修改而产生的，相反的，它是完全独立而完整、重新改写的FTP Server。许多著名的，访问量大的网站使用ProFTPD的。[3]
核心团队
John Morrissey (主要开发者, mod_ldap 维护者)
Michael Renner
Daniel Roesen
TJ Saunders (ProFTPD的维护者)[3]
退休的核心团队成员
Jesse Sipprell: ProFTPD 创始人
MacGyver: ProFTPD 维护者
Charles Seeger
Andrew Houghton: mod_sql 维护者
Mark Lowes: 相关文档及在线帮助[3]
主要特色
一个单一的和 Apache 的 httpd.conf 类似的配置文件[3]
每个目录下的 .ftpaccess 文件（和 Apache 的. htaccess 类似）[3]
易于配置的，多个虚拟 FTP 服务器以及匿名 FTP 服务[3]
可以单独运行也可以从 inetd/xinetd 启动[3]
匿名 FTP 的根目录不需要特别的目录结构[3]
系统的二进制文件和其他系统文件没有 SITE EXEC 命令[3]
在单独运行方式下，以非特权用户运行，降低攻击风险[3]
日志以及 utmp/wtmp 支持[3]
Shadow 口令支持[3]
采用模块化设计，允许服务器使用模块而方便扩展。[3]
IPv6支持[3]
操作过程
1. 单配置文件，其设置指示和apache的有类似之处，非常容易配置。 
2. 基于单个目录的.ftpaccess设置文件，类似与apache的.htaccess文件。 
3. 易于设置的多虚拟服务器和匿名ftp服务。 
4. 可以设置为从xinetd启动，或者是独立ftp服务器两种运行方式。 
5. 匿名ftp的根目录不需要任何特殊的目录结构，或系统程序或其他系统文件。 
6. ncfptd不执行任何外部程序，从而减少了安全隐患。 
7. 可以根据文件属主情况或unix风格的访问控制来隐藏文件或目录。 
8. 以非root身份运行，从而减少了安全隐患。 
9. 强大的log功能，支持utmp/wtmp及wu-ftpd格式的记录标准，并支持扩展功能的记录。 
10. 支持Shadow密码，包括支持密码过期机制。 
11. 遵从GPL版权，开放源代码。 
12. 可设定多个虚拟FTP server，而匿名FTP服务更是十分容易。
13. 最新版本 1.3.4b released (Updated at 31/Jul/2012)。
安装配置
wget /distrib/source/proftpd-1.3.1.tar.gz
tar zxvf proftpd-1.3.1.tar.gz
cd proftpd-1.3.1
./configure --prefix=/usr/local/proftpd/
make
make install
cd /usr/local/proftpd/etc/
vi proftpd.conf
输入：
# This is a basic ProFTPD configuration file (rename it to
# 'proftpd.conf' for actual use. It establishes a single server
# and a single anonymous login. It assumes that you have a user/group
# "nobody" and "ftp" for normal operation and anon.
ServerName "user FTP"
ServerType standalone
DefaultServer on
# Port 21 is the standard FTP port.
Port 221
# Umask 022 is a good standard umask to prevent new dirs and files
# from being group and world writable.
Umask 022
# To prevent DoS attacks, set the maximum number of child processes
# to 30. If you need to allow more than 30 concurrent connections
# at once, simply increase this value. Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd).
MaxInstances 30
# Set the user and group under which the server will run.
User nobody
Group nobody
# To cause every FTP user to be "jailed" (chrooted) into their home
# directory, uncomment this line.
# Normally, we want files to be overwriteable.
AllowOverwrite on
AllowRetrieveRestart on
AllowStoreRestart on
# Bar use of SITE CHMOD by default
DenyAll
# A basic anonymous configuration, no upload directories. If you do not
# want anonymous users, simply delete this entire section.
#
# User ftp
# Group ftp
# We want clients to be able to login with "anonymous" as well as "ftp"
# UserAlias anonymous ftp
# Limit the maximum number of anonymous logins
# MaxClients 10
# We want 'welcome.msg' displayed at login, and '.message' displayed
# in each newly chdired directory.
# DisplayLogin welcome.msg
# DisplayChdir .message
# Limit WRITE everywhere in the anonymous chroot
# 
# DenyAll
# 
#
后续程序
创建用户
useradd aaa
passwd aaa
vipw
修改用户webtrends的目录和不充许登录
webtrends:x:503:505::/abc/logs:/sbin/nologin
启动：
/usr/local/proftpd/sbin/proftpd &
加入rc.local
/usr/local/proftpd/sbin/proftpd &
netstat -lnt
看有没有开221端口，启动是否成功。
在dos下：
ftp xxx.xxx.xxx.xxx
输入用户名和密码就可以进入ftp>了。
ftp> ls