[GTER] Cuidados com o Alvo(Target) Mark no iptables

Bruno Galindro da Costa bruno.galindro at gmail.com
Tue Jul 7 13:48:51 -03 2009


Alguém sabe se a opção QUICK no PF (OpenBSD) faria a mesma coisa que o
ACCEPT no final da linha com a marcação do pacote?


2009/7/7 Fabio Luiz <fabiosk at gmail.com>

> Desculpa mas fico meio confuso pra mim tambem concordo com o Carlos eu
> normalmente utilizo o Default Policy cini ACCEPT e sobre a parte de
> informações conflitantes foi oque o Carlos falou tambem.
>
> Att.
>
> Fabio
>
> 2009/6/30 Alexandre J. Correa - Onda Internet <alexandre at onda.psi.br>
>
> > Carlos,
> >
> > ele cai na policy DEFAULT caso nenhuma outra regra bata com o pacote...
> mas
> > se bater... desfaz o que fez anteriormente..
> >
> > entao, sempre que eu utilizo mark, eu dou ACCEPT depois para que ele
> > TERMINE o processamento daquele pacote... evitando que ele passe por
> outra
> > analise adiante :)
> >
> >
> >
> > Carlos Eduardo Langoni wrote:
> >
> >> Alexandre,
> >>
> >> Depois do Mark você precisa dar um Accept se a Default Policy for
> >> DROP, mas nunca utilizei nada na tabela mangle como Default Policy em
> >> DROP e nunca vi em uso também.
> >>
> >> Abraços!
> >>
> >> 2009/6/30 Alexandre J. Correa - Onda Internet <alexandre at onda.psi.br>:
> >>
> >>
> >>> depois do mark voce precisa dar um ACCEPT para que nao siga o
> >>> processamento...
> >>>
> >>> MARK trabalha igual o RETURN (apenas nao marca)
> >>>
> >>>
> >>> Carlos Eduardo Langoni wrote:
> >>>
> >>>
> >>>> Demorei 3 dias para entender este problema e encontrar a solução para
> >>>> ele, e acho que pode ser útil para outras pessoas, a medida que
> >>>> aumenta-se a oferta e disponibilidade de serviços de acesso a
> >>>> internet.
> >>>>
> >>>> Como todos sabem é simples e eficiente fazer balanceamento de carga
> >>>> entre dois links de internet com Linux.
> >>>> Isso é feito utilizando o Alvo(Target) MARK do iptables em conjunto
> >>>> com algumas regras do iproute2[1].
> >>>>
> >>>> O problema aparece quando começamos a trabalhar com vários alvos MARK.
> >>>> No meu caso específico encontrei este problema quando comecei a
> >>>> utilizar o NoCat como autenticador da rede, ele identifica o pacote já
> >>>> autenticado através de marcas relacionadas a pacotes, 0x4 para não
> >>>> autenticados e 0x3,0x2 e 0x1 para os autenticados, dependendo do grupo
> >>>> ele escolhe entre as marcas 3,2 e 1.
> >>>> Quando eu precisei fazer com que determinados pacotes saissem por uma
> >>>> segunda conexão com a internet os problemas começaram. De forma alguma
> >>>> eu consegui fazer funcionar. Eu removia todas as regras subia apenas
> >>>> as regras necessárias ao roteamento e funcionava, quando misturava com
> >>>> as regras nada de funcionar.
> >>>>
> >>>> Após ler muitos logs e fazer muitos testes comecei a entender o
> >>>> funcionamento.
> >>>> No geral quando um pacote casa com uma regra o iptables para o
> >>>> processamento na chain e passa para a próxima chain (ou para o envio
> >>>> do pacote quando chega na última chain). Mas no caso do alvo MARK,
> >>>> como o pacote não foi aceitado nem rejeitado, o processamento não
> >>>> para, ele simplesmente associa o pacote à marca e segue para próxima
> >>>> regra. Se houver alguma outra regra de MARK conflitante, que também
> >>>> case com o pacote, a marca do pacote será alterada.
> >>>>
> >>>> Exemplo:
> >>>> iptables -t mangle -A PREROUTING -s 192.168.0.0/24 -d
> 200.xxx.xxx.0/24
> >>>> -j MARK --set-mark 1
> >>>> iptables -t mangle -A PREROUTING -s 192.168.0.0/24 -d 0/0 -j MARK
> >>>> --set-mark 2
> >>>> Neste caso todos os pacotes com origem em 192.168.0.0/24 serão
> >>>> marcados com 2 no final do processamento
> >>>> Se a última regra desta chain fosse:
> >>>> iptables -t mangle -A PREROUTING -s 0/0 -d 0/0 -j MARK --set-mark 5
> >>>> Todos os pacotes seriam marcados com 5.
> >>>>
> >>>> Desta forma é preciso muita atenção para criar regras de marcação de
> >>>> pacotes, a fim de evitar que a marca não seja aplicada corretamente.
> >>>> No caso do exemplo a melhor ordem para as regras seria:
> >>>> iptables -t mangle -A PREROUTING -s 0/0 -d 0/0 -j MARK --set-mark 5
> >>>> iptables -t mangle -A PREROUTING -s 192.168.0.0/24 -d 0/0 -j MARK
> >>>> --set-mark 2
> >>>> iptables -t mangle -A PREROUTING -s 192.168.0.0/24 -d
> 200.xxx.xxx.0/24
> >>>> -j MARK --set-mark 1
> >>>>
> >>>> Desta forma todos os pacotes com origem em 192.168.0.0/24 com destino
> >>>> a 200.xxx.xxx.0/24 recebem marca 1, com origem 192.168.0.0/24 e
> >>>> qualquer destino recebem marca 2 e os demais pacotes marca 5
> >>>>
> >>>> Espero que seja útil para mais alguém esta informação
> >>>>
> >>>> Abraços a todos!
> >>>> [1] http://lartc.org/
> >>>> --
> >>>> gter list    https://eng.registro.br/mailman/listinfo/gter
> >>>>
> >>>>
> >>>>
> >>>>
> >>> --
> >>> Sds.
> >>>
> >>> Alexandre Jeronimo Correa
> >>>
> >>> Onda Internet
> >>> www.onda.net.br
> >>>
> >>> IPV6 Ready !
> >>> www.ipv6.onda.net.br
> >>>
> >>> --
> >>> gter list    https://eng.registro.br/mailman/listinfo/gter
> >>>
> >>>
> >>>
> >> --
> >> gter list    https://eng.registro.br/mailman/listinfo/gter
> >>
> >>
> >>
> >
> >
> > --
> > Sds.
> >
> > Alexandre Jeronimo Correa
> >
> > Onda Internet
> > www.onda.net.br
> >
> > IPV6 Ready !
> > www.ipv6.onda.net.br
> >
> > --
> > gter list    https://eng.registro.br/mailman/listinfo/gter
> >
> --
> gter list    https://eng.registro.br/mailman/listinfo/gter
>



-- 
Att.
Bruno Galindro da Costa
bruno.galindro at gmail.com
Florianópolis - SC



More information about the gter mailing list