Bloquear Facebook e Youtube

Iniciado por willsazon, 03 de Junho de 2015, 17:13

tópico anterior - próximo tópico

willsazon

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?
Ubuntu 14.04.2 LTS

oliveriojnn

Opa,

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

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

willsazon

Citação de: oliveriojnn online 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

Já fiz isso, mas o squid não bloqueia o facebook.
Ubuntu 14.04.2 LTS

zekkerj

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.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

willsazon

Citação de: zekkerj online 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.

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

Como seria o bloqueio pelo squid?
Ubuntu 14.04.2 LTS

zekkerj

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.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

willsazon

Citação de: zekkerj online 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.

É eu teria mesmo que ter algumas exceções para a diretoria.
Ubuntu 14.04.2 LTS

Andre Magrego

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

willsazon

Citação de: Andre Magrego online 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

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.

#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.
Ubuntu 14.04.2 LTS

Andre Magrego

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.

willsazon

Citação de: Andre Magrego online 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.

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.

iptables -A INPUT -p tcp --syn -j DROP

Vou fazer os teste com o youtube agora e depois volto para dizer se deu certo.
Ubuntu 14.04.2 LTS

Andre Magrego

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!

willsazon

Citação de: Andre Magrego online 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!

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.

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

Ubuntu 14.04.2 LTS

GustavoOzzy

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 !

willsazon

Citação de: GustavoOzzy online 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 !

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.
Ubuntu 14.04.2 LTS