+ Responder ao Tópico



  1. #1

    Padrão Tem como usar iptables para filtrar portas em uma bridge ?

    tenho um debian em modo bridge com 5 placas.

    1 - ethernet (eth0)

    4 - wireless (ath0, ath1, ath2, ath3)


    Queria bloquear as portas, o trafego das wireless entre si. cada cliente que se associa a cada placa não se enxergam por esta sendo feito block relay. Mas entre as placas ele se enxegam.

    tem como ?

  2. #2

    Padrão 252?

    Vc usa mascara 252 nos clientes? Se sim eh so vc bloquear o forward nos ips da usa rede tipo...
    iptables -A FORWARD -d 192.168.0.0/16 -s 192.168.0.0/16 -j DROP...
    se nao usa mascara 252 melhor mudar...

  3. #3

    Padrão

    Citação Postado originalmente por terencerocha Ver Post
    Vc usa mascara 252 nos clientes? Se sim eh so vc bloquear o forward nos ips da usa rede tipo...
    iptables -A FORWARD -d 192.168.0.0/16 -s 192.168.0.0/16 -j DROP...
    se nao usa mascara 252 melhor mudar...
    Uso sim ! o problema é os engraçadinhos que combina com amigos e mudam os ips para transferir arquivos. O block relay de cada placa funciona normal. o problema é entre elas. Uso linux e madwifi fazendo AP.

  4. #4

    Padrão

    Existe o módulo physdev:

    iptables -A FORWARD -m physdev --physdev-is-bridged -j DROP

    Essa regra vai bloquear qualquer pacote que irá atravesar a bridge, porém não derrubará pacotes que serão bloqueados...

    Exite também o EBTABLES que é um filtro de enlace (iptables é de rede). É bem simples.

  5. #5

    Padrão

    O "ideal" seria fazer 4 bridges... (cada placa com seu grupo).

    EX: ath0 <-> eth0
    ath1 <-> eth0
    ath2 <-> eth0
    ath3 <-> eth0

  6. #6

    Padrão

    Citação Postado originalmente por PEdroArthurJEdi Ver Post
    Existe o módulo physdev:

    iptables -A FORWARD -m physdev --physdev-is-bridged -j DROP

    Essa regra vai bloquear qualquer pacote que irá atravesar a bridge, porém não derrubará pacotes que serão bloqueados...

    Exite também o EBTABLES que é um filtro de enlace (iptables é de rede). É bem simples.
    No caso eu não conheço está regra por não conhecer tanto de iptables.
    Mas ela faria com que os usuarios das ath0, ath1, ath2, ath3 não se comuniquem mas eles atravesa a bridge e chega ao servidor ?

    No caso queria este tipo de bloquei entre as wireless. Mas bridge tem que funcionar no caso a ath0 tem que comunicar com eth0 e ath1 tem que comunicar com a eth0 e assim por diante.


    E obrigado pela ajuda até agora.

  7. #7

    Padrão

    Citação Postado originalmente por GrayFox Ver Post
    O "ideal" seria fazer 4 bridges... (cada placa com seu grupo).

    EX: ath0 <-> eth0
    ath1 <-> eth0
    ath2 <-> eth0
    ath3 <-> eth0
    Tinha pensado nisso . mas como ta em produção pensei que consegui-se com algum filtro por iptables.

    Se não tiver como vou ter que derrubar a bridge e fazer tudo do zero desta forma. Sem falar que vou ter que substituir o que esta em produção.
    O trabalheira hehehe.

    Mas muito obrigado pela ajuda. e se tiver como fazer de uma forma que não tenha como refazer o linux ap eu ficaria muito grato.


    até mais.

  8. #8

    Padrão

    Olha,
    Eu tenho funcionando varios freebsd como ap e nao me arrependo. Faço tudo isso aí e mais um pouco, alem do mais ter o PPPoE server dentro de cada AP, e cada ap consulta um servidor radius do provedor, entao evitando um gargalo de conexoes PPP em cima de um servidor só.

    Particularmente, para access point eu prefiro freebsd, pois mostrou resultados, alem de eu saber trabalhar melhor com os bsds.

    Com o freebsd vc consegue colocar as bridges em grupos diferentes, controle de banda na interface wireless, pppoe server nas interfaces de wireless direto, fora o resto....

    Mas se for fazer com linux, se nao me engano, o brctl faz isso sem vc precisar parar a maquina, muito menos ter que formatar.

  9. #9

    Padrão

    Citação Postado originalmente por easyBSD Ver Post
    Mas ela faria com que os usuarios das ath0, ath1, ath2, ath3 não se comuniquem mas eles atravesa a bridge e chega ao servidor ?

    No caso queria este tipo de bloquei entre as wireless. Mas bridge tem que funcionar no caso a ath0 tem que comunicar com eth0 e ath1 tem que comunicar com a eth0 e assim por diante.
    Pelo que eu entendi você deve ter feito o seguinte:

    # brctl addbr br0
    # brctl addif br0 ath0
    # brctl addif br0 ath1
    # brctl addif br0 ath2
    # brctl addif br0 ath3

    Ai você bloqueou a comunicação entre os clientes associados ao mesmo BSSID. Porém, os clientes de diferentes BSSID continuam se comunicando. Sua interface cabeada (eth0) faz o roteamento dos pacotes.

    A opção --physdev-is-bridge só irá bloquear pacotes que queiram atravessar a bridge (através do enlace). Pacotes que irão atravessar a rede (através do roteamento) não serão inspecionados pela regra.

    Caso sua eth0 também faça parte da bridge, você pode fazer:

    iptables -A FORWARD -m physdev --physdev-out eth0 -j ACCEPT
    iptables -A FORWARD -m physdev --physdev-in eth0 -j ACCEPT
    iptables -A FORWARD -m physdev --physdev-is-bridge -j DROP

    O que está sendo dito: Se o pacote for sair pela porta eth0, aceite. Se o pacote estiver entrando pela eth0, aceite. Se o pacote for atravessar o enlace, derrube.

    Portanto, o enlace só será transponível se a interface de fonte/destino for a eth0.

    Qualquer coisa pode perguntar que eu tento esclarecer!
    Última edição por PEdroArthurJEdi; 26-09-2007 às 14:57.

  10. #10

    Padrão

    Ou entao assim ó:


    brctl addbr br0
    brctl addif br0 ath0
    brctl addif br0 eth0

    brctl addbr br1
    brctl addif br1 ath1
    brctl addif br1 eth0

    brctl addbr br2
    brctl addif br2 ath2
    brctl addif br2 eth0

    brctl addbr br3
    brctl addif br3 ath3
    brctl addif br3 eth0

    Creio que assim tambem resolva...

  11. #11

    Thumbs up

    Citação Postado originalmente por PEdroArthurJEdi Ver Post
    Pelo que eu entendi você deve ter feito o seguinte:

    # brctl addbr br0
    # brctl addif br0 ath0
    # brctl addif br0 ath1
    # brctl addif br0 ath2
    # brctl addif br0 ath3

    Ai você bloqueou a comunicação entre os clientes associados ao mesmo BSSID. Porém, os clientes de diferentes BSSID continuam se comunicando. Sua interface cabeada (eth0) faz o roteamento dos pacotes.

    A opção --physdev-is-bridge só irá bloquear pacotes que queiram atravessar a bridge (através do enlace). Pacotes que irão atravessar a rede (através do roteamento) não serão inspecionados pela regra.

    Caso sua eth0 também faça parte da bridge, você pode fazer:

    iptables -A FORWARD -m physdev --physdev-out eth0 -j ACCEPT
    iptables -A FORWARD -m physdev --physdev-in eth0 -j ACCEPT
    iptables -A FORWARD -m physdev --physdev-is-bridge -j DROP

    O que está sendo dito: Se o pacote for sair pela porta eth0, aceite. Se o pacote estiver entrando pela eth0, aceite. Se o pacote for atravessar o enlace, derrube.

    Portanto, o enlace só será transponível se a interface de fonte/destino for a eth0.

    Qualquer coisa pode perguntar que eu tento esclarecer!

    Ok. a bridge ta assim :

    # brctl addbr br0
    # brctl addif br0 eth0
    # brctl addif br0 ath0
    # brctl addif br0 ath1
    # brctl addif br0 ath2
    # brctl addif br0 ath3
    Depois defino um ip para a bridge para poder ter acesso via ssh, pois esta cpu não tem placa de video. é somente uma bridge de wireless mesmo.

    Fico muito grato pela ajuda de vocies, especialmente EdroArthurJEdi e o Grayfox !

    Não testei ainda mas vou testar a solução do EdroArthurJEdi e se funcionar nem parto para a outra. Mas posto os resultados aqui para voceis.

    E mais uma vez obrigado nota 1000.