##包含子配置文件
include /usr/local/etc/conf.d/mod_ban.conf
include /usr/local/etc/conf.d/mod_quota.conf
include /usr/local/etc/conf.d/mod_tls.conf
配置mod_ban子配置文件
--------------------------mod_ban.conf内容---------------------------------
##最大登录尝试次数
MaxLoginAttempts3
##如果编译ban模块
<IfModule mod_ban.c>
##设置阻止日志路径
BanLog/usr/local/var/proftpd/log/ban.log
##设置ban阻止表路径
BanTable/usr/local/etc/conf.d/ban.tab
##阻止事件:1分钟内请求连接 超过5次,拒绝连接,4小时后解锁
BanOnEventClientConnectRate5/00:01:0004:00:00"Stopconnecting frequently"
##阻止事件:10分钟内尝试登录 超过5次,拒绝连接,1小时后解锁
#允许管理员手动添加和解除黑名单
BanControlsACLs all allowuser root
#设置白名单
<Class whitelist>
##这里就不说了,呵呵~
From10.1.50.50
</Class>
#
##如果包含在白名单,这里用到的是mod_ifsession模块
<IfClass whitelist>
##关闭ban引擎
BanEngine off
</IfClass>
##不果不在白名单
<IfClass!whitelist>
##开启ban引擎
BanEngine on
</IfClass>
</IfModule>
配置mod_quota子配置文件
----------------------mod_quota.conf内容-------------------------------
##如果编译qutatab模块执行模块里的配置
<IfModulemod_quotatab.c>
##开启quota引擎
QuotaEngine on
##显示大小单位MB
QuotaDisplayUnitsMb quota
##登录时扫描
QuotaOptionsScanOnLogin
##显示quota命令可用性信息
QuotaShowQuotas on
##指定quota表路径,前者是限制的大小,后者是已经使用的大小
QuotaLimitTable file:/usr/local/etc/conf.d/ftpquota.limittab
QuotaTallyTable file:/usr/local/etc/conf.d/ftpquota.limittab
##指定quota日志路径
QuotaLog/usr/local/var/proftpd/log/ftpquota.log quota
</IfModule>
配置mod_tls子配置文件
------------------------mod_tls.conf内容---------------------------------
##如何编译了tls模块
<IfModule mod_tls.c>
##开启TLS引擎
TLSEngine on
##设置TLS日志路径
TLSLog/usr/local/var/proftpd/log/tls.log
##设置同时支持SSL版本3和TLS版本1
TLSProtocolSSLv3TLSv1
##连接到服务器时,是否强制用户使用FTPS? 否。
TLSRequired off
##设置认证签名文件,包含RSA算法公钥
TLSRSACertificateFile/usr/local/etc/conf.d/proftpd-cert.pem
##设置RSA密钥
TLSRSACertificateKeyFile/usr/local/etc/conf.d/proftpd-key.pem
##指定CA签名
TLSCACertificateFile/usr/local/etc/conf.d/cacert.pem
#检测用户是否优先使用FTPS
TLSVerifyClient off
#强制TLS协商与否
TLSRenegotiate none
</IfModule>
使用Proftpd
虚拟域
proftpd支持基于IP地址的虚拟域,基于同一IP不同端口的虚拟域。但是,很遗憾不向apache那样支持同地址同端口不同域名的基于互联网域名的虚拟域。
详细配置方法参见:
http://www.proftpd.org/docs/howto/Vhost.html
http://www.proftpd.org/docs/configs/virtual_authuserfile.conf
http://www.proftpd.org/docs/configs/virtual.conf
官方文档描述的很清楚,除了是不是方块字。
添加虚拟用户
编译Proftpd时,会生成ftppasswd程序,用来添加虚拟用户和组。
ftpasswd --passwd --name=admin \
--uid=nobody --gid=nobody \
--home=/ftp_pool/pub/\
--shell=/bin/false \
--file=/usr/local/etc/conf.d/ftpd.passwd
//添加虚拟组
ftpasswd --group--name=xiyang --gid=1001 \
--file=/usr/local/etc/conf.d/ftpd.group
第一次是启动Proftpd之前需要初始化quota表,方法如下:
cd /usr/local/etc/conf.d/
ftpquota --create-table -type limit
ftpquota --create-table -type tally
用户和组策略
虚拟用户的ID可以相同。虚拟组的作用,为逻辑控制,而非权限控制。根据虚拟域的不同来分配uid和gid,域中用户使用域的uid和gid,虚拟用户被DefaultRoot ~ 锁定在其home目录下。