Script para controle de banda usando FreeRADIUS, PPPoE e HTB

Publicado por Wilker Azevedo 22/07/2008

[ Hits: 11.367 ]

Homepage: plantec.eco.br

Download ip-up




Aqui estão os scripts que utilizo para o controle de banda dos meus clientes.

O script ip-up foi feito por mim, mas como fonte de estudos utilizei alguns script que são distribuidos na internet. Aviso que qualquer semelhança se dá no modo de utilização e finalidade. Qualquer script para controle de banda usando TC será muito parecido mesmo.

Veja em [ Fazer Download ] para o script ip-up.

Veja em [ Código-fonte ] para o script ip-down e maiores instruções.

  



Esconder código-fonte

Para este script funcionar corretamente é preciso FreeRADIUS, PPPoE e HTB (MySQL opicional)
Aqui estão os scripts que utilizo para o controle de banda dos meus clientes.

O script ip-up foi retirado da internet (não me lembro mais quem é o autor) mas tive que fazer muitas modificações para funcionar de acordo com minha necessidade.

Para este script funcionar corretamente é preciso FreeRADIUS, PPPoE e HTB (MySQL opicional)

Configuração:

Para MySQL:

Coloque na tabela radroupreply (todos os clientes do grupo) ou radreply (para cliente individual) os seguintes atributos:

Upstream-Speep
Downstream-Speed

Os operadores devem ser :=

Quem não usa MySQL coloca no raddb/users (consulte help do FreeRADIUS)

O ip-down apenas apaga as regras.

Funcionamento:

ip-up recebe como parâmetros $1 (interface virtual) e $5 (ip do cliente) e procura no arquivo criado pelo radiusclient as velocidades up e down. Caso não encontre, um default é utilizado.

Ao contrário do que muitas pessoas dizem, HTB faz controle de UPLOAD. Inclusive, é bem mais simples, como você pode notar no script, upload é controlado com apenas uma linha de comando.

Como só é possível colocar 1 script, então coloquei o ip-up. Mas o ip-down (que é bem menor) está aqui abaixo, basta você copiar e criar o arquivo /etc/ppp/ip-down:

#=======> ip-down
#! /bin/bash
# Este script pode ser distribuido livremente desde que permaneça o crédito do autor.
# Script criado por Wilker Azevedo - 2007
# cytron@cytron.com.br
# www.listnux.org (contribua você também)
#
ppp=$1
echo "Logout" $ppp `date` >> /usr/local/var/log/pppd.log
echo >> /usr/local/var/log/pppd.log
tc qdisc del dev $ppp root
tc qdisc del dev $ppp ingress
#=======> fim

Scripts recomendados

Script para desconexão em horário determinado

Montar PenDrive

Filtro para importação de extrato do Banco do Brasil para Kmymoney

Acessar diretório Novell

Contador de tempo de execução


  

Comentários
[1] Comentário enviado por cytron em 22/07/2008 - 23:34h

Só uma correção:

Na parte "Código-fonte", onde falo do MySQL, o nome da tabela saiu errado,

radroupreply (faltou a letra g)

Correto:

radgroupreply

Só isso.

[2] Comentário enviado por cytron em 25/08/2009 - 09:26h

Uma ná notícia para a atualidade, a linha responsável pelo controle de upload não funciona nas novas versões do TC, ao aplicar o TC retorna com a seguinte mensagem:

Illegal "match"

E o upload fica de porteiras abertas.
Como tem muito tempo que parei de estudar o TC, não sei corrigir, mas vou ter que colocar a mão na massa.

Se alguém souber a nova maneira de aplicar, pode contribuir aqui ;)


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts