[FUG-BR] IPFW - Bloquear dominios pelo Firewall

Marcelo Gondim gondim em bsdinfo.com.br
Quinta Junho 7 18:34:30 BRT 2012


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????
>
> Tem uma forma melhor de fazer isso ou correta com ipfw ??
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>



Mais detalhes sobre a lista de discussão freebsd