[FUG-BR] FreeBSD 10-RELEASE + IPFW + MAC Address

Márcio Elias marcioelias em gmail.com
Segunda Fevereiro 10 17:27:23 BRST 2014


2014-02-10 17:22 GMT-02:00 Edinilson - ATINET <edinilson em atinet.com.br>:

> ----- Mensagem original -----
> > De: "Márcio Elias" <marcioelias em gmail.com>
> > Para: "Lista Brasileira de Discussão sobre FreeBSD (FUG-BR)"
> > <freebsd em fug.com.br>
> > Enviadas: Segunda-feira, 10 de fevereiro de 2014 12:04:24
> > Assunto: [FUG-BR]  FreeBSD 10-RELEASE + IPFW + MAC Address
> >
> > Bom dia pessoal da lista,
> >
> > eu tenho diversos servidores FreeBSD rodando (versões 8.x e 9.x) como
> > routers para subredes de meus clientes (trabalho em um ISP).
> >
> > Pois bem, agora com o lançamento do FreeBSD 10 e seus aperfeiçoamentos
> > para
> > virtualização estou virtualizando meus servidores, mais estou tento um
> > problema que não tinha nas versões anteriores do Free.
> >
> > Basicamente eu controlo o acesso de meus clientes por MAC, com IPs
> fixados
> > no DHCP e jogo cada cliente em um pipe para Upload e outro para Download.
> >
> > Cada servidor tem 2 interfaces de rede e estou utilizando o Natd (divert,
> > ainda não tentei o IPFIREWALL_NAT).
> >
> > Abaixo seguem as regras (mínimo para facilitar o entendimento) para um
> > cliente, que funcionavam em versoes anteriores e não estão funcionando na
> > versão 10.
> >
> > ipfw add 50 divert natd ip from any to me in recv ${natd_interface}
> > ipfw add 50 divert natd ip from 192.168.0.0/16 to any out xmit
> > ${natd_interface}
> > ipfw add 1000 pipe 150 ip from any to 192.168.5.18 MAC XX:XX:XX:XX:XX:XX
> > any
> > ipfw add 1010 pipe 155 ip from 192.168.5.18 to any MAC any
> > XX:XX:XX:XX:XX:XX
> > ipfw add 65535 allow ip from any to any
> >
> > os pipes:
> >
> > 00155:   1.000 Mbit/s    0 ms burst 0
> > q131227  50 sl. 0 flows (1 buckets) sched 65691 weight 0 lmax 0 pri 0
> > droptail
> >  sched 65691 type FIFO flags 0x0 0 buckets 0 active
> >
> > 00150:   4.000 Mbit/s    0 ms burst 0
> > q131222  50 sl. 0 flows (1 buckets) sched 65686 weight 0 lmax 0 pri 0
> > droptail
> >  sched 65686 type FIFO flags 0x0 0 buckets 0 active
> >
> > dentro do dhcpd.conf tenho essa configuração para este cliente:
> >
> > host 1570 {  hardware ethernet XX:XX:XX:XX:XX:XX;   fixed-address
> > 192.168.5.18;   }
> >
> > O cliente pega o IP esperado, vejo tráfego normal em todas as regras,
> mais
> > um tráfego muito baixo na regra 1010, consigo pingar pra qq lugar, (pq
> não
> > estou colocando ICMP nas regras de restrição) mais não consigo ter
> > navegação no cliente.
> >
> > Se eu deixo tudo como está e retiro a regra 1010, a navegação ocorre
> > normalmente, o único problema é que o upload não estará restrito ao mac
> > address do cliente.
> >
> > Alguém pode me dar alguma ideia de o que pode estar acontecendo? Sabem se
> > teve alguma alteração no IPFW ou no Free na versão 10 que alterou esse
> > comportamento?
> >
> > O estranho é que a mesma regra de firewall para tráfego de fora para o
> > cliente funciona, mais do cliente pra fora não.
> >
> > Agradeço qualquer ideia.
> >
> > --
> > Att.
> > __________________________________
> > Márcio Elias Hahn do Nascimento
> >
> > Araranguá - SC
> > Cel:   (55) 48-9661-0233
> > msn: marcioeliashahn em hotmail.com
> > -------------------------
> > Histórico: http://www.fug.com.br/historico/html/freebsd/
> > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
> >
>
> A regra
> ipfw add 1010 pipe 155 ip from 192.168.5.18 to any MAC any
> XX:XX:XX:XX:XX:XX
>
> está correta?
>
>
> Nao seria:
> ipfw add 1010 pipe 155 ip from 192.168.5.18 to any MAC XX:XX:XX:XX:XX:XX
>
> Edinilson
> ------------------------------------------
> ATINET
> Tel Voz: (0xx11) 4412-0876
> http://www.atinet.com.br
>
>
>
> Não, ao contrário do IP, a sintaxe do MAC é destino, origem...

ai está a explicação do man page do IPFW

{ MAC | mac } dst-mac src-mac
             Match packets with a given dst-mac and src-mac addresses,
speci-
             fied as the any keyword (matching any MAC address), or six
groups
             of hex digits separated by colons, and optionally followed by a
             mask indicating the significant bits.


Ou seja esta regra era supostamente para adicionar ao pipe 155 todo o
tráfego vindo do IP 192.168.5.18 com MAC XX:XX:XX:XX:XX:XX e indo a
qualquer lugar (any) com qualquer MAC (any).

Funciona perfeitamente nas versões anteriores...

-- 
Att.
__________________________________
Márcio Elias Hahn do Nascimento

Araranguá - SC
Cel:   (55) 48-9661-0233
msn: marcioeliashahn em hotmail.com


Mais detalhes sobre a lista de discussão freebsd