[FUG-BR] IPFW - Bloquear dominios pelo Firewall
Danilo Neves
danilorpneves em bsd.com.br
Quinta Junho 7 13:07:21 BRT 2012
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
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 ??
Mais detalhes sobre a lista de discussão freebsd