Como logar a largura de banda do OpenVPN usada?

1

Eu tenho um servidor OpenVPN e quero que ele registre a largura de banda de cada usuário. Eu estou olhando para registrar o bytes_send e bytes_received . Isso é armazenado no arquivo status do OpenVPN, mas não consigo ler esse arquivo facilmente, pois está sempre mudando.

Eu poderia usar um script client-disconnect , mas como eu passaria a largura de banda usada para isso? Eu prefiro não usar isso, pois a largura de banda só será atualizada quando um cliente se desconectar. E se ele nunca fizer isso? Certo, ele pode usar a largura de banda que quiser.

Então, como posso registrar a largura de banda usada por cliente?

    
por Devator 18.12.2012 / 21:59

1 resposta

1

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.

    
por 23.12.2012 / 11:19