Liberando vídeos específicos do YouTube com e2guardian + Squid utilizando interceptação SSL

Neste artigo ensinarei como liberar vídeos específicos do YouTube com e2guardian + Squid, utilizando interceptação SSL para capturar URLs necessárias.

[ Hits: 57.090 ]

Por: Renato Carneiro Pacheco em 16/04/2015


Interceptando as conexões SSL do YouTube



Considerando que o certificado já foi importado ao navegador do cliente e que o e2guardian já esteja em execução, vamos acessar o YouTube e conferir se o site realmente está bloqueado:
Linux: Liberando vídeos específicos do YouTube com e2guardian + Squid utilizando interceptação SSL
Olhando nos logs:

# tail -f /var/log/e2guardian/access.log
Apr 13 13:31:38 HOST e2guardian[25382]: 2015.4.13 13:31:38 NOME_USUARIO IP_USUARIO http://youtube.com *MISSING TRANSLATION KEY* Sítio proibido: youtube.com GET 0 0 Banned Sites 1 403 -  Teste   - -

Utilizando como exemplo aquele vídeo da página anterior, vamos ver se será bloqueado:
Linux: Liberando vídeos específicos do YouTube com e2guardian + Squid utilizando interceptação SSL
Agora, vamos conferir nos logs:

...
Apr 13 14:54:36 HOST e2guardian[25831]: 2015.4.13 14:54:36 NOME_USUARIO IP_USUARIO https://www.youtube.com/watch?v=fwGlWXr9-8k *MISSING TRANSLATION KEY* Exception regular expression URL match: ^(.*\.youtube\.com/watch\?v=fwGlWXr9-8k) GET 40972 0  1 200 -  Teste   - -
Apr 13 14:54:36 HOST e2guardian[25831]: 2015.4.13 14:54:36 NOME_USUARIO IP_USUARIO https://r13---sn-bg07yn7l.googlevideo.com/crossdomain.xml *MISSING TRANSLATION KEY* Exception regular expression URL match: ^(.*\.(googlevideo|youtube)\.com/(crossdomain|videoplayback).*) GET 169 0  1 200 -  Teste   - -
Apr 13 14:54:38 HOST e2guardian[25831]: 2015.4.13 14:54:38 NOME_USUARIO IP_USUARIO https://r13---sn-bg07yn7l.googlevideo.com/videoplayback?initcwndbps=636250&nh=IgpwcjAxLmdydTA5Kg03Mi4xNC4yMjAuMTAx&pl=22&signature=A9B0DCA88D7C75D62B0DB90A4C88348A57973D1A.6110FBB531A7088FD7E538C764F3B2CF1CA7C7F1&sver=3&requiressl=yes&key=yt5&ip=x.x.x.x&ipbits=0&id=o-ANSnlcN3nCVMPrId-QeZ2xEisPv81SU7f1nNU9yviFOw&upn=GYGuUSj4X7E&gir=yes&mm=31&dur=1982.031&mt=1428947621&mv=m&ms=au&lmt=1427958413126962&clen=31819988&mime=audio%2Fmp4&keepalive=yes&source=youtube&sparams=clen%2Cdur%2Cgir%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Ckeepalive%2Clmt%2Cmime%2Cmm%2Cms%2Cmv%2Cnh%2Cpl%2Crequiressl%2Csource%2Cupn%2Cexpire&fexp=3300114%2C3300131%2C3300137%2C3311882%2C3312176%2C900720%2C907263%2C916656%2C932627%2C932631%2C934954%2C9406012%2C9406502%2C9407432%2C9408347%2C9408707%2C9408748%2C9408919%2C947233%2C947243%2C948124%2C948703%2C951703%2C952612%2C952626%2C952637%2C957201%2C957906%2C961404%2C961406&itag=140&expire=1428969276&cpn=LqRl8NaZktQLUELO&alr=yes&ratebypass=yes&c=WEB&cver=html5&range=65536-131071 *MISSING TRANSLATION KEY* Exception regular expression URL match: ^(.*\.(googlevideo|youtube)\.com/(crossdomain|videoplayback).*) GET 65536 0  1 200 -  Teste   - -
...


