Bloquear Facebook acessado por HTTPS (iptables)

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

[ Hits: 21.425 ]

 


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

Instalação do aMule no Slackware 10.2

FlashGot - Usando aceleradores de download, sem precisar de linha de comando

Obra de arte: Tux em ASCII

Flash Player 10 para Linux

Lançamento do site Linuxfast

  

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