[FUG-BR] IPFW - Bloquear dominios pelo Firewall

Paulo Henrique paulo.rddck em bsd.com.br
Quinta Junho 7 22:41:38 BRT 2012


Em 7 de junho de 2012 18:34, Marcelo Gondim <gondim em bsdinfo.com.br>escreveu:

> Em 07/06/2012 13:07, Danilo Neves escreveu:
> > Caro colegas da comunidade....é o seguinteee
> > Não sei se estou fazendo da forma correta ou se um jeito melhor (sem
> > proxy), mas vamos supor que eu queira bloquear o facebook.com
> > pelo ipfw.
> >
> > ipfw add deny ip from any to facebook.com
> >
> > Nesse caso ele só vai bloquear o ip que resolveu na hora como mostro
> > abaixo...mas o facebook é resolvido por vários IPs...e sendo assim não
> > seria a forma ideal.
> >
> > # ipfw show
> > 00100      0        0 deny tcp from any to 69.171.224.37
> >
> >
> > No iptables  ele já pega todos os ips  e já bloqueia.
> >
> > Comando para bloquear
> > #iptables -A OUTPUT -d facebook.com.br -j DROP
> >
> > Listando os ips bloqueados
> > #iptables -nL OUTPUT
> > Chain OUTPUT (policy ACCEPT)
> > target     prot opt source               destination
> > DROP       all  --  0.0.0.0/0            69.171.242.11
> > DROP       all  --  0.0.0.0/0            66.220.158.11
> > DROP       all  --  0.0.0.0/0            69.171.224.37
> > DROP       all  --  0.0.0.0/0            66.220.149.11
> > DROP       all  --  0.0.0.0/0            69.171.229.11
> >
> > Vejam que ele já pegou todos os ips e dropou :D
> >
> > Agora vem a pergunta....no ipfw tem algum parâmetro que eu tenho q
> colocar
> > para bloquear todos os ips que resolve o nome facebook.com?
> >
> >
> > Veja uma alternativa em script e table dentro do arquivo do firewall a
> ser
> > carregado:
> >
> --------------------------------------------------------------------------------
> > ipfw -f flush
> > # Table
> > # é só criar um arquivo /etc/rc.blacklist e colocar dentro o nome dos
> > domínios a serem bloqueados
> >
> > while read domain
> > do
> >      nslookup $domain | grep Address | grep -v '#' | egrep
> > '([0-9]{1,3}\.){3}([0-9]){1,3}' | awk '{print $2}'>>  /etc/blockedips
> > done<  /etc/rc.blacklist
> >
> > ipfw -f table 91 flush
> >   for rede in $(cat /etc/blockedips) ; do
> >     ipfw table 91 add $rede
> >   done
> >
> > rm /etc/blockedips
> essa linha abaixo ficou mais enxutinha. rsrsrs
>
> for i in `host facebook.com.br|awk {'print $4'}`;do ipfw table 91 add
> $i; done
>
> >
> >
> > ipfw add  1 deny ip from any to "table(91)"
> >
> >
> -----------------------------------------------------------------------------------------------
> >
> >
> > Ou seja...quando eu coloco dentro do arquivo /etc/rc.blacklist os nome
> dos
> > domínios
> >
> > facebook.com
> > terra.com.br
> >
> > ele vai resolver todos os ips do domínio com nslookup e jogar pra dentro
> do
> > arquivo os /etc/blockedips que colequei dentro da table 91.
> > Tendeu????
> >
>

Por mais que queria usar apenas firewall para isso, infelizmente não será
possivel visto que há proxies de interconexão com o serviço.
Se quer fazer so no firewall a unica forma eficiente é barrar tudo e
liberar redes confiaveis liberando blocos de IPs pequenos, /24 ou /23 no
maximo com algumas excessões para redes de serviços bancários e orgãos
governamentais.

Não se impressione se seu firewall tiver 4000 regras !!

Att.


-- 
:=)><(=:

Flamers > /dev/null !!!


Mais detalhes sobre a lista de discussão freebsd