Bloqueando Facebook pelo IPtables

Publicado por Daniel Lara Souza em 22/07/2013

[ Hits: 28.885 ]

Blog: http://danniel-lara.blogspot.com/

 


Bloqueando Facebook pelo IPtables



Uma dica rápida sobre como bloquear o Facebook em sua rede.

Bom, eu fiz dessa maneira, pois utilizo proxy transparente:

Crie uma lista com os IPs do Facebook:

# vim /root/list.txt

Contendo:

31.13.24.0/21
31.13.64.0/18
66.220.144.0/20
69.63.176.0/20
69.171.224.0/19
74.119.76.0/22
103.4.96.0/22
173.252.64.0/18
204.15.20.0/22

E adicionei essas linhas no meu script de IPtables:

iptables  -N FACEBOOK
iptables  -I FORWARD -s $REDE_INTERNA -j FACEBOOK
for face   in `cat /root/list.txt`;do
iptables  -A FACEBOOK -d $face -j REJECT
done

E libero somente por MAC. Caso a diretoria queira acessar o Facebook, adiciono essa linha antes do "done":

iptables -I FORWARD -m mac --mac-source 00:26:18:F7:84:E0 -d $face -j ACCEPT

Um exemplo de como ficou meu script de firewall:

#!/bin/bash

REDE_INTERNA="10.0.0.0/8"


iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT


modprobe iptable_nat
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

iptables -N FACEBOOK
iptables -I FORWARD -s $REDE_INTERNA -j FACEBOOK
for face in `cat /root/list.txt`;do
iptables -A FACEBOOK -d $face -j REJECT

#LIBERANDO FACEBOOK PARA ALGUMAS MAQUINAS POR MAC NA REDE
iptables -I FORWARD -m mac --mac-source 00:26:18:F7:84:E0 -d $face -j ACCEPT

done

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128


Outras dicas deste autor

PhpMyAdmin no Debian Squeeze

WindowMaker no Fedora

Webmin no CentOS 6.3

Emulador Sega Saturn no Fedora 21

Compilando kernel 3.16.1 no Fedora 20

Leitura recomendada

Webinar #18 - A Nova Lei de Cibercrimes

Criando senhas mais difíceis

Atualizando ID de chave no Debian 9 codinome Stretch

Como Acessar o Windows pelo Linux com Metasploit

Bloqueando o chat do Gmail via firewall (iptables) e proxy (Squid) no Linux

  

Comentários
[1] Comentário enviado por andguihofros em 15/08/2013 - 11:03h

Bom dia Daniel, gostei muito do script, porem a liberação de determinada maquina, por mac, não funciona...
Alguma solução?

[2] Comentário enviado por danniel-lara em 15/08/2013 - 11:17h


[1] Comentário enviado por andguihofros em 15/08/2013 - 11:03h:

Bom dia Daniel, gostei muito do script, porem a liberação de determinada maquina, por mac, não funciona...
Alguma solução?


bom no caso a liberação é para o acesso ao facebook , tu colocou as letras do MAC em maiúsculo ?
testa assim
iptables -t filter -A FORWARD -d 0/0 -m mac --mac-source xx:xx:xx:xx:xx:xx -j ACCEPT

[3] Comentário enviado por andguihofros em 15/08/2013 - 11:57h

GNU nano 2.2.4 Arquivo: /etc/init.d/firewall

#!/bin/sh
REDE_INTERNA="192.168.0.0/24"

iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

modprobe iptable_nat
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#


######
iptables -N FACEBOOK
iptables -I FORWARD -s $REDE_INTERNA -j FACEBOOK
for face in `cat /etc/squid/bloqfirewall`;do
iptables -A FACEBOOK -d $face -j REJECT
######
#Liberando Face por mac
######
iptables -t filter -A FORWARD -d 0/0 -m mac --mac-source 00:18:F3:6F:4E:0F -j ACCEPT
#iptables -I FORWARD -m mac --mac-source 00:18:F3:6F:4E:0F -d $face -j ACCEPT
iptables -I FORWARD -m mac --mac-source 6C:FD:B9:23:D7:4D -d $face -j ACCEPT
done
#
######
#Redireciona para Squid
#####
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3$






[4] Comentário enviado por andguihofros em 15/08/2013 - 11:59h

Meu script....
Ele bloqueia o FACEBOOK na rede, porem não consigo liberar para mac especifico.

[5] Comentário enviado por danniel-lara em 15/08/2013 - 13:12h


[4] Comentário enviado por andguihofros em 15/08/2013 - 11:59h:

Meu script....
Ele bloqueia o FACEBOOK na rede, porem não consigo liberar para mac especifico.


ok , seguinte , mais a noite vou fazer uns teste e de respondo
abraço

