Fórum Ubuntu Linux - PT

Suporte Técnico => Internet, Redes e Segurança => Tópico iniciado por: willsazon em 03 de Junho de 2015, 17:13

Título: Bloquear Facebook e Youtube
Enviado por: willsazon em 03 de Junho de 2015, 17:13
Boa tarde a todos,

procurei em vários site e realizei vários teste com as soluções encontradas porém sem sucesso.

O que preciso fazer é bloquear o youtube e o facebook na minha rede e liberar para alguns usuários da rede. Alguém tem alguma solução que tenha funcionado?
Título: Re:Bloquear Facebook e Youtube
Enviado por: oliveriojnn em 03 de Junho de 2015, 18:47
Opa,

Instala um servidor proxy (Squid) e define as regras no /etc/squid/squid.conf.

http://wiki.ubuntu-br.org/Squid
Título: Re:Bloquear Facebook e Youtube
Enviado por: willsazon em 04 de Junho de 2015, 12:09
Opa,

Instala um servidor proxy (Squid) e define as regras no /etc/squid/squid.conf.

http://wiki.ubuntu-br.org/Squid

Já fiz isso, mas o squid não bloqueia o facebook.
Título: Re:Bloquear Facebook e Youtube
Enviado por: zekkerj em 05 de Junho de 2015, 12:38
Sua máquina Ubuntu é o gateway da sua rede? É mais difícil fazer esse bloqueio se ela não for.

Observe também que Facebook e Youtube usam conexão HTTPS, que normalmente não passa pelo Squid transparente. Nesse caso, vc tem que usar o Squid configurado nas estações, ou ativar a detecção automática de proxy.
Título: Re:Bloquear Facebook e Youtube
Enviado por: willsazon em 05 de Junho de 2015, 13:01
Sua máquina Ubuntu é o gateway da sua rede? É mais difícil fazer esse bloqueio se ela não for.

Observe também que Facebook e Youtube usam conexão HTTPS, que normalmente não passa pelo Squid transparente. Nesse caso, vc tem que usar o Squid configurado nas estações, ou ativar a detecção automática de proxy.

Minha máquina é o gateway da rede.
Tentei fazer no squid transparente mais na deu certo.

Como seria o bloqueio pelo squid?
Título: Re:Bloquear Facebook e Youtube
Enviado por: zekkerj em 05 de Junho de 2015, 14:22
Seria algo como

acl facetube url_regex -i ^https://*.facebook.com
acl facetube url_regex -i ^https://*.youtube.com
acl connect method CONNECT
http_access deny connect facetube

Mas isso não é uma coisa que possa ser simplesmente marretada dentro do teu squid.conf, tem que ver se não há regras antes ou depois dessas que não afetem ou sejam afetadas por elas. Tem que ver se há exceções, tipo diretores, auditores, etc... enfim: cada caso é um caso.
Título: Re:Bloquear Facebook e Youtube
Enviado por: willsazon em 05 de Junho de 2015, 15:22
Seria algo como

acl facetube url_regex -i ^https://*.facebook.com
acl facetube url_regex -i ^https://*.youtube.com
acl connect method CONNECT
http_access deny connect facetube

Mas isso não é uma coisa que possa ser simplesmente marretada dentro do teu squid.conf, tem que ver se não há regras antes ou depois dessas que não afetem ou sejam afetadas por elas. Tem que ver se há exceções, tipo diretores, auditores, etc... enfim: cada caso é um caso.

É eu teria mesmo que ter algumas exceções para a diretoria.
Título: Re:Bloquear Facebook e Youtube
Enviado por: Andre Magrego em 02 de Julho de 2015, 22:55
Olá willsazon!

Não sei se você conseguiu resolver, mas vivi a mesma situação e resolvi da seguinte forma depois de um tempo pesquisando na internet

iptables -I FORWARD -m string --algo bm --string "facebook.com" -j DROP
Iptables -I FORWARD -s 192.168.0.241 -m string --algo bm --string "facebook.com" -j ACCEPT

Onde o Ip 192.168.0.241 é o meu ip, logo eu não recebi o bloqueio. Dessa forma eu achei mais fácil e simples de resolver. Para outro IP é só repetir a ultima linha de comando e assim sucessivamente. Para outras páginas, basta mudar a string 'facebook.com'

Espero ter ajudado.

Abraços
Título: Re:Bloquear Facebook e Youtube
Enviado por: willsazon em 06 de Julho de 2015, 13:41
Olá willsazon!

Não sei se você conseguiu resolver, mas vivi a mesma situação e resolvi da seguinte forma depois de um tempo pesquisando na internet

iptables -I FORWARD -m string --algo bm --string "facebook.com" -j DROP
Iptables -I FORWARD -s 192.168.0.241 -m string --algo bm --string "facebook.com" -j ACCEPT

Onde o Ip 192.168.0.241 é o meu ip, logo eu não recebi o bloqueio. Dessa forma eu achei mais fácil e simples de resolver. Para outro IP é só repetir a ultima linha de comando e assim sucessivamente. Para outras páginas, basta mudar a string 'facebook.com'

Espero ter ajudado.

Abraços

Boa tarde Andre,

fiz conforme você passou, mas coloquei meu ip para testar e o mesmo não liberou, apenas bloqueou para toda a rede e preciso liberar para 3 PCs da rede.

Código: [Selecionar]
#Redireciona todo o trafego da porta 8080 para a porta 3128 do squid
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
#
echo "Navegacao redirecionada para porta 3128 do Squid3"
echo "................................................"
echo "................................................"
echo ""
echo ""
#########################################################
#Bloqueia site https diretono firewall
########################################################
iptables -I FORWARD -m string --algo bm --string "facebook.com" -j DROP
iptables -I FORWARD -s 192.168.100.122 -m string --algo bm --string "facebook.com" -j ACCEPT

Coloquei as duas regras logo abaixo da regra que redireciona a navegação para o squid transparente.
Título: Re:Bloquear Facebook e Youtube
Enviado por: Andre Magrego em 07 de Julho de 2015, 15:35
willsazon, tem que funcionar!

iptables é infalível :P

O que é falível é o administrador rsrsrs

O iptables ele segue uma sequencia na leitura do arquivo. Igual ao squid. Ou seja, se você tem uma regra que bloqueia tudo e depois libera 1 porta, então não tem como essa porta/ip não ser liberado entende?? O que pode acontecer por exemplo;  Uma regra que bloqueia tudo, depois liberar uma porta/ip, mas depois tem outra que bloqueia denovo....então o iptables leva em consideração a sequencia de leitura do arquivo...

Se você colou essa regra no meio do arquivo, então complica por que eu não sei o que tem depois....coloque essa regra no fim do arquivo.

Se essa regra ja está no final do arquivo, então adicione na cadeia output e veja se resolve
iptables -I OUTPUT -m string --algo bm --string "facebook.com" -j DROP
Iptables -I OUTPUT -s 192.168.0.241 -m string --algo bm --string "facebook.com" -j ACCEPT

Nem sempre você vai conseguir encontrar pronto, vá testando e veja se funciona...uma hora vai rolar.
Título: Re:Bloquear Facebook e Youtube
Enviado por: willsazon em 08 de Julho de 2015, 17:26
willsazon, tem que funcionar!

iptables é infalível :P

O que é falível é o administrador rsrsrs

O iptables ele segue uma sequencia na leitura do arquivo. Igual ao squid. Ou seja, se você tem uma regra que bloqueia tudo e depois libera 1 porta, então não tem como essa porta/ip não ser liberado entende?? O que pode acontecer por exemplo;  Uma regra que bloqueia tudo, depois liberar uma porta/ip, mas depois tem outra que bloqueia denovo....então o iptables leva em consideração a sequencia de leitura do arquivo...

Se você colou essa regra no meio do arquivo, então complica por que eu não sei o que tem depois....coloque essa regra no fim do arquivo.

Se essa regra ja está no final do arquivo, então adicione na cadeia output e veja se resolve
iptables -I OUTPUT -m string --algo bm --string "facebook.com" -j DROP
Iptables -I OUTPUT -s 192.168.0.241 -m string --algo bm --string "facebook.com" -j ACCEPT

