Pular para o conteúdo

Bloquear Facebook e Youtube por HTTPS

Dica publicada em Linux / Segurança
André Canhadas andrecanhadas
Hits: 44.016 Categoria: Linux Subcategoria: Segurança
  • Indicar
  • Impressora
  • Denunciar

Bloquear Facebook e Youtube por HTTPS

Quem usa proxy transparente tem dificuldades de barrar as redes sociais acessadas via https para alguns usuários então segue a dica, ative o modulo ipt_string

# modprobe ipt_string

E adicionar as regras no seu firewall:

iptables -I FORWARD -s 192.168.0.xx -m string --algo bm --string "facebook.com" -j DROP
iptables -I FORWARD -s 192.168.0.xx -m string --algo bm --string "youtube.com" -j DROP
iptables -I OUTPUT -s 192.168.0.xx -m string --algo bm --string "facebook.com" -j DROP
iptables -I OUTPUT -s 192.168.0.xx -m string --algo bm --string "youtube.com" -j DROP


Para o bloqueio para todos:

iptables -I FORWARD -m string --algo bm --string "facebook.com" -j DROP
iptables -I FORWARD -m string --algo bm --string "youtube.com" -j DROP
iptables -I OUTPUT -m string --algo bm --string "facebook.com" -j DROP
iptables -I OUTPUT -m string --algo bm --string "youtube.com" -j DROP


Obs.: A regra serve para outros sites basta apenas trocar a string pela que consta nos acessos ao site.

Sons simultâneos no Debian Squeeze

Personalizando o logo no squid3

Instalador automático do Java JRE Oracle

Zimbra - erro de certificado no Outlook

Compiz no Debian com XFCE4, LXDE, Gnome2 ou MATE (Squeeze e Wheezy)

Quebrando senha de root

Desativar tty extra no Ubuntu 10.04

Projeto Root - Senhas seguras com o KeePass

SSH sem senha

Centralizando logs de dispositivos Cisco com o Syslog-ng

#2 Comentário enviado por rodrigo_leonel em 24/02/2012 - 17:50h
É sempre termos umas regras registradas, porque quando se faz um firewall, se não temos um modelo, fica bem complicado depois ficar lembrando de tudo! Muito obrigado.
#3 Comentário enviado por dario.quiroz em 26/02/2012 - 19:01h
Desculpa a minha ignorancia, mas por que faz o bloqueio de OUTPUT tambem? não seria somente o FORWARD? o primeiro bloquearia um browser que esta rodando no mesmo servidor, procede?
Obrigado!!
#4 Comentário enviado por andrecanhadas em 27/02/2012 - 13:22h
Realmente dario.quiroz A regra de OUTPUT não é necessária neste caso. Como a idéia surgia de um bloqueio ao software teamviewer onde precisei fechar tudo acabei copiando a regra e alterando apenas as strings.
#5 Comentário enviado por dario.quiroz em 27/02/2012 - 19:37h
Valeu!!
#6 Comentário enviado por stringuetta em 29/02/2012 - 09:27h
Aqui pra mim não funcionou essa regra, continuo acesso normalmente, so consegui bloquear por IP.
#7 Comentário enviado por cesar em 21/05/2012 - 10:32h
Aqui não funcionou, existe outra solução? rs
#8 Comentário enviado por andrecanhadas em 21/05/2012 - 11:23h
Ordem das regras
Já verificaram a ordem de sua regras no firewall? massari , cesar
#9 Comentário enviado por Baguazaum em 28/05/2012 - 18:05h
Para mim essas regras de firewall funcionaram, porém, quando reinicio o servidor as regras são perdidas e o acesso aos sites são desbloqueados, tendo que então executar de novo esses comandos no terminal, já testei várias vezes aqui, o bloqueio funciona, porém para de funcionar após o servidor ser reiniciado.

a versão do meu iptables é 1.4.2


