proftpd的缺省配置是不支持的虚拟用户机制,只允许/etc/passwd里
的用户连接ftp。
虚拟用户的信息可以从SQL tables(mod_sql), LDAP服务器(via
mod_ldap),
CDB文件(via mod_auth_cdb)和其它的系统文件中获得。
最方便的最后一种:
通过 AuthUserFile 和 AuthGroupFile
1. 在/etc/proftpd.conf的末尾加入
AuthOrder mod_auth_file.c mod_auth_unix.c
AuthUserFile /usr/local/etc/proftpd/passwd
AuthGroupFile /usr/local/etc/proftpd/group
其中,AuthOrder指定了权限检查的顺序。这里先检查用户是否在AuthUserFile里,
然后再查系统文件/etc/passwd。
AuthUserFile和AuthGroupFile的文件格式看passwd(5)和group(5)。
如果用户名和组名与系统的重复,看DirFakeUser和DirFakeGroup。
另外,AuthGroupFile并不是必须的。
2. 使用ftpasswd创建passwd和group文件
$ ftpasswd –passwd –file=/usr/local/etc/proftpd/passwd
–name=test \
–uid=888 –home=/home/test –shell=/bin/false
创建了一个test用户
$ ftpasswd –group –name=test –gid=777 –member=user-member1
\
–member=user-member2 … –member=user-memberN
创建了一个test组,并把user-member1…N都加入该组
3. 重启proftpd。哈,简单吧!
ftppassd,ftpquota安装:
1. 下载ftpasswd
chmod +x ftpasswd
2. 建立用户和组
./ftpasswd --passwd --name=test --home=/home/test
--shell=/bin/sh --uid=2222
./ftpasswd --passwd --name=ftp --home=/home/test --shell=/bin/sh
--uid=2223
./ftpasswd --group --gid=2223 --name=ftp
3. 下载ftpquota
4. 设置quota
./ftpquota --create-table --type=limit
./ftpquota --add-record --type --bytes-upload=5000000
--limit-type=soft --name=test --quota-type=user
5. 配置proftpd
root# cat proftpd.conf
ServerName "ProFTPD Default Installation"
ServerType inetd
DefaultServer on
PassivePorts 49152 65534
IdentLookups off
UseReverseDNS off
AuthUserFile /usr/local/etc/proftpd/ftpd.passwd
AuthGroupFile /usr/local/etc/proftpd/proftpd.group
DefaultAddress 10.0.144.120
Port 21
Umask 022
MaxInstances 60
User www
Group www
DefaultRoot ~
QuotaLimitTable file:/usr/local/etc/proftpd/ftpquota.limittab
MaxLoginAttempts 3
User ftp
Group ftp
UserAlias anonymous ftp
# MaxClients 30
#
# DenyClass BlackList
#
DenyUser ftp
From 222.82.229.114/24
6. 安装tcpserver
cd /usr/ports/sysutils/ucspi-tcp/
make extract
cd work/ucspi-tcp-0.88
fetch http://js.hu/package/ucsp......tcp-0.88-periplimit.7.patch
patch < ucspi-tcp-0.88-periplimit.7.patch
cd ../..
make install clean
rehash
补丁可以让tcpserver限制每个IP的连接数,可从网上下载