Nem sempre você vai conseguir encontrar pronto, vá testando e veja se funciona...uma hora vai rolar.

Boa tarde Andre,

refiz os testes aqui e aparentemente funcionou.
Havia uma linha no final do arquivo que era responsável por não liberar o acesso.

Código: [Selecionar]
iptables -A INPUT -p tcp --syn -j DROP
Vou fazer os teste com o youtube agora e depois volto para dizer se deu certo.
Título: Re:Bloquear Facebook e Youtube
Enviado por: Andre Magrego em 09 de Julho de 2015, 00:04
Massa!!!

Com o youtube você vai ter um problema, o google ele também vai ser bloqueado. Ai você coloca uma linha depois liberando o google. Mais ou menos assim:

iptables -I FORWARD -m string --algo bm --string "youtube.com" -j DROP
Iptables -I FORWARD -m string --algo bm --string "google.com" -j ACCEPT

Ai roda normal...

O problema que eu tive nos meus teste aqui, foi com relação aos e-mails, que não estavam conseguindo chegar no outlook....mas faça os teste e fica observando.

Abraços e boa sorte!
Título: Re:Bloquear Facebook e Youtube
Enviado por: willsazon em 09 de Julho de 2015, 08:38
Massa!!!

Com o youtube você vai ter um problema, o google ele também vai ser bloqueado. Ai você coloca uma linha depois liberando o google. Mais ou menos assim:

iptables -I FORWARD -m string --algo bm --string "youtube.com" -j DROP
Iptables -I FORWARD -m string --algo bm --string "google.com" -j ACCEPT

Ai roda normal...

O problema que eu tive nos meus teste aqui, foi com relação aos e-mails, que não estavam conseguindo chegar no outlook....mas faça os teste e fica observando.

Abraços e boa sorte!

Bom dia Andre,

realmente com google tive problemas ao bloquear o youtube. Coloquei a regra como voce disse eu funcionou normal o google.

O problema dessas regras baseadas em String é que elas são meio doidas.


Ontem testei e funcionou o facebook. Agora coloquei o youtube logo abaixo e o facebook não funcionou mais para mim também.

