можно поднять squid и считать на нем, складывать в базу. Можно считать через счетчики iptables и самодельным скриптом тоже складывать в базу. Из базы можно делать выборку любую.
Проще и надежнее всего, использовать ppp (и раздавать через VPN ) или pppoe. radius ставить необязательно, можно просто прописать пароли в /etc/ppp/chap-secrets
Если считать трафик через iptables, то пользователь может прописать машине чужой ip и поймать его будет проблематично.
Ха! Подсчет трафика сделать легко. А вот как реализовать потом отображение счетчиков трафика на клиентских местах в реальном времени?... Например, как это сделано в ТрафикИнспекторе под маздаем. Давно ищу такой вариант...