I'm using ispconfig 3 with proftpd (instead of pure-ftp). To support it i make the following small hack: 1 - in table ftp_user added two int column nguid and nuid to store numeric uid/gid corresponding to existing uid/gid (user and group names). I set this fields manually when create a new ftp account (but could be done by a script)
2 - in /etc/proftpd.conf make the very simple config:
SQLAuthTypes Crypt SQLAuthenticate users* SQLConnectInfo firstname.lastname@example.org ispconfig SQLUserInfo ftp_user username password nuid ngid dir '/bin/false' SQLUserWhereClause "active = 'y' AND server_id = '1'" #SQLLog PASS login #SQLLogFile /var/log/proftpd/mod_sql.log
You could also track connections count, ul/dl traffic, limit ul/dl rate, etc.
IMHO is a very good idea to store nuid/ngid in table web_domain (corresponding to system_user/system_group) when a new web/user is created: is a very usefull info! This nuid/ngid can then be copied in table ftp_user when a new ftp account is created/edited.