PPPOE + RADIUS + BANDLIMIT
Link Original
http://www.underlinux.com.br/modules.php?name=Sections&op=viewarticle&artid=223

Devido a grande necessidade de ter uma solucao integrada e de facil manutenção resolvi fazer este artigo para resolver o problema de vocês administradores de provedores wireless assim como resolvi o meu :)

IMPORTANTE!!!: Para que tudo funciona voce tem que ter instalado na maquina iproute2 + iptables com suporte a mangle e mark

1. Pegar a versão em desenvolvimento do pppd (versão 2.4.3b1) com algumas alterações que eu fiz para funcionar tudo e instalar no diretório /usr/local/src

# cd /usr/local/src
# wget http://www.underlinux.com.br/downloads/ppp/ppp.tar.gz

2. Compilar e instalar o ppp

# tar -zxvf ppp.tar.gz
# cd ppp
# ./configure
# make
# make install

3. Fazer download do arquivo
http://www.roaringpenguin.com/pppoe/rp-pppoe-3.5.tar.gz

4. Descompactar o rp-pppoe-3.4.tar.gz dentro do diretório /usr/local/src, compilar e instalar:

$ su -

5 Compile o RP-PPPOE

# cd rp-pppoe-3.4/src
# ./configure
# make
# make install

( Não se preocupe com as perguntas, elas são para configurar um cliente de PPPoE)

6. Remova todas os usuarios do arquivo /etc/ppp/pap-secrets e /etc/ppp/chap-secrets

7. Inclua as seguinte linhas no arquivo /etc/ppp/pppoe-server-options:

require-pap
login
lcp-echo-interval 10
lcp-echo-failure 2
ms-dns ipdnsprimario
ms-dns ipdnssecundario
plugin radius.so
plugin radattr.so

8. Edite o arquivo /etc/radiusclient/servers e inclua o servidor de Radius e a senha dele

9. Edite o arquivo /etc/radiusclient/radiusclient.conf e altere as linhas authserver e acctserver para o seu servidor de Radius e porta. EX:

authserver radius.provedor.com.br:1645
acctserver radius.provedor.com.br:1646

10. No seu servidor de Radius, edite o arquivo /etc/raddb/clients e /etc/raddb/naslist (usar o tipo de servidor como other).

11. Colocar o pppoe-server no /etc/rc.d/rc.local para executar quando o servidor for reiniciado

pppoe-server -C Provedor -L enderecoiplocal -p /etc/ppp/ips -I ethX

( ethX = interface da rede que utilizará PPPoE )

crie o arquivo /etc/ppp/ips
com as classes de ips que voce deseja atribuir aos seus clientes
ex:
200.200.200.0-255
200.222.222.0-255


12. adicione dentro do /etc/ppp os meus arquivos ip-up e ip-down

cd /etc/ppp
wget http://www.underlinux.com.br/downloads/ppp/ip-up
wget http://www.underlinux.com.br/downloads/ppp/ip-down
chmod +x ip-up
chmod +x ip-down



13. edite o arquivo /etc/radiusclient/dictionary adicionando essas 3 linhas:

ATTRIBUTE Download 78 integer
ATTRIBUTE Upload 79 integer
ATTRIBUTE Cliente 80 string

14. edite o dicionario padrao do seu servidor de radius e tambem adicione

ATTRIBUTE Download 78 integer
ATTRIBUTE Upload 79 integer
ATTRIBUTE Cliente 80 string

15. configure dentro do seu arquivos users do radius os grupos de acesso

DEFAULT Group = "cliente128k", Simultaneous-Use = "1"
Fall-Through = Yes
Download = 128
Upload = 64
Cliente = cliente

DEFAULT Group = "cliente256k", Simultaneous-Use = "1"
Fall-Through = Yes
Download = 256
Upload = 64
Cliente = cliente

DEFAULT Group = "cliente328k", Simultaneous-Use = "1"
Fall-Through = Yes
Download = 328
Upload = 64
Cliente = cliente

DEFAULT Group = "empresa128k", Simultaneous-Use = "1"
Fall-Through = Yes
Download = 128
Upload = 128
Cliente = empresa

DEFAULT Group = "empresa256k", Simultaneous-Use = "1"
Fall-Through = Yes
Download = 256
Upload = 256
Cliente = empresa

DEFAULT Group = "empresa328k", Simultaneous-Use = "1"
Fall-Through = Yes
Download = 328
Upload = 328
Cliente = empresa

no caso é claro voce tem que lembrar de adicionar esses grupos no seu sistemas e tera que colocar o usuario nesse grupo para que ele navegue nessa velocidade...
a diferenca entre o empresa pro cliente e que o cliente recebe link de saida sempre de 64k e o cliente tera suas portas de 1 a 1024 e de 6000 a 9000 tcp bloqueadas enquanto o empresa tera entrada e saida a mesma velocidade e nao tera nenhuma porta bloqueada.

Caso voce queira criar um usuario com configuracao de ip fixo e com um link proprio crie assim

usuario Auth-Type = System
User-Service-Type = Framed-User,
Service-Type = Framed-User,
Framed-IP-Address = ipquevocedesejacolocar,
Framed-Protocol = PPP,
Framed-Routing = Broadcast-Listen,
Framed-Filter-Id = "bo",
Framed-MTU = 1500,
Framed-Compression = Van-Jacobson-TCP-IP
Idle-Timeout = 600
Download = velocidadedownload
Upload = velocidadeupload

Bom no caso ficamos por aqui caso tenham alguma duvida vao ate o forum da underlinux pq eu nao sou suporte de ninguem :)
caso queira contratar meus servicos ai sim podemos conversar 
scorpion@underlinux.com.br
 
[]'s
Marcus Maciel(ScOrP|On)
System/Network Administrator/Security Officer
www.underlinux.com.br