Código: [Selecionar]
iptables -I FORWARD -m string --algo bm --string "facebook.com" -j DROP
iptables -I FORWARD -s 192.168.100.122 -m string --algo bm --string "facebook.com" -j ACCEPT
#
######################################################
#Bloqueia o youtube e libera apenas para as maquinas escolhidas
#####################################################
iptables -I FORWARD -m string --algo bm --string "youtube.com" -j DROP
iptables -I FORWARD -m string --algo bm --string "google.com" -j ACCEPT
iptables -I FORWARD -s 192.168.100.122 -m string --algo bm --string "youtube.com" -j ACCEPT
Título: Re:Bloquear Facebook e Youtube
Enviado por: GustavoOzzy em 08 de Junho de 2016, 10:27
Bom dia !
Sei que o tópico é um pouco antigo, mas ainda não consegui liberar o acesso para o facebook para alguns usuários.
Consigo bloquear, mas aí bloqueia todos os usuários (ip's) usando a Adre Magrego e não libera para determinados IP's.
Já tentei inúmeras regras no iptables mas nenhuma funciona.
No meu slackware (gateway) só roda a regra pra compartilhar a conexão:
"
modprobe iptable_nat
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 0/0 -i MASQUERADE
"
e depois rodo uma regra pra passar pelo squid:
"
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
"
Depois dessas regras eu tentei usar as regras aqui mencionadas, nas não funcionaram.
Alguém poderia me ajudar?
Muito obrigado !
Título: Re:Bloquear Facebook e Youtube
Enviado por: willsazon em 08 de Junho de 2016, 10:39
Bom dia !
Sei que o tópico é um pouco antigo, mas ainda não consegui liberar o acesso para o facebook para alguns usuários.
Consigo bloquear, mas aí bloqueia todos os usuários (ip's) usando a Adre Magrego e não libera para determinados IP's.
Já tentei inúmeras regras no iptables mas nenhuma funciona.
No meu slackware (gateway) só roda a regra pra compartilhar a conexão:
"
modprobe iptable_nat
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 0/0 -i MASQUERADE
"
e depois rodo uma regra pra passar pelo squid:
"
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
"
Depois dessas regras eu tentei usar as regras aqui mencionadas, nas não funcionaram.
Alguém poderia me ajudar?
Muito obrigado !

Olá amigo bom dia,
usando o squid e o iptables também não consegui. Eu conseguia bloquear tudo, mas não conseguia liberar pra alguns.

O que fiz na minha rede foi combinar o Squid, Iptables e arquivo host das estações.

Como trabalho com domínio os usuários não tem permissão para editar o arquivo host do windows.
Então eu removi as regras do firewall do Ubuntu e adicionei manualmente estação a estação os sites que eu não queria deixar o usuário acessar.

EXE:
# localhost name resolution is handled within DNS itself.
#   127.0.0.1       localhost
#   ::1             localhost
127.0.0.1       youtube.com.br

Faz com que a maquina local tente resolver o dns para o youtube localmente, o que fara com que não carregue.

Não é a forma mais elegante, mas pra mim funcionou.
Título: Re:Bloquear Facebook e Youtube
Enviado por: GustavoOzzy em 08 de Junho de 2016, 10:44
Usei essas regras, mas não funcionou:
Olá willsazon!

Não sei se você conseguiu resolver, mas vivi a mesma situação e resolvi da seguinte forma depois de um tempo pesquisando na internet

iptables -I FORWARD -m string --algo bm --string "facebook.com" -j DROP
Iptables -I FORWARD -s 192.168.0.241 -m string --algo bm --string "facebook.com" -j ACCEPT

Onde o Ip 192.168.0.241 é o meu ip, logo eu não recebi o bloqueio. Dessa forma eu achei mais fácil e simples de resolver. Para outro IP é só repetir a ultima linha de comando e assim sucessivamente. Para outras páginas, basta mudar a string 'facebook.com'

Espero ter ajudado.

Abraços

Depois incluí as regras de OUTPUT , mas também não deu certo .
Título: Re:Bloquear Facebook e Youtube
Enviado por: GustavoOzzy em 08 de Junho de 2016, 10:47
Olá Willsazon, obrigado por responder. Acredito não ser o meu caso, pois a rede onde estou tentando aplicar essas regras usam estações windows.
Preciso usar também o squid para bloquear outros domínios, como sites de bate-papo, conteúdo adulto e etc...
Obrigado !
Título: Re:Bloquear Facebook e Youtube
Enviado por: zekkerj em 08 de Junho de 2016, 13:07
No meu slackware (gateway) só roda a regra pra compartilhar a conexão:
Vou fazer de conta que você falou "Ubuntu" e não "Slackware", OK? Regras.

Citar
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
Isso só direciona o tráfego HTTP para o Squid, e vc precisa que o tráfego HTTPS seja direcionado para o Squid. Até pouco tempo isso era impossível, hoje em dia dá pra fazer com regra de interceptação, mas não quer dizer que seja simples, ou que não haja impacto.

Olá amigo bom dia,
usando o squid e o iptables também não consegui. Eu conseguia bloquear tudo, mas não conseguia liberar pra alguns.

O que fiz na minha rede foi combinar o Squid, Iptables e arquivo host das estações.

Como trabalho com domínio os usuários não tem permissão para editar o arquivo host do windows.
Então eu removi as regras do firewall do Ubuntu e adicionei manualmente estação a estação os sites que eu não queria deixar o usuário acessar.

EXE:
# localhost name resolution is handled within DNS itself.
#   127.0.0.1       localhost
#   ::1             localhost
127.0.0.1       youtube.com.br

Faz com que a maquina local tente resolver o dns para o youtube localmente, o que fara com que não carregue.

Não é a forma mais elegante, mas pra mim funcionou.

Quando teus usuários acessam o Youtube, não dá erro de certificado? Deveria...