18-5-04 - Boletim ViaLinuxis em sintonia com o Fórum
firewall
seu email: subscribe unsubscribe

Editorial

Uma pergunta antiga, de difícil solução, é: como posso limitar a banda do usuário em uma rede ethernet? A busca por essa resposta envolve conhecimentos de firewall.

O firewall é um dispositivo que protege uma rede privada, do público externo (a internet como um todo). É destinada a controlar o fluxo de pacotes baseado na fonte de emissão, destino, porta ou tipo de informação contido em cada pacote. Existem diferentes pacotes de firewall para Linux bem como suporte embutido no núcleo. Outros firewalls são o TIS e o SOCKS. Esses pacotes de firewall são bastante completos e, combinados com outras ferramentas, permitem o bloqueio/redirecionamento de todos os tipos de tráfego e de protocolos. Diferentes políticas podem ser implementadas através de arquivos de configuração ou de programas com interface gráficas. Fonte: Networking-overview-howto.

Eu deveria ter criado este boletim quando da transição do kernel 2.2 para o 2.4, mas mesmo assim, lá vai:


Pergunta em Foco

pergunta: [24-01-02] askuromoto
Tenho um link internet de 128k compartilhado para minha rede local. Tenho como 
limitar o uso de banda de cada estação?

resposta 1 [24-01-02] jkinoshi

Jorge Kinoshita URL: http://www.pcs.usp.br/~jkinoshi

Até onde sei, não.

resposta 2 [25-01-02] thakilar

Wendelmaques Rodrigues Pereira URL: http://www.e-alinux.com

Sim, você pode usar o CBQ para controlar a banda da rede.
Mas se você quer controlar a banda para cada estação e ainda bloquear o acesso 
ao seu link para que somente estações que estejam logadas via DHCP possam usar 
essa banda, interessante né?
Segue abaixo o texto de limitação por IP:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Solucao: Traffic Shapper por endereco IP!! 
 
--------------------------------------------------------------------------------
 
 
To: linux-br@bazar.conectiva.com.br  
Subject: Solucao: Traffic Shapper por endereco IP!!  
From: "Eder F. Miotto"   
Date: Tue, 20 Mar 2001 21:27:38 +0000 (/etc/localtime)	
 
--------------------------------------------------------------------------------
 
 
Ola, 
 
tenho visto muita gente na lista pesquisando por 
Controle de Trafego baseado em endereco IP! 
 
Dah para se conseguir isto com o Traffic Shaper do Linux. 
Basta criar varios shapers e adiocar uma rota estatica 
de um IP para o shaper. 
 
Vejam um pequeno exemplo: 
 
1) crie varios shapers, faca quantos voce precisar, 
   cada shaper ira realiza um controle! 
 
   $ cd /lib/modules/versao_kernel/net 
   $ cp shaper.o shaper0.o 
   $ cp shaper.o shaper1.o 
   $ cp shaper.o shaper2.o 
   ... 
 
2) Atualize as dependencias parar os novos modulos: 
 
   $ depmod -a 
 
3) Carregue os modulos necessarios: 
 
   $ insmod shaper0 
   $ insmod shaper1 
   ... 
 
  Obs.: para cada modulo carregado, o kernel disponibiliza 
  uma interface shaperX, que sera a interface de rota para 
  o IP onde se quer limitar o trafeo. 
 
4) Atache e configure a velocidade para cada shaper deveice: 
 
   $ shapecfg attach shaper0 eth1 
   $ shapecfg attach shaper1 eth1 
   $ shapecfg attach shaper2 eth1 
   ... 
   $ shapecfg speed shaper0 64000 
   $ shapecfg speed shaper1 256000 
   $ shapecfg speed shaper2 64000 
 
5) Configure os ips para os dispositivos shapers: 
 
   $ ifconfig shaper0 192.168.1.1 netmask 255.255.255.0 up 
   $ ifconfig shaper1 192.168.1.1 netmask 255.255.255.0 up 
   $ ifconfig shaper2 192.168.1.1 netmask 255.255.255.0 up 
   ... 
   $ route del -net 192.168.1.0 netmask 255.255.255.0 dev shaper0 
   $ route del -net 192.168.1.0 netmask 255.255.255.0 dev shaper1 
   $ route del -net 192.168.1.0 netmask 255.255.255.0 dev shaper2 
   ... 
 
   Obs: a partir das versoes 2.2.x do kernel (se nao me engano), ao 
   configurar uma interface, o kernel automaticamente adiciona uma rota 
   parao endereco de rede pela interface. Por isso deve-se remover 
   esta rota logo apos configurar a interface 
   (queremos fazer shape somente para um IP, certo?). 
 
