você pode configurar as regras do iptables para cada um dos usuários:
iptables -A FORWARD -i tun0 -s 10.0.0.1 -j ACCEPT
iptables -A FORWARD -o tun0 -d 10.0.0.1 -j ACCEPT
iptables -A FORWARD -i tun0 -s 10.0.0.2 -j ACCEPT
iptables -A FORWARD -o tun0 -d 10.0.0.2 -j ACCEPT
...
e periodicamente [por exemplo, a cada 15 minutos] coletam estatísticas deles:
iptables -nvxL FORWARD > stats
e limpe-os:
iptables -Z
você terá que analisar o arquivo de estatísticas e salvá-lo, por exemplo, em um banco de dados após cada execução.
você pode querer criar uma cadeia separada para o tráfego vindo do dispositivo de encapsulamento e fazer com que todo o tráfego vpn'ed passe primeiro. então você analisaria estatísticas apenas para aquele túnel.
tenha em mente que esta solução causará sobrecarga adicional em sua cpu comparada com a situação quando você usa o módulo conntrack e aceita todos os pacotes pertencentes a conexões estabelecidas e relacionadas.