Reparem que as URLs começam com o protocolo HTTPS, confirmando que as URLs seguras estão sendo interceptadas.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Proxy: SSL autêntico x SSL Man-in-the-Middle
   3. e2guardian: fork do Dansguardian
   4. Instalação da parafernália
   5. Criando as chaves da CA
   6. Configurando e2guardian e Squid
   7. Interceptando as conexões SSL do YouTube
   8. Conclusão
Outros artigos deste autor

Iniciando seu Linux através do NTLoader do Windows 2000/XP

Leitura recomendada

Instalando o MySAR no CentOS 5.5

Compilando o Squid e criando o pacote para Slackware

SQUID: Autenticação em banco de dados MySQL cruzando IP/MAC/USUÁRIO e SENHA

PhpDansAdmin, protótipo de ferramenta web para administração do DansGuardian

Squid 3 como proxy transparente + firewall Iptables

  
Comentários
[1] Comentário enviado por fabio em 16/04/2015 - 15:59h

Baita artigo! Favoritado.

[2] Comentário enviado por tiaguera em 18/04/2015 - 12:11h

luz no fim do túnel! faço a mesma coisa com sslbump no freebsd, mas ele tem algumas limitações q me irritam (funciona em squid antigo apenas e nao funciona em proxy transparente)... vou testar o e2guardian e ver se ta valendo migrar... obrigado!

[3] Comentário enviado por olivam em 19/04/2015 - 00:43h

amigo como ficaria o redirecionamento da porta 443 no iptables. ou não funciona em proxy transparente?


Olivam C Moraes
Seja Livre use Linux!

[4] Comentário enviado por renato_pacheco em 19/04/2015 - 12:36h


[2] Comentário enviado por tiaguera em 18/04/2015 - 12:11h

luz no fim do túnel! faço a mesma coisa com sslbump no freebsd, mas ele tem algumas limitações q me irritam (funciona em squid antigo apenas e nao funciona em proxy transparente)... vou testar o e2guardian e ver se ta valendo migrar... obrigado!


Cara, eu já testei no squid e funciona das duas formas (autenticada e transparente). O problema do squid é a sua filtragem q não tem um bom desempenho. Por isso optei pelo e2guardian.

[5] Comentário enviado por renato_pacheco em 19/04/2015 - 14:16h


[3] Comentário enviado por olivam em 19/04/2015 - 00:43h

amigo como ficaria o redirecionamento da porta 443 no iptables. ou não funciona em proxy transparente?


Olivam C Moraes
Seja Livre use Linux!


Eu tenho certeza q funciona, só não me lembro se tem q modificar algo no e2guardian.conf...

[6] Comentário enviado por olivam em 19/04/2015 - 21:28h


[5] Comentário enviado por renato_pacheco em 19/04/2015 - 14:16h


[3] Comentário enviado por olivam em 19/04/2015 - 00:43h

amigo como ficaria o redirecionamento da porta 443 no iptables. ou não funciona em proxy transparente?


Olivam C Moraes
Seja Livre use Linux!

Eu tenho certeza q funciona, só não me lembro se tem q modificar algo no e2guardian.conf...


estou utilizando squid 3.4 com sslbump +dansguardian-2.10.1.1 +slackware 14.1 só que as vezes trava o squid e tenho que dar um killall no squid e startar para voltar a funcionar, seria ótimo um tutorial e2guardian+squid com proxy transparente incluindo as regra utilizadas do iptables, redirecionando as portas 80,8080 e 443 para o e2guardian e usar o squid para fazer somente cache, deixando todo trabalho de filtragem http e https para o e2guardian.

Parabéns pelo Ótimo artigo...

é uma luz no fim do túnel para quem quer filtrar https (youtube e facebook).

Olivam C Moraes
Seja Livre use Linux!

[7] Comentário enviado por removido em 21/04/2015 - 22:38h


Ótimo artigo!

[8] Comentário enviado por renato_pacheco em 22/04/2015 - 14:16h


[6] Comentário enviado por olivam em 19/04/2015 - 21:28h