aguardo resposta, obg
#12 Comentário enviado por bruno_69 em 04/06/2012 - 17:36h
Para mim está funcionando quase 100% , a exceção é o youtube, tem como eu especificar um intervalo de ip's para a regra? exemplo bloquear o acesso do ip 192.168.0.100 até o 192.168.0.200
#13 Comentário enviado por eduradaelli em 29/06/2012 - 15:05h
Funcionando 100%
Obrigado pela dica.
#15 Comentário enviado por andrecanhadas em 27/07/2012 - 12:53h
Valeu Edson não tinha visto essa duvida
#16 Comentário enviado por egomes em 12/08/2012 - 21:07h
eu vou utilizar a regra para bloquear todos mais tenho que liberar uns 5 ips para acessar o facebook qual regra posso fazer para esses 5ips acessar o facebook e o restante nãp
#17 Comentário enviado por lokuras em 21/08/2012 - 10:55h
como faço pra aplicar exceções nessa regra, por exemplo, não bloquear algumas ip da rede ?
#18 Comentário enviado por andrecanhadas em 21/08/2012 - 21:12h

[15] Comentário enviado por andrecanhadas em 27/07/2012 - 12:53h:

Valeu Edson não tinha visto essa duvida


A parte de liberar para alguns usuário não funciona muito bem pode funcionar por um tempo e do nada parar de funcionar, tente este link que faz o que quer,apesar de não ter testado me parece correto.

http://kdn2.info/2010/11/block-facebook-com-with-iptables/
#19 Comentário enviado por marcelohcm em 22/08/2012 - 13:22h
quando vc digitou "--algo bm"
vc quis dizer oq?
#22 Comentário enviado por andrecanhadas em 25/10/2012 - 22:07h
Bom A regra para liberar para alguns a muito não funcionava então ajudando o cslima consegui da seguinte forma

Vamos la... No squid tenho duas acls:

acl facebook url_regex -i facebook.com
acl chefe src 192.168.1.2
http_access deny facebook !chefe


o ! se refere a uma excussão então bloquei para todos menos para o IP do chefe.

no firewall:

#Primeiro tiro o chefe da regra com o MAQUERADE
iptables -t nat -I POSTROUTING -s 192.168.1.2 -m string --algo bm --string "facebook.com" -j MASQUERADE
# se tiver mais de um IP Duplique a regra com -s 192.168.1.x (Outro IP)
# depois bloqueio para o resto
iptables -I FORWARD -m string --algo bm --string "facebook.com" -j DROP