6) Adicione rotas para os shapers: 
 
   $ roude add -host 192.168.1.2 dev shaper0 
   $ route add -host 192.168.1.3 dev shaper1 
   $ route add -host 192.168.1.4 dev shaper1 
   $ route add -host 192.168.1.5 dev shaper1 
   $ route add -host 192.168.1.6 dev shaper2 
 
   a saida do comando route deve ser algo como: 
 
   Destino	Roteador   Mascara	   Opcoes Metrica Ref  Uso Iface 
   200.1.1.0	0.0.0.0    255.255.255.0   U	  0	  0    0   eth0 
   192.168.1.2	0.0.0.0    255.255.255.255 UG	  0	  0    0   shaper0 
   192.168.1.3	0.0.0.0    255.255.255.255 UG	  0	  0    0   shaper1 
   192.168.1.4	0.0.0.0    255.255.255.255 UG	  0	  0    0   shaper1 
   192.168.1.5	0.0.0.0    255.255.255.255 UG	  0	  0    0   shaper1 
   192.168.1.6	0.0.0.0    255.255.255.255 UG	  0	  0    0   shaper2 
   0.0.0.0	200.1.1.1  0.0.0.0	   UH	  1	  0    0   eth0 
    
7) Pronto!  
 
 
Ate + 
 
[]'s 
Eder F. Miotto 
eder@diablo.rgsi.com.br

resposta 3 [25-01-02] thakilar

Wendelmaques Rodrigues Pereira URL: http://www.e-alinux.com

Re: (linux-br) Limitar acesso pelo MAC address, tem como ??? [SOLUCAO 
PORQUINHA] 
 
--------------------------------------------------------------------------------
 
 
To: "Bráulio W. Gergull"   
Subject: Re: (linux-br) Limitar acesso pelo MAC address, tem como ??? [SOLUCAO 
PORQUINHA] 
 
From: Jorge Luiz de Paula Martins Filho   
Date: Tue, 20 Mar 2001 18:23:55 -0300  
 
--------------------------------------------------------------------------------
 
 
Em Terça 20 Março 2001 14:16, Bráulio W. Gergull escreveu: 
> Uma solução "porquinha" para tratar isso poderia ser feita usando uma 
> combinação de regras do servidor DHCP + ipchains + proxy ARP: 
> 
> Assim não adianta que o usuário tente alterar o endereço IP para a faixa 
> de IP's autorizados, porque vai haver uma entrada permanente na tabela 
> ARP apontando p/ outro MAC ;) 
 
Ola colegas da lista. 
 
Gostaria de informar as pessoas q vem acompanhando as nossas "discussoes" q a  
solucao "porquinha" apontada pelo Braulio (obrigado Braulio) funcionou!!! 
 
Para fornecer um "documento" mais completo sobre o assunto primeiramente vou  
descrever o problema e depois a implementacao da solucao. 
 
O problema: Aqui na rede de nosso escritorio precisavamos montar um esquema  
de validacao de conexoes por endereco MAC. Ou seja, se a maquina possuisse  
determinado endereco MAC ela poderia navegar, caso contrario ela nao poderia. 
Segundo o Braulio (q foi a primeira pessoa a me ajudar) eu deveria utilizar o  
kernel 2.4 em conjunto com o iptables (q possui suporte a filtros de pacotes  
por MAC address entre outras coisas). Porem esta solucao, apesar de ser  
"ideal", seria "dificil" de implementar devido as diversas "amarracoes"  
envolvidas em uma atualizacao de kernel. No decorrer das "discussoes" o  
Braulio me sugeriu uma "possivel" solucao onde eu deveria fazer uso de uma  
combinacao das seguintes ferramentas: DHCP + ipchains + proxy ARP. 
 
A solucao: Conforme as sugestoes recebidas, consegui resolver o problema  
fazendo uso apenas das ferramentas ipchains + proxy ARP, sendo desnecessario  
(no meu caso) o uso de DHCP. A seguir listei os passos usados para  
implementar a solucao "porquinha" ;-) 
 