[6] Comentário enviado por andguihofros em 15/08/2013 - 13:41h

Blz! Vou tentando aqui tb...abraço!

[7] Comentário enviado por andguihofros em 16/08/2013 - 17:51h

Boa tarde Danniel,

Consegui!!!

Adicionei um for, dos mac´s que não poderão acessar o face, criando uma lista "/etc/firewall/bloqmac", em seguida continuando com seu script:

for bloqmac in `cat /etc/squid/bloqmac`;do
iptables -I FORWARD -m mac --mac-source $bloqmac -d -j ACCEPT
for face in `cat /etc/squid/bloqfirewall`;do
iptables -A FACEBOOK -d $face -j REJECT
done

Como foi feito numa das empresas que presto suporte, semana que vem posto ele inteiro!

Abraco, valeu!

[8] Comentário enviado por cesar em 19/09/2013 - 15:08h


[7] Comentário enviado por andguihofros em 16/08/2013 - 17:51h:

Boa tarde Danniel,

Consegui!!!

Adicionei um for, dos mac´s que não poderão acessar o face, criando uma lista "/etc/firewall/bloqmac", em seguida continuando com seu script:

for bloqmac in `cat /etc/squid/bloqmac`;do
iptables -I FORWARD -m mac --mac-source $bloqmac -d -j ACCEPT
for face in `cat /etc/squid/bloqfirewall`;do
iptables -A FACEBOOK -d $face -j REJECT
done

Como foi feito numa das empresas que presto suporte, semana que vem posto ele inteiro!

Abraco, valeu!


Poderia postar como você fez?

[]'s

[9] Comentário enviado por cesar em 19/09/2013 - 17:07h

Não deu certo, instalei uma máquina do zero e coloquei estas configurações baseando no meu ambiente, mas não bloqueou o Facebook.

Se mais alguém souber de algo, me avise.

Obrigado,

[]'s

[10] Comentário enviado por adonisgarces em 19/11/2013 - 10:41h


Bloqueia o facebook assim óh:

uso essa regra direto no meu script de firewall:

###### LIBERA PRA DIRETORIA (exemplo) - DE ACORDO COM OS IPS DELES########

#iptables -t filter -A FORWARD -p tcp --dport 443 -m iprange --src-range 192.168.20.1-192.168.20.10 -m string --algo bm --string "facebook.com" -j ACCEPT

#iptables -t filter -A FORWARD -p tcp --sport 443 -m iprange --src-range 192.168.20.1-192.168.20.10 -m string --algo bm --string "facebook.com" -j ACCEPT

############### BLOQUEIA GERAL ########################


#iptables -t filter -A FORWARD -p tcp --dport 443 -m string --algo bm --string "facebook.com" -j DROP
#iptables -t filter -A FORWARD -p tcp --sport 443 -m string --algo bm --string "facebook.com" -j DROP



Vale ressaltar que no meu caso fiz a liberaçao por range de ip: sugiro que crie reserva no seu dhcp.conf

E outro detalhe importante é que esse metodo bloqueia o facebook através da porta 443 (HTTPS).

Teste ai e envie o feedback.

Abs.

[11] Comentário enviado por cabralwms em 29/11/2013 - 20:19h

Essa Regra funciona realmente, mais eu tive o problema com envio de database.mdb com a palavra facebook no meio deles, não vai qualquer arquivo com a palavra facebook, alguem tem ideia de como resolver isso? Bloquear apenas o HTTPS para o Facebook, outra coisa que acontece com essa regra, se eu colocar o proxy na mão tambem passa. Entra no Facebook com HTTPS://www.facebook.com.br pode testar que vai, testei em um Servidor Proxy transparente 2.7 Stable e Debian squeeze.

[12] Comentário enviado por aslisboa em 08/02/2014 - 23:43h

Está de parabéns. Funcionou perfeitamente, basta seguir fielmente que vai funcionar.
Para bloquear via proxy, basta criar a regra abaixo no squid.conf e o arquivo block.txt no local especifico.

#Bloqueio de sites não permitido
acl bloqueio url_regex -i "/etc/squid3/block.txt"
http_acces bloqueio deny


Crie o arquivo block.txt e adicione os sites que serão bloqueados por linha

#vi /etc/squid3/block.txt
facebook.com
orkut.com
youtube.com
sexo
porno


Abraços.

[13] Comentário enviado por aslisboa em 08/02/2014 - 23:48h

**Corrigindo**
http_access deny Bloqueio

Faltou um "S" em http_access

Abraços.

[14] Comentário enviado por ziasrodrigues em 06/10/2014 - 14:23h

A regra bloqueia mas tbm bloqueia os emaisl que vem com qualquer coisa q se refira a face, alguem conseguiu contornar?



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts