Bloqueando Facebook pelo IPtables

Publicado por Daniel Lara Souza em 22/07/2013

[ Hits: 28.622 ]

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

Pacman no Fedora

Zabbix Server no CentOS 8

SQLite Manager

VSCodium no Fedora 32

Notepadqq no Fedora 30

Leitura recomendada

Bloqueando qualquer Messenger em 3 linhas de comando

Darkstat - Um analisador de tráfego de rede

Obtendo acesso a hosts internos de uma rede remota com SSH

NetGrok, uma ótima ferramenta para monitoramento

Limitar acesso de mais de um usuário via SSH

  

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