- Verifiquei os enderecos MAC de todas as estacoes da rede q terao acesso ao  
"gateway" usando o comando ifconfig (no linux) ou winipcfg (no windows). 
 
- Determinei uma "faixa" de ips para estas estacoes (por exemplo  
192.168.1.100-192.168.1.110). 
 
- Inclui regras especificas para o "forward" relativas a estas estacoes e  
ainda setei a "policy" padrao de "forward" para DENY. 
 
  ipchains -P forward DENY 
  ipchains -A forward -s 192.168.1.100/32 -j MASQ 
  ipchains -A forward -s 192.168.1.101/32 -j MASQ 
  . 
  . 
  ipchains -A forward -s 192.168.1.110/32 -j MASQ 
 
- Inclui "manualmente" na tabela ARP os enderecos ip x MAC relativos a estas  
estacoes usando o comando arp. 
 
  arp -s 192.168.1.100 AA:BB:CC:DD:EE:FF 
  . 
  . 
  arp -s 192.168.1.110 GG:HH:II:JJ:KK:LL 
 
Pronto, eh soh isso. 
 
Desta maneira para o pacote "sofrer" o "mascaramento" ele deve ter como  
endereco ip algum daqueles q eu reservei anteriormente. Alem disso, estes  
enderecos ip somente serao "aceitos" se estiverem "ligados" aos seus  
respectivos enderecos MAC. Como consequencia, se o usuario alterar o endereco  
ip para "fora" do range previamente definido, o ipchains ira "barra-lo", e se  
um usuario em uma estacao cujo MAC da placa de rede NAO esta cadastrada na  
tabela ARP utilizar um ip "dentro" do range, tambem nao conseguira acesso. 
 
Para automatizar o processo de inclusao da tabela ARP eh soh criar o arquivo  
/etc/ethers e incluir as linhas: 
 
192.168.1.100 AA:BB:CC:DD:EE:FF 
.. 
.. 
192.168.1.110 GG:HH:II:JJ:KK:LL 
 
OBS: Nota-se uma grande semelhanca deste arquivo com o /etc/hosts. 
 
Feito isso eh soh incluir a chamada "/sbin/arp -s /etc/ethers" sem as aspas  
no script de inicializacao do sistema (geralmente /etc/rc.d/rc.local). 
 
Conclusao: Pode-se concluir q a utilizacao desta solucao, embora NAO "ideal",  
quebra um galho enquanto "apanhamos" (eu pelo menos) a atualizar o sistema  
para o kernel 2.4. 
 
Desculpem o tamanho da mensagem, porem espero ter ajudado a comunidade ao  
detalhar a solucao deste problema ;-) 
 
Obrigado a todos. (em especial a Braulio e Sir Hamacker) 
 
-- 
Jorge Luiz de Paula Martins Filho 
Analista de Sistemas 
Linux Registered User # 189215 
-- 
 
'Back in the USSR' musica dos Beatles, por John Lenin e Ringo Stalin.

Perguntas & Respostas

17-05-04
listalinux
como faco para deletar htpp?
14-05-04
fabisrg
[1] como faço para inicializar um HD
15-05-04
wrosa
  • Não consegui entender exatamente o que você quis dizer.
11-05-04
anfa
Gostaria de editar imagens de cd (.iso) bootáveis de linux, para adicionar alguns arquivos e scripts.Fiz algumas tentativas mas os cds apresentaram erro ao fa
11-05-04
juliocesar
Pessoal estou tentando fazer autenticação do squid pelo smb_auth alguem tem algum manual para ajuda o site para auxiliar
08-05-04
junior.bel
[1] estou com problema em iniciar a interface grafica, não sei se estou iniciando corretamente, alguem sabe como eu inicio a interface grafica do debian!!??
15-05-04
wrosa
  • O Debian costuma iniciar automaticamente a interface grafica, caso isto não aconteça, você poderia digitar o comando "startx". Caso isto retorne uma mensage
05-05-04
rafaleitzk
[1] Tenho recebido -mais de uma pessoa que parece conhecer minha rotina, e gostaria que alguém me dissesse algum jeito de com o número IP eu descobrir o tel
11-05-04
recoma
  • Vai em www.registro.br e coloca esse IP...