Bloquear Facebook acessado por HTTPS (iptables)

Publicado por Mauro Augusto soares Rodrigues em 30/05/2012

[ Hits: 21.119 ]

 


Bloquear Facebook acessado por HTTPS (iptables)



Esta dica vem solucionar os problemas gerados quando tem que bloquear determinados sites, tais como o Facebook, que tem seu acesso através de https, sem bloquear todos os outros sites HTTPS.

A meu ver, para conseguirmos tal façanha, temos que utilizar o IPtables.

Tendo em vista que ao reiniciar a máquina ela perde as regras imputadas pelo IPtables, vamos inserir as regras no arquivo /etc/rc.local. Vamos editá-lo:

sudo nano /etc/rc.local

Já com o arquivo aberto, iremos inserir as regras abaixo ao final de seu conteúdo, e antes de: exit 0

##BLOQUEIO DO FACEBOOK
FACEBOOK_IP_RANGE="31.13.64.0-31.13.127.255 31.13.24.0-31.13.31.255 74.119.76.0-74.119.79.255 69.63.176.0-
69.63.191.255 69.171.224.0-69.171.255.255 66.220.144.0-66.220.159.255 204.15.20.0-204.15.23.255 173.252.64.0-
173.252.127.255"
iptables -N FACEBOOK

## FACEBOOK DENY
for face in $FACEBOOK_IP_RANGE; do
iptables -I FORWARD -m tcp -p tcp -m iprange --dst-range $face --dport 443 -j FACEBOOK
iptables -I FORWARD -m tcp -p tcp -m iprange --dst-range $face --dport 80 -j FACEBOOK
done
iptables -A FACEBOOK -j REJECT

Inseridas as regras, é só salvar o arquivo e reiniciar a máquina.

Assim, toda vez que a máquina ligar, as regras serão executadas automaticamente.

Isso poderá ser aproveitado para qualquer site, desde que seja mudado o range dos IPs; e para tal, utilizei este site onde pode-se fazer buscas pelos sites ou IPs, para pegar os ranges:
Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

Proxy transparente e conectividade social da caixa

Internet a radio com placa RT2561 com Slackware 12.2

Mudando o endereço Mac da placa de rede via terminal

IMO - Messenger com suporte a webcam no Linux

Lynx - Aceitar todos os cookies no browser automaticamente

  

Comentários
[1] Comentário enviado por chipalinux em 30/05/2012 - 12:32h

está dando falha no script, referente ao parâmetro $face... o que ocorre?

[2] Comentário enviado por chagas00 em 30/05/2012 - 15:02h

Cara, esse ai é tudo que eu precisava, mas estou aqui usando o ubuntu server e não ta dando não.... não estou entendendo muito bem.

[3] Comentário enviado por chagas00 em 30/05/2012 - 15:03h

Bad argument `REJECT'
Try `iptables -h' or 'iptables --help' for more information.
SIOCDELRT: No such process
iptables: Chain already exists.
iptables v1.4.10: iprange: Bad value for "--dst-range" option: ""
Try `iptables -h' or 'iptables --help' for more information.
iptables v1.4.10: iprange: Bad value for "--dst-range" option: ""
Try `iptables -h' or 'iptables --help' for more information.
iptables v1.4.10: iprange: Bad value for "--dst-range" option: ""
Try `iptables -h' or 'iptables --help' for more information.
iptables v1.4.10: iprange: Bad value for "--dst-range" option: ""
Try `iptables -h' or 'iptables --help' for more information.

[4] Comentário enviado por Bigojah em 31/05/2012 - 17:04h

Pelos erros reportados ou o iptables não está atualizado ou no cabeçalho do rc.local deverá trocar de:

#!/bin/sh -e

Para:

#!bin/bash

Qualquer coisa copia e cola o conteúdo do arquivo aqui para analisarmos posteriormente.

Caso tenha dado certo postem avisando para que outros que tiverem os mesmos problemas também possam resolvê-los.

Obrigado.

[5] Comentário enviado por einstein em 01/06/2012 - 15:55h

preciso incluir uma excessão para 2 ips nessa regra, como fazer?

Agradeço antecipadamente a força!

[6] Comentário enviado por marcelobomg em 01/06/2012 - 18:13h

E so voce fazer o inverso, ao Inves de criar FACEBOOK_IP_RANGE= voce cria FACEBOOK_ALLOW= IP QUE VOCE QUE
DEPOIS CRIAR UMA VARIAVEL IGUAL DO FACEBOOK_IP_RANGE.

FICARA ASSIM

Se for pra mais de um ip e so perguntar o marcelo da famevaco, rsrsrs.