[5] Comentário enviado por renato_pacheco em 19/04/2015 - 14:16h


[3] Comentário enviado por olivam em 19/04/2015 - 00:43h

amigo como ficaria o redirecionamento da porta 443 no iptables. ou não funciona em proxy transparente?


Olivam C Moraes
Seja Livre use Linux!

Eu tenho certeza q funciona, só não me lembro se tem q modificar algo no e2guardian.conf...

estou utilizando squid 3.4 com sslbump +dansguardian-2.10.1.1 +slackware 14.1 só que as vezes trava o squid e tenho que dar um killall no squid e startar para voltar a funcionar, seria ótimo um tutorial e2guardian+squid com proxy transparente incluindo as regra utilizadas do iptables, redirecionando as portas 80,8080 e 443 para o e2guardian e usar o squid para fazer somente cache, deixando todo trabalho de filtragem http e https para o e2guardian.

Parabéns pelo Ótimo artigo...

é uma luz no fim do túnel para quem quer filtrar https (youtube e facebook).

Olivam C Moraes
Seja Livre use Linux!


Olivam,

Retiro o q disse! Por enquanto, o e2guardian não funciona como HTTPS transparente, somente HTTP transparente. Falei com o desenvolvedor e ele confirmou.

[9] Comentário enviado por SephirothHG em 01/04/2016 - 10:33h

Parabéns pelo artigo, Renato!

Estou tendo um problema, onde o serviço do e2guardian falha se a variável cacertificatepath estiver descomentada no arquivo e2guardian.conf.
Criei o certificado conforme o artigo e coloquei o caminho para o mesmo na variável.

[10] Comentário enviado por renato_pacheco em 01/04/2016 - 14:59h


[9] Comentário enviado por SephirothHG em 01/04/2016 - 10:33h

Parabéns pelo artigo, Renato!

Estou tendo um problema, onde o serviço do e2guardian falha se a variável cacertificatepath estiver descomentada no arquivo e2guardian.conf.
Criei o certificado conforme o artigo e coloquei o caminho para o mesmo na variável.


Dê uma olhada se o dono do diretório é o usuário e2guardian e grupo e2guardian. Caso não dê certo, execute o e2guadian assim: e2guardian -N. Ele vai mostrar alguma coisa pra vc, caso haja algum problema.

[11] Comentário enviado por SephirothHG em 06/04/2016 - 11:19h


[10] Comentário enviado por renato_pacheco em 01/04/2016 - 14:59h


[9] Comentário enviado por SephirothHG em 01/04/2016 - 10:33h

Parabéns pelo artigo, Renato!

Estou tendo um problema, onde o serviço do e2guardian falha se a variável cacertificatepath estiver descomentada no arquivo e2guardian.conf.
Criei o certificado conforme o artigo e coloquei o caminho para o mesmo na variável.


Dê uma olhada se o dono do diretório é o usuário e2guardian e grupo e2guardian. Caso não dê certo, execute o e2guadian assim: e2guardian -N. Ele vai mostrar alguma coisa pra vc, caso haja algum problema.


Muito obrigado pela resposta, Renato!

Demorei pra ver a sua resposta, pois achava que o VOL notificava quando houvesse comentários onde postei, daí fiquei esperando.

Sinceramente, não sei o que fiz, mas o e2guardian subiu sem falhas.
Porém, ao tentar acessar o vídeo que deveria estar liberado (ou qualquer outra página do youtube) recebo a mensagem de erro de "Falha na Conexão Segura" (SSL_ERROR_RX_RECORD_TOO_LONG)

Nos logs do e2guardian, aparece a seguinte mensagem:
"https://www.youtube.com:443 *DENIED* Failed to negotiate ssl connection to client CONNECT 0 0 SSL SITE 1 200 - Grupo padrão - - "

Alguma ideia do que possa ser?

Desculpe se estou sendo inoportuno, mas a quantidade de informações sobre o e2guardian na internet é bem pobre, e o seu artigo é a fonte de informação mais completa que encontrei.

[12] Comentário enviado por renato_pacheco em 06/04/2016 - 11:41h


