18-5-04 - Boletim ViaLinuxis em sintonia com o Fórum |
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:
Tenho um link internet de 128k compartilhado para minha rede local. Tenho como limitar o uso de banda de cada estação?
Jorge Kinoshita URL: http://www.pcs.usp.br/~jkinoshi
Até onde sei, não.
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
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.