[FUG-BR] Help com IPFW

Marcelo Gondim gondim em bsdinfo.com.br
Quinta Fevereiro 23 00:36:42 BRST 2012


Em 22/02/2012 23:01, Márcio Elias escreveu:
> Buenas colegas da lista, estava muito distante do mundo do FreeBSD
> ultimamente, e agora me deparei com um trabalho no qual preciso implementar
> uma espécie de Captive Portal (customizado) usando FreeBSD, de ante mão
> informo que não tenho interesse em PF, pois nao conheco nada, e tempo eh
> complicado, IPFW que estou enferrujado já eh problema...
>
> O que preciso eh o seguinte, tenho uma regra no meu firewall que direciona
> todas as conexoes com a internet para o servidor web local, onde uma página
> para login do usuario eh apresentada, ateh ai blz, uma fez efetuado o login
> com sucesso, preciso inserir uma regra antes dessa regra de
> redirecionamento que pule para uma regra de redirecionamento que aparece
> depois dela, usado o skipto, funciona, porem somente usando somente o IP,
> se colocar o MAC na regra tambem, apesar de as regras terem seus contadores
> incrementados, alguns pacotes passam direto e caem na regra de
> redirecionamento, o que faz com que a página de login seja novamente
> exibida para o usuário. Segue abaixo as regras que estou usando:
>
> regras usando MAC nao estao 100%
>
> ${fwcmd} add skipto 20000 log logamount 100 ip from any to ${myself} MAC
> 00:25:56:94:62:5F any
> ${fwcmd} add skipto 20000 log logamount 100 ip from ${myself} to any MAC
> any 00:25:56:94:62:5F
>
> *obs: neste caso myself representa o meu IP, estou testando o servidor na
> minha rede domestica...
>
> a mesma sintaxe de regras sem o MAC (essa funciona 100%)
>
> ${fwcmd} add skipto 20000 log logamount 100 ip from any to ${myself}
> ${fwcmd} add skipto 20000 log logamount 100 ip from ${myself} to any
> Alguem sabe me dizer a diferenca entre essas regras com e sem MAC, e como
> fazer para contornar esse problema...?
>
Um jeito simples seria o seguinte:

1) Defina uma table onde vão ter os IPs liberados
2) Cria uma regra que vai liberar os IPs que tiverem nessa table.
3) Cria a regra de redirecionamento para a web depois da regra acima.
4) Quem se logar na web adiciona o IP naquela table.

Assim quem não tiver na table vai cair na página Web. Esse exemplo acima 
seria sem usar o mac address.
Coisas mais completas podem ser feitas usando inclusive php + mysql.  :)






Mais detalhes sobre a lista de discussão freebsd