SempreUPdate
Notícias sobre Ubuntu, Debian, Fedora, Linux, Android, Tecnologia, LibreOffice e muito mais!

Como fazer um bloqueio seletivo do Whatsapp usando IPTables

Veja como fazer um bloqueio do Whatsapp e Facebook com o IPTables!

Nesta dica veja como bloquear de forma seletiva o Whatsapp ou Facebook usando apenas o IPTables. Esse bloqueio é ideal em ambientes onde é usado proxy transparente. Você vai precisar conhecer bem a rede de sua empresa ou ambiente, pois terá que ter os IP’s que vai querer bloquear ou liberar. O Script abaixo é uma dica do Thiago Ferreira, ele disponibilizou um script muito eficiente e fácil de entender, ele comentou e apresentou cada item inclusive o que cada comando faz. Nesta dica, saiba como fazer um bloqueio do Whatsapp e Facebook com o IPTables!

Como fazer um bloqueio seletivo do Whatsapp usando IPTables

Para poder fazer o bloquei crie os arquivos, bloqueio_seletivo, ipsliberados e ipsinterno

nano /usr/share/bloqueio_seletivo

Dentro do arquivo criado insira o seguinte script:

#!/bin/sh
#Faz bloqueios seletivo de facebook e whatsapp liberando somente
#o que estiver declarado a ser liberado
#Script adaptado conforme necessidades a partir de linhas pegas em linuxquestions.org
#Ips whatsapp disponível https://www.whatsapp.com/cidr.txt
# versão 1.0
#Lista de ips externos permitidos "ipsliberados
#Lista dei ips privados liberados e bloqueados ipsinterno
##########################################################################
#Adicionamos a lista de ips externos que serão tratados em uma variavel
 
IPSLIVRE=$(cut -f 1 -d" " /usr/share/ipsliberados |grep -v ^#)
#O cut jogará no IPSLIVRE(cadeia do iptables - logo abaixo) tudo que não tiver "#" como inicio.
 
#Declaramos a rede interna em uma variavel para ser tratada pelo iptables
NETLOCAL="10.10.10.0/25"
 
#Invocamos o iptables, e adicionamos uma cadeia chamada INTERCEPTA
iptables -N INTERCEPTA
 
#Proximo passo é redirecionar todos os trafego da rede interna para a nova cadeia
iptables -I FORWARD -s $NETLOCAL -j INTERCEPTA
#Com esse passo acima todo o trafego agora passa pela nova regra
#Vamos (abaixo) fazer uma captura dos ips listados no arquivo ipsinterno e
#jogar esses endereços em uma regra que rejeite todos os ips da rede "NETLOCAL" que estejam na regra com o "#".
 
for i in `grep -v ^# /usr/share/ipsinterno`; do
 
#(Acima) Para tudo em ipsinterno que comecem com "#" então faça
 
iptables -A INTERCEPTA -d $i -j REJECT
 
#o Iptables vai jogar tudo que tiver em INTERCEPTA em um REJECT contendo o conteúdo da saida do cut, então
#todos os ips que tiver como inicio o "#" irão para a cadeia bloqueio
#Agora vamos dizer pro iptables liberar os ips que não fazem parte das regras de bloqueio nos ips contidos em um arquivo
#onde consta o destino a ser liberado, eventualmente os que já declaramos em "ipsliberados"
for livres in $IPSLIVRE; do
iptables -I FORWARD -s $livres -d $i -j ACCEPT
#Acima pedimos para o iptables liberar tudo que for de origem "$livres"(ipsliberados=ips que são do whats ou outro) com destino a "$i" que é nossa
#lista de ips internos
# Com isso todos os demais ips que não estiverem no arquivo de ips locais marcados "#" serão liberados!!!
done

Na lista de ipsliberados entre com os ips disponiveis no próprio site do whatsapp: https://www.whatsapp.com/cidr.txt.

Basta adicionar a lista a um arquivos em “/usr/share” :

nano /usr/share/ipsliberados

Como exemplo, poderíamos ter uma serie de ips nessa ordem:

31.13.58.55
31.55.44.77
178.88.14.100

Adicione os ips, e crie um novo arquivo para inserirmos os ips da rede interna:

nano /usr/share/ipsinterno

Em ipsinterno insiram os ips da sua rede, lembrando de seguir a seguinte regra. Ips que serão bloqueados devem conter o “#” antes, pois o cut fará a leitura levando em consideração que esses são os únicos que devem ser tratados:

#10.10.10.44
#10.10.10.24
10.10.10.8

No caso acima, somente os dois primeiros serão bloqueados de acessar os serviços dos “ipsliberados”, o “10.10.10.8” terá total acesso ao trafego.

Caso deseje, liste apenas os ips permitidos, sem a necessidade de usar o “#” antes do ip, ficando assim:

10.10.10.55
10.10.10.22
Aqui um exemplo do script limpo e sem comentários!
#!/bin/sh
#Thiago ferreira - thiago@thiagoferreira.net
IPSLIVRE=$(cut -f 1 -d" " /usr/share/ipsliberados |grep -v ^#)
NETLOCAL="10.10.10.0/25"
iptables -N INTERCEPTA
iptables -I FORWARD -s $NETLOCAL -j INTERCEPTA
for i in `grep -v ^# /usr/share/ipsinterno`; do
iptables -A INTERCEPTA -d $i -j REJECT
for livres in $IPSLIVRE; do
iptables -I FORWARD -s $livres -d $i -j ACCEPT
done
Lembrem-se, leia todo o conteúdo do post inclusive do script para melhor entendimento.
Comentários