Aqui no meu ambiente de testes funcionou apenas marcando o proxy no navegador (squid3 Transparente # http_port 3128 intercept) mas já é alguma coisa.
#23 Comentário enviado por LazymIx em 01/11/2012 - 17:11h
Fiz a configuração de bloqueio o Facebook, outlook.com, live.com.
Funcionou belezinha porém (sempre tem um porém rs) alguns clientes de Outlook Express e Thunderbird pararam de receber emails.
Esse bloqueio pode interferir em algum tipo de recepção pop na porta 110?

Abraços
#24 Comentário enviado por andrecanhadas em 01/11/2012 - 18:25h

[23] Comentário enviado por LazymIx em 01/11/2012 - 17:11h:

Fiz a configuração de bloqueio o Facebook, outlook.com, live.com.
Funcionou belezinha porém (sempre tem um porém rs) alguns clientes de Outlook Express e Thunderbird pararam de receber emails.
Esse bloqueio pode interferir em algum tipo de recepção pop na porta 110?

Abraços

Sim se o acesso os servidores pop etc... tiverem algo "outlook.com ou live.com" serão bloqueado tambem.

Se precisar liberar para um host (servidor de email ) use a regra:
# iptables -t nat -I POSTROUTING -d IP-do-Server -m string --algo bm --string "facebook.com" -j MASQUERADE
#25 Comentário enviado por lordpaladino em 03/12/2012 - 13:57h
Que estranho. apliquei a regra aqui no meu firewall.
Nos Chrome e IE funcionou. COnsegui bloquera direto.. mas no firefox ele consegue abrir?
Alguem sabe o que pode ser?
#26 Comentário enviado por andrecanhadas em 03/12/2012 - 14:56h

[25] Comentário enviado por lordpaladino em 03/12/2012 - 13:57h:

Que estranho. apliquei a regra aqui no meu firewall.
Nos Chrome e IE funcionou. Consegui bloquear direto.. mas no firefox ele consegue abrir?
Alguém sabe o que pode ser?


Veja as configurações de proxy é bem provável que seja isso. Tanto o chrome quanto o IE usam as mesmas configurações de proxy, já a família Mozilla usa configurações próprias.
#27 Comentário enviado por dudaegarcia em 31/01/2013 - 17:35h
Olha só, fiz da seguinte maneira:

#>>>>>>>>>>>>>>>>>>>>>> Bloqueia facebook <<<<<<<<<<<<<<<<<<<<<<
#CHAT DO SKYPE COM FACEBOOK
iptables -A OUTPUT -p tcp -m iprange --src-range 192.168.254.90-192.168.254.169 --dport 5222 -j DROP
iptables -A FORWARD -p tcp -m iprange --src-range 192.168.254.90-192.168.254.169 --dport 5222 -j DROP
iptables -A INPUT -p tcp -m iprange --src-range 192.168.254.90-192.168.254.169 --dport 5222 -j DROP

#POSTAR NO PERFIL DO FACEBOOK VIA SKYPE
#-PORTAS
iptables -A FORWARD -p tcp -m iprange --src-range 192.168.254.90-192.168.254.169 --dport 52000:58091 -j DROP
iptables -A OUTPUT -p tcp -m iprange --src-range 192.168.254.90-192.168.254.169 --dport 52000:58091 -j DROP
iptables -A INPUT -p tcp -m iprange --src-range 192.168.254.90-192.168.254.169 --dport 52000:58091 -j DROP
#-IPS
iptables -A FORWARD -m iprange --src-range 192.168.254.90-192.168.254.169 -d 173.252.100.27 -j DROP
iptables -A OUTPUT -m iprange --src-range 192.168.254.90-192.168.254.169 -d 173.252.100.27 -j DROP
iptables -A INPUT -m iprange --src-range 192.168.254.90-192.168.254.169 -d 173.252.100.27 -j DROP
iptables -A FORWARD -m iprange --src-range 192.168.254.90-192.168.254.169 -d 65.55.223.12 -j DROP
iptables -A OUTPUT -m iprange --src-range 192.168.254.90-192.168.254.169 -d 65.55.223.12 -j DROP
iptables -A INPUT -m iprange --src-range 192.168.254.90-192.168.254.169 -d 65.55.223.12 -j DROP

#BLOQUEAR ENDERECOS DO FACEBOOK
iptables -A INPUT -m string --algo bm --string "facebook.com" -m iprange --src-range 192.168.254.90-192.168.254.169 -j DROP
iptables -A OUTPUT -m string --algo bm --string "facebook.com" -m iprange --src-range 192.168.254.90-192.168.254.169 -j DROP
iptables -A FORWARD -m string --algo bm --string "facebook.com" -m iprange --src-range 192.168.254.90-192.168.254.169 -j DROP
#28 Comentário enviado por herleymg em 06/02/2013 - 11:52h
A dica do tópico principal funciona, o problema é que deixa lento o acesso ao site da Caixa. E se bloquear o youtube, nem abre a pagina do Itaú.
#29 Comentário enviado por mrjeday em 12/03/2013 - 16:49h

[26] Comentário enviado por andrecanhadas em 03/12/2012 - 14:56h:


[25] Comentário enviado por lordpaladino em 03/12/2012 - 13:57h:

Que estranho. apliquei a regra aqui no meu firewall.
Nos Chrome e IE funcionou. Consegui bloquear direto.. mas no firefox ele consegue abrir?
Alguém sabe o que pode ser?

Veja as configurações de proxy é bem provável que seja isso. Tanto o chrome quanto o IE usam as mesmas configurações de proxy, já a família Mozilla usa configurações próprias.


Conseguiram resolver este problema dos navegadores?

Caso sim, qual a solução?

Percebi que se desmarcar a opção "Detectar automaticamente as configurações do Proxy" das opções do navegador, aparentemente faz a regra citada valer inclusive no firefox. Não sei se tem alguma coisa haver ou apenas coincidência. O estranho que em uma das ranges que bloqueei desta forma mesmo com esta opção marcada não navega, o que me leva a desconfiar que não tem nada haver.

Alguém mais pra ajudar?
#30 Comentário enviado por adonisdrummer em 02/08/2013 - 11:30h
como ativar a modprobe ipt_string ?
#31 Comentário enviado por andrecanhadas em 02/08/2013 - 12:14h

[30] Comentário enviado por adonisdrummer em 02/08/2013 - 11:30h:

como ativar a modprobe ipt_string ?


Pode colocar a linha manualmente no seu script de firewall

modprobe ipt_string
#32 Comentário enviado por cabralwms em 04/09/2013 - 17:55h
Eu usei essas regras mais tive problemas com envio FTP acho que ele bloqueou a palavra dentro dos access aonde tinha facebook também não sei se teria como bloquear apenas sites em HTTPS se alguém tiver outra solução essa me deixou com tudo devagar tambem
#33 Comentário enviado por jorgessn em 22/10/2013 - 13:07h
Oi,

usei essa regra "iptables -I FORWARD -s 192.168.0.xx -m string --algo bm --string "youtube.com" -j DROP" para bloquear youtube, porém bloqueia o google também, tem como bloquear só o youtube?

#34 Comentário enviado por andrecanhadas em 22/10/2013 - 13:13h

[33] Comentário enviado por jorgessn em 22/10/2013 - 13:07h:

Oi,

usei essa regra "iptables -I FORWARD -s 192.168.0.xx -m string --algo bm --string "youtube.com" -j DROP" para bloquear youtube, porém bloqueia o google também, tem como bloquear só o youtube?



iptables -I FORWARD -s 192.168.0.xx -p tcp -d 190.98.170.0/23 -j DROP

Claro que deve definir o IP ex "-s 192.168.1.2" que sera bloqueado para acessar o Youtube ou pra todos:

iptables -I FORWARD -p tcp -d 190.98.170.0/23 -j DROP

Isso permite que abra a pagina mas não carrega videos
#35 Comentário enviado por falcom em 15/11/2013 - 14:20h
iptables -I INPUT -p tcp --dport 443 -m string --string 'youtube' --algo bm -j DROP
iptables -I FORWARD -p tcp --dport 443 -m string --string 'youtube' --algo bm -j DROP

estas reglas no funcionan en un proxy transparente!! alguien ayuda ??
#36 Comentário enviado por sonic_novel em 27/12/2013 - 11:23h
Ao invés de digitar regra por regra, é melhor criar um uma lista de IP. Colocando os ips linha por linha.


#!/bin/bash
for lista in `cat /etc/lista_ip_facebook.txt`
do
iptables -I FORWARD -s $lista -m string --algo bm --string "facebook.com" -j DROP
done


No arquivo "lista_ip_facebook.txt" vc coloca os ips para bloqueio.
#37 Comentário enviado por rjdiniz em 27/06/2014 - 13:09h
André;

# iptables -L

Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP all -- 10.0.0.67 anywhere STRING match "youtube.com" ALGO name bm TO 65535

Chain FORWARD (policy ACCEPT)
target prot opt source destination
DROP all -- 10.0.0.67 anywhere STRING match "youtube.com" ALGO name bm TO 65535

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
DROP all -- 10.0.0.67 anywhere STRING match "youtube.com" ALGO name bm TO 65535

Não funcionou! inclusive se vc percebeu acrescentei tb INPUT, fiz vários testes e continua entrando....

Raul Jr.

Contribuir com comentário

Entre na sua conta para comentar.