[FUG-BR] Duvidas e problemas com PF

Diogo Dalfovo b1n4r1w0rm em gmail.com
Sexta Janeiro 18 20:15:40 BRST 2013


Em 18 de janeiro de 2013 17:46, Mario Lobo <lobo em bsd.com.br> escreveu:

> Em 18 de janeiro de 2013 16:44, Mario Lobo <lobo em bsd.com.br> escreveu:
>
> >
> >
> > Em 18 de janeiro de 2013 06:27, Diogo Dalfovo <b1n4r1w0rm em gmail.com
> >escreveu:
> >
> > Bom dia pessoal...
> >>
> >> Estou com problema que acredito ser no retorno do pacote usando PF no
> >> Freebsd. Meu cenario é seguinte:
> >> O firewall ligado em duas operadoras A e B e duas LANs 192.168.0.0/24 e
> >> 192.168.2.0/24 faço NAT de cada rede pra cada saida da operadora e
> tambem
> >> ja testei configurando uma WAN com os IPs configurados tanto da
> operadora
> >> A
> >> como da B mas em nenhum dos caso deu certo. Por ultimo depois da
> madrugada
> >> se estiver tudo "certo" ele pinga uma vez de em cada operadora e para.
> >>
> >> Mas resumindo a historia toda preciso que o venha da rede
> >> 192.168.0.0/24saia e retorne pela operada A e a rede
> >> 192.168.2.0/24 saia e retorne somente pela B ou se tem como fazer com
> que
> >> tudo que vier de uma interface saia e retorne pela interface da rede A e
> >> igualmente pela B.
> >>
> >> Lembrando que o meu gateway esta pela rede B, segue o meu PF.
> >>
> >> ###########################################
> >> # 1 - Interfaces
> >> ###########################################
> >> #Externa WAN
> >> if_bgp  = "fxp1"
> >> if_gvt  = "fxp0"
> >> if_fw   = "rl0"
> >> if_bridge = "bridge0"
> >>
> >> ##########################################
> >> # 2 - IPs do Firewall
> >> ##########################################
> >> ip_fw=""
> >> ip_ebt = "A.A.187.0/24"
> >> ip_gvt = "B.B.115.0/24"
> >>
> >>
> >> ##########################################
> >> # 3 - IPs Gateways
> >> ##########################################
> >>
> >> ip_gw_gvt = "B.B.115.5"
> >> ip_gw_ebt = "A.A.187.5"
> >>
> >>
> >>
> >> #pass in quick on $if_gvt reply-to ( $if_gvt $ip_gw_gvt ) from ip_gvt
> >> #pass in quick on $if_ebt reply-to ( $if_ebt $ip_gw_ebt ) from $ip_ebt
> >>
> >> #pass out quick log on $if_ebt route-to ( $if_ebt $ip_gw_ebt ) from
> >> $ip_ebt label "ebt"
> >> #pass out quick log on $if_bgp route-to ( $if_gvt $ip_gw_gvt ) from
> >> $ip_gvt  label "gvt"
> >>
> >> pass out quick log on $if_bridge route-to ( $if_ebt $ip_gw_ebt ) from
> >> $ip_ebt label "ebt"
> >> pass out quick log on $if_bridge route-to ( $if_gvt $ip_gw_gvt ) from
> >> $ip_gvt  label "gvt"
> >>
> >> como ele é uma bridge tanto faz se uso interface bridge ou a fisica o
> >> resultado é o mesmo o pacote vai mais nao volta... alguem ja passou por
> >> isso? ou ve onde estou errando?
> >>
> >> Diogo Dalfovo
> >> -------------------------
> >> Histórico: http://www.fug.com.br/historico/html/freebsd/
> >> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
> >>
> >
> > Diogo;
> >
> > Voce tem que dizer no pacote entrante da LAN pra onde voce quer que ele
> > seja roteado.
> >
> > Ex.
> >
> > pass in log quick on $lan_ebt_if route-to ($if_ebt $ip_gw_ebt ) inet
> proto
> > tcp from $lan_ebt_if:network to any
> >
> > pass in log quick on $lan_gvt_if route-to ($if_gvt $ip_gw_gvt ) inet
> proto
> > tcp from $lan_ebt_if:network to any
> >
> > Faz o NAT de tudo pra tudo que o keep state vai fazer o pacote voltar pro
> > lugar certo.
> >
> > Esse exemplo eu peguei do nosso servidor de produção. 2 link (OI e
> > EMBRATEL). Tenho o controle ate da rota de hosts individuais.
> >
> > Pode testar que vai rolar.
> > --
> > Mario Lobo
> > http://www.mallavoodoo.com.br
> > FreeBSD since version 2.2.8 [not Pro-Audio.... YET!!] (99,7% winfoes
> FREE)
>
>
> OOOPS ! na segunda linha leia-se: $lan_gvt_if:network
>
> Desculpe
> --
> Mario Lobo
> http://www.mallavoodoo.com.br
> FreeBSD since version 2.2.8 [not Pro-Audio.... YET!!] (99,7% winfoes FREE)
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>

Boa noite Mario...

Obrigado pelas dicas, fiz o testes com estas configurações e sei que
funciona num ambiente onde existe NAT, porem, existe um detalhe que nao
deixei claro. Este servidor seria uma bridge entre o meu firewall (cisco) e
as operadoras (A) e (B) para que todo trafego que esteja saindo com os
endereços IP da operadora (A) não seja forçado a ser entregue na operadora
(B), infelizmente o Cisco não faz pre-routing ou seja, nao consigo pegar a
origem e dizer que ele deve sair pela interface do router (A) ele sempre
vai sair pela (B) e vai dar problema.

Esta bridge seria uma "arapuca" temporaria ate eu migrar todos os clientes
da operadora (B) para a (A) foi uma tentativa de "enganar" o firewall pois
tudo que vem pela interface (B) ele retorna mas a saida não...

Se alguem ja fez uma arapuca dessa e puder mostrar o caminho das pedras
seria interessante

Mas de qualquer forma obrigado.

Diogo Dalfovo


Mais detalhes sobre a lista de discussão freebsd