FACEBOOK_ALLOW="192.168.10.100" #MSR-FACEBOOK BLOQUEIO
for MSR in $FACEBOOK_ALLOW; do
iptables -I FACEBOOK -s $MSR -j ACCEPT

Não esqueça que depois desses comandos que vem o iptables -A FACEBOOK -j REJECT.


[7] Comentário enviado por marcelobomg em 01/06/2012 - 18:39h

Caso duvida e so ir no meu post.
http://www.vivaolinux.com.br/topico/Squid-Iptables/bloqueio-de-facebook-e-https.

[8] Comentário enviado por Bigojah em 03/06/2012 - 17:07h

É só adicionar o script do comentário [6] ao final do script que passei. Se for para mais de um ip é só adicioná-los na variável FACEBOOK_ALLOW separando-os com um espaço em branco, ou seja, fiaria assim:

FACEBOOK_IP_RANGE="31.13.64.0-31.13.127.255 31.13.24.0-31.13.31.255 74.119.76.0-74.119.79.255 69.63.176.0-
69.63.191.255 69.171.224.0-69.171.255.255 66.220.144.0-66.220.159.255 204.15.20.0-204.15.23.255 173.252.64.0-
173.252.127.255"
iptables -N FACEBOOK

## FACEBOOK DENY
for face in $FACEBOOK_IP_RANGE; do
iptables -I FORWARD -m tcp -p tcp -m iprange --dst-range $face --dport 443 -j FACEBOOK
iptables -I FORWARD -m tcp -p tcp -m iprange --dst-range $face --dport 80 -j FACEBOOK
done

##FACEBOOK ALOW
FACEBOOK_ALLOW="192.168.10.100 192.168.10.101" #MSR-FACEBOOK BLOQUEIO
for MSR in $FACEBOOK_ALLOW; do
iptables -I FACEBOOK -s $MSR -j ACCEPT
done
iptables -A FACEBOOK -j REJECT

[9] Comentário enviado por marcelobomg em 11/06/2012 - 18:06h


[8] Comentário enviado por Bigojah em 03/06/2012 - 17:07h:

É só adicionar o script do comentário [6] ao final do script que passei. Se for para mais de um ip é só adicioná-los na variável FACEBOOK_ALLOW separando-os com um espaço em branco, ou seja, fiaria assim:

FACEBOOK_IP_RANGE="31.13.64.0-31.13.127.255 31.13.24.0-31.13.31.255 74.119.76.0-74.119.79.255 69.63.176.0-
69.63.191.255 69.171.224.0-69.171.255.255 66.220.144.0-66.220.159.255 204.15.20.0-204.15.23.255 173.252.64.0-
173.252.127.255"
iptables -N FACEBOOK

## FACEBOOK DENY
for face in $FACEBOOK_IP_RANGE; do
iptables -I FORWARD -m tcp -p tcp -m iprange --dst-range $face --dport 443 -j FACEBOOK
iptables -I FORWARD -m tcp -p tcp -m iprange --dst-range $face --dport 80 -j FACEBOOK
done

##FACEBOOK ALOW
FACEBOOK_ALLOW="192.168.10.100 192.168.10.101" #MSR-FACEBOOK BLOQUEIO
for MSR in $FACEBOOK_ALLOW; do
iptables -I FACEBOOK -s $MSR -j ACCEPT
done
iptables -A FACEBOOK -j REJECT


Isso ai cara, o seu deu certo com essa manha que postei no comentario 6. Voce tambem e bem explicadinho em rsrsrs, tive que fazer que nem voce reformular meu post porque no lugar de FACEBOOK_ALLOW="192.168.10.100 192.168.10.101" #MSR-FACEBOOK BLOQUEIO o pessoal estava deixando do jeito que postei, deixando assim FACEBOOK_ALLOW="Ip que quer bloquear" #MSR-FACEBOOK BLOQUEIO num da certo nunca neh kkkkkkkkkkkkkkk

[10] Comentário enviado por Bigojah em 12/06/2012 - 08:45h


[9] Comentário enviado por marcelobomg em 11/06/2012 - 18:06h:


[8] Comentário enviado por Bigojah em 03/06/2012 - 17:07h:

É só adicionar o script do comentário [6] ao final do script que passei. Se for para mais de um ip é só adicioná-los na variável FACEBOOK_ALLOW separando-os com um espaço em branco, ou seja, fiaria assim:

FACEBOOK_IP_RANGE="31.13.64.0-31.13.127.255 31.13.24.0-31.13.31.255 74.119.76.0-74.119.79.255 69.63.176.0-
69.63.191.255 69.171.224.0-69.171.255.255 66.220.144.0-66.220.159.255 204.15.20.0-204.15.23.255 173.252.64.0-
173.252.127.255"
iptables -N FACEBOOK