Muito obrigado pela resposta, Renato!

Demorei pra ver a sua resposta, pois achava que o VOL notificava quando houvesse comentários onde postei, daí fiquei esperando.

Sinceramente, não sei o que fiz, mas o e2guardian subiu sem falhas.
Porém, ao tentar acessar o vídeo que deveria estar liberado (ou qualquer outra página do youtube) recebo a mensagem de erro de "Falha na Conexão Segura" (SSL_ERROR_RX_RECORD_TOO_LONG)

Nos logs do e2guardian, aparece a seguinte mensagem:
"https://www.youtube.com:443 *DENIED* Failed to negotiate ssl connection to client CONNECT 0 0 SSL SITE 1 200 - Grupo padrão - - "

Alguma ideia do que possa ser?

Desculpe se estou sendo inoportuno, mas a quantidade de informações sobre o e2guardian na internet é bem pobre, e o seu artigo é a fonte de informação mais completa que encontrei.


Cara, tá tranquilo, tá favorável! IUHaeiuhaiueh! Agora o seu problema está na criação das chaves e acrescentar o certificado nos navegadores. Reveja o passo-a-passo e depois me fala.

[13] Comentário enviado por SephirothHG em 06/04/2016 - 15:28h


[12] Comentário enviado por renato_pacheco em 06/04/2016 - 11:41h


Muito obrigado pela resposta, Renato!

Demorei pra ver a sua resposta, pois achava que o VOL notificava quando houvesse comentários onde postei, daí fiquei esperando.

Sinceramente, não sei o que fiz, mas o e2guardian subiu sem falhas.
Porém, ao tentar acessar o vídeo que deveria estar liberado (ou qualquer outra página do youtube) recebo a mensagem de erro de "Falha na Conexão Segura" (SSL_ERROR_RX_RECORD_TOO_LONG)

Nos logs do e2guardian, aparece a seguinte mensagem:
"https://www.youtube.com:443 *DENIED* Failed to negotiate ssl connection to client CONNECT 0 0 SSL SITE 1 200 - Grupo padrão - - "

Alguma ideia do que possa ser?

Desculpe se estou sendo inoportuno, mas a quantidade de informações sobre o e2guardian na internet é bem pobre, e o seu artigo é a fonte de informação mais completa que encontrei.


Cara, tá tranquilo, tá favorável! IUHaeiuhaiueh! Agora o seu problema está na criação das chaves e acrescentar o certificado nos navegadores. Reveja o passo-a-passo e depois me fala.


Refiz os certificados, e após lutar um pouco com os navegadores (que diziam que o mesmo não era confiável), consegui fazer funcionar no Firefox. No Chrome não aceita de jeito nenhum, mas acho que ele está reclamando da versão do SSL, que é a 1.0.1f (estou usando o Ubuntu 14.04), mas já vou verificar como atualizá-lo.
Deu certo! Tá funcionando, finalmente! hahaha
Agora só preciso descobrir como criar grupos e resolver o problema da confiabilidade do certificado.

Valeu pelo força, Renato!

[14] Comentário enviado por renato_pacheco em 06/04/2016 - 17:12h



Refiz os certificados, e após lutar um pouco com os navegadores (que diziam que o mesmo não era confiável), consegui fazer funcionar no Firefox. No Chrome não aceita de jeito nenhum, mas acho que ele está reclamando da versão do SSL, que é a 1.0.1f (estou usando o Ubuntu 14.04), mas já vou verificar como atualizá-lo.
Deu certo! Tá funcionando, finalmente! hahaha
Agora só preciso descobrir como criar grupos e resolver o problema da confiabilidade do certificado.

Valeu pelo força, Renato!


Sobre os certificados, é possível inserir via netlogon um script q inclui os certificados no Windows. No Firefox, é possível distribuir através d JavaScript, mas é bem complicado. Como não fui eu q fiz essa parada, não tenho muitos detalhes sobre isso. Se vc buscar na Internet, acredito q encontrará sem dificuldades. Se vc tiver AD na sua rede, é mais fácil inserir os certificados (exceto Firefox).


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts