Для своего решения я писал модуль для pppd, который коннектился к серверу, отсылал логин-пароль, на сервере проводилась верификация плюс всякие проверки доступности данного пользователя и в ответ модулю отдавались данные (в т.ч. IP, назначаемый клиенту).
На сервере работает написанный на перле демон, который и проводит все проверки. Где хранятся логин-пароль уже дело 10-е (у меня в базе mysql).
Так-же, в скрипте ip-down делается коннект на сервер и отправляются данные сессии.
Т.о. все хранится в одном месте, и данные, и статистика, удобно для всяческой обработки и администрирования.
"No! Try not! Do. Or do not. There is no try." -- Yoda