Командой last из wtmp выбирается информация о работе пользователей, по ним с учетом тарифа выставляется счет. Если не нужна статистика в реальном времени, можно запускать обработку раз в сутки.
В базу данных заносятся записи о времени входа и времени выхода из системы, потом считается.
Для поминутного учета можно, например, запускать по cron команду w, по ней выяснять пользователей, работающих в данный момент, и записывать в базу.
Добавление записей в базу можно сделать в скрипте /etc/ppp/ip-down
Например так:
last -s -t cuaa2 | awk -F '[()]' '{print $2}'
Правда, учтите, что ключ -s для выдачи времени в секундах появился только в последних релизах (2.2.8).
Существовала программка amlast из пакета статистики amstat, выдающая информацию в приемлемом виде.