## FACEBOOK DENY
for face in $FACEBOOK_IP_RANGE; do
iptables -I FORWARD -m tcp -p tcp -m iprange --dst-range $face --dport 443 -j FACEBOOK
iptables -I FORWARD -m tcp -p tcp -m iprange --dst-range $face --dport 80 -j FACEBOOK
done

##FACEBOOK ALOW
FACEBOOK_ALLOW="192.168.10.100 192.168.10.101" #MSR-FACEBOOK BLOQUEIO
for MSR in $FACEBOOK_ALLOW; do
iptables -I FACEBOOK -s $MSR -j ACCEPT
done
iptables -A FACEBOOK -j REJECT

Isso ai cara, o seu deu certo com essa manha que postei no comentario 6. Voce tambem e bem explicadinho em rsrsrs, tive que fazer que nem voce reformular meu post porque no lugar de FACEBOOK_ALLOW="192.168.10.100 192.168.10.101" #MSR-FACEBOOK BLOQUEIO o pessoal estava deixando do jeito que postei, deixando assim FACEBOOK_ALLOW="Ip que quer bloquear" #MSR-FACEBOOK BLOQUEIO num da certo nunca neh kkkkkkkkkkkkkkk


É, eu explico bem, porque como fui iniciante em linux sei das dificuldades em adivinhar onde colocar e o que fazer com as dicas. O lado bom é que todos saímos ganhando.

[11] Comentário enviado por Bigojah em 03/10/2012 - 10:54h

Olá a todos, verifiquei que o facebook adquiriu mais uma faixa de IP, e sem ela essa dica de nada vale.

Então nosso FACEBOOK_IP_RANGE ficará assim:

##BLOQUEIO DO FACEBOOK
FACEBOOK_IP_RANGE="31.13.64.0-31.13.127.255 31.13.24.0-31.13.31.255 74.119.76.0-74.119.79.255 69.63.176.0-
69.63.191.255 69.171.224.0-69.171.255.255 66.220.144.0-66.220.159.255 204.15.20.0-204.15.23.255 173.252.64.0-
173.252.127.255 103.4.96.0-103.4.99.255"

Foi acrescentado apenas o range de IP's 103.4.96.0-103.4.99.255 no final. E todo o restante continua como estava antes.

Qualquer dúvida é só postar um comentário aqui que posteriormente tentarei ajudar no que for possível.

[12] Comentário enviado por celsosticanella em 14/03/2013 - 14:15h

e para bloquear o youtube desse jeito, tem como?
ao inves de colocar os ips, colocar uma string do youtube"!

[13] Comentário enviado por Bigojah em 15/03/2013 - 11:30h


[12] Comentário enviado por celsosticanella em 14/03/2013 - 14:15h:

e para bloquear o youtube desse jeito, tem como?
ao inves de colocar os ips, colocar uma string do youtube"!


Tem sim. Mas vc terá que acessar este link: http://bgp.he.net/search?search%5Bsearch%5D=youtube&commit=Search clicar nos ips e selecionar a aba Whois e em NetRange você seleciona o range e substitui os ips na variável FACEBOOK_IP_RANGE. Recomendo também que você mude o nome dessa variável para YOUTUBE_IP_RANGE e nos locais em que aparece FACEBOOK mude para YOUTUBE para que fique organizada suas configurações. Segue um exemplo de como ficará a variável YOUTUBE_IP_RANGE:

##BLOQUEIO DO YOUTUBE
YOUTUBE_IP_RANGE="64.15.112.0-64.15.127.255 208.65.152.0-208.65.155.255 [demais ranges]"

lembrando que os ranges devem ser inseridos separados por um espaço e entre aspas duplas desta maneira: "[ip_inicial_sem espaço-ip_final_sem_espaço] [ip_inicial_sem espaço-ip_final_sem_espaço] [...]"

Qualquer dúvida é só postar um comentário aqui que posteriormente tentarei ajudar no que for possível.

[14] Comentário enviado por 35DR45 em 17/06/2013 - 14:20h

Olá pessoal.

Esse script que o Bigojah passou funcionou perfeitamente comigo, mas queria saber como faço para adicionar outro site como por exemplo o hotmail no mesmo script funcionando simultaneamente. Alguém pode me ajudar?

Desde já agradeço.

[15] Comentário enviado por Bigojah em 17/06/2013 - 16:59h


[14] Comentário enviado por 35DR45 em 17/06/2013 - 14:20h:

Olá pessoal.

Esse script que o Bigojah passou funcionou perfeitamente comigo, mas queria saber como faço para adicionar outro site como por exemplo o hotmail no mesmo script funcionando simultaneamente. Alguém pode me ajudar?

Desde já agradeço.


Amigo é só fazer o range do hotmail e criar a regras novamente, ou seja:

##BLOQUEIO DO FACEBOOK
FACEBOOK_IP_RANGE="31.13.64.0-31.13.127.255 31.13.24.0-31.13.31.255 74.119.76.0-74.119.79.255 69.63.176.0-
69.63.191.255 69.171.224.0-69.171.255.255 66.220.144.0-66.220.159.255 204.15.20.0-204.15.23.255 173.252.64.0-
173.252.127.255"
iptables -N FACEBOOK

##BLOQUEIO DO HOTMAIL
HOTMAIL_IP_RANGE="[ranges do hotmail]"
iptables -N HOTMAIL

## FACEBOOK DENY
for face in $FACEBOOK_IP_RANGE; do
iptables -I FORWARD -m tcp -p tcp -m iprange --dst-range $face --dport 443 -j FACEBOOK
iptables -I FORWARD -m tcp -p tcp -m iprange --dst-range $face --dport 80 -j FACEBOOK
done
iptables -A FACEBOOK -j REJECT

## HOTMAIL DENY
for face in $HOTMAIL_IP_RANGE; do
iptables -I FORWARD -m tcp -p tcp -m iprange --dst-range $face --dport 443 -j HOTMAIL
iptables -I FORWARD -m tcp -p tcp -m iprange --dst-range $face --dport 80 -j HOTMAIL
done
iptables -A HOTMAIL -j REJECT

Qualquer dúvida é só postar um comentário aqui que posteriormente tentarei ajudar no que for possível.

[16] Comentário enviado por 35DR45 em 18/06/2013 - 11:47h

Ok amigo, vou tentar. Obrigado pela ajuda.


[15] Comentário enviado por Bigojah em 17/06/2013 - 16:59h:


[14] Comentário enviado por 35DR45 em 17/06/2013 - 14:20h:

Olá pessoal.

Esse script que o Bigojah passou funcionou perfeitamente comigo, mas queria saber como faço para adicionar outro site como por exemplo o hotmail no mesmo script funcionando simultaneamente. Alguém pode me ajudar?

Desde já agradeço.

Amigo é só fazer o range do hotmail e criar a regras novamente, ou seja:

##BLOQUEIO DO FACEBOOK
FACEBOOK_IP_RANGE="31.13.64.0-31.13.127.255 31.13.24.0-31.13.31.255 74.119.76.0-74.119.79.255 69.63.176.0-
69.63.191.255 69.171.224.0-69.171.255.255 66.220.144.0-66.220.159.255 204.15.20.0-204.15.23.255 173.252.64.0-
173.252.127.255"
iptables -N FACEBOOK

##BLOQUEIO DO HOTMAIL
HOTMAIL_IP_RANGE="[ranges do hotmail]"
iptables -N HOTMAIL

## FACEBOOK DENY
for face in $FACEBOOK_IP_RANGE; do
iptables -I FORWARD -m tcp -p tcp -m iprange --dst-range $face --dport 443 -j FACEBOOK
iptables -I FORWARD -m tcp -p tcp -m iprange --dst-range $face --dport 80 -j FACEBOOK
done
iptables -A FACEBOOK -j REJECT

## HOTMAIL DENY
for face in $HOTMAIL_IP_RANGE; do
iptables -I FORWARD -m tcp -p tcp -m iprange --dst-range $face --dport 443 -j HOTMAIL
iptables -I FORWARD -m tcp -p tcp -m iprange --dst-range $face --dport 80 -j HOTMAIL
done
iptables -A HOTMAIL -j REJECT

Qualquer dúvida é só postar um comentário aqui que posteriormente tentarei ajudar no que for possível.



[17] Comentário enviado por eluanf em 08/08/2013 - 10:10h

Bom dia pessoal,
e como faz para bloquear apena um IP em vez de colocar a range?

Obrigado...

[18] Comentário enviado por eluanf em 08/08/2013 - 13:55h

Alguem tem a range de IPs do Hotmail e do Youtube?

Obrigado..

[19] Comentário enviado por Bigojah em 22/08/2013 - 15:48h


[18] Comentário enviado por eluanf em 08/08/2013 - 13:55h:

Alguem tem a range de IPs do Hotmail e do Youtube?

Obrigado..


Amigo é só acessar o link no final da dica e fazer a busca por hotmail que é retornado as ranges. Já o youtube é um pouco mais complicado porque o google atrelou todos os seus serviços nas suas ranges, ou seja, ao tentar bloquear o youtube você poderá estar bloqueando o gmail por exemplo.

Qualquer dúvida é só postar um comentário aqui que posteriormente tentarei ajudar no que for possível.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts