iptables novo + layer7, não estou sabendo criar uma regra para bloquear vídeos

Iniciado por danielrsj, 06 de Julho de 2010, 09:27

tópico anterior - próximo tópico

danielrsj

olá pessoal, recentimente enfentei o seguinte problema que relatei no seguinte link:
http://ubuntuforum-br.org/index.php/topic,69120.msg384936.html#msg384936

Resumindo, eu usava uma versão mais antiga do iptables (versão 1.4.0) e várias de minhas regras funcionavam perfeitamente, porém o meu servidor deu "kernel panic" e eu aproveitei para atualizar logo ele todo, coloquei o ubuntu novo, recompilei o kernel para funionar o layer7 e tudo, porém como não consegui instalar o iptables 1.4.0 no kernel 2.6.34 tive que me contentar com o iptables versão 1.4.8, onde algumas de minhas regras antigas não funcionam.....

Conforme fui ajudado no tópico acima percebi que minhas regras antigas não deveriam funcionar nem mesmo no iptables antigo, mas enfim.

O problema agora é uma outra regra, uma que bloqueia vídeos.

Eu tenho a seguinte situação, quero bloquear os vídeos, porém, tenho que liberar para a direção da empresa e para outros setores que promovem treinamento e precisam acessar o youtube.

Pois bem, minha regra antiga era essa:
Citar## regra para bloqueio de vídeo dos orelhas secas:
       iptables -I FORWARD -m layer7 --l7proto httpvideo -j DROP
       iptables -I OUTPUT -m layer7 --l7proto httpvideo -j DROP
       iptables -t nat -I PREROUTING -m layer7 --l7proto httpvideo -j DROP ###(essa regra estou desconsiderando pois não sei se precisava no iptables antigo e no novo já dá erro logo de cara)
       iptables -t nat -I OUTPUT -m layer7 --l7proto httpvideo -j DROP ###(essa regra estou desconsiderando pois não sei se precisava no iptables antigo e no novo já dá erro logo de cara)

### regra para liberar video para diretoria

               iptables -I FORWARD -s "ip_liberado" -m layer7 --l7proto httpvideo  -j ACCEPT
               iptables -I FORWARD -d "ip_liberado" -m layer7 --l7proto httpvideo  -j ACCEPT

               iptables -I INPUT -s "ip_liberado" -m layer7 --l7proto httpvideo  -j ACCEPT
               iptables -I INPUT -d "ip_liberado" -m layer7 --l7proto httpvideo  -j ACCEPT

               iptables -I OUTPUT -s "ip_liberado" -m layer7 --l7proto httpvideo  -j ACCEPT
               iptables -I OUTPUT -d "ip_liberado" -m layer7 --l7proto httpvideo  -j ACCEPT

               iptables -t nat -I PREROUTING -s "ip_liberado" -m layer7 --l7proto httpvideo  -j ACCEPT###(essa regra estou desconsiderando pois não sei se precisava no iptables antigo e no novo já dá erro logo de cara)

               iptables -t nat -I PREROUTING -d "ip_liberado" -m layer7 --l7proto httpvideo  -j ACCEPT###(essa regra estou desconsiderando pois não sei se precisava no iptables antigo e no novo já dá erro logo de cara)


               iptables -t nat -I OUTPUT -s "ip_liberado" -m layer7 --l7proto httpvideo  -j ACCEPT###(essa regra estou desconsiderando pois não sei se precisava no iptables antigo e no novo já dá erro logo de cara)

               iptables -t nat -I OUTPUT -d "ip_liberado" -m layer7 --l7proto httpvideo  -j ACCEPT###(essa regra estou desconsiderando pois não sei se precisava no iptables antigo e no novo já dá erro logo de cara)


####################################################################################################

Reparem que na regra de bloqueio eu bloqueei OUTPUT e FORWARD, não bloquei INPUT, pois se bloqueasse INPUT eu não consegui liberar para a diretoria, como ocorre hoje na nova regra:
Citar
### regra para bloqueio de video - iptables novo:
          iptables -I FORWARD -m layer7 --l7proto httpvideo  -j DROP
          iptables -I INPUT -m layer7 --l7proto httpvideo  -j DROP
          iptables -I OUTPUT -m layer7 --l7proto httpvideo  -j DROP
### regra para liberar video para diretoria:
              iptables -I FORWARD -s "ip_liberado" -m layer7 --l7proto httpvideo -j ACCEPT
              iptables -I FORWARD -d "ip_liberado" -m layer7 --l7proto httpvideo  -j ACCEPT

              iptables -I INPUT -s "ip_liberado" -m layer7 --l7proto httpvideo -j ACCEPT
              iptables -I INPUT -d "ip_liberado" -m layer7 --l7proto httpvideo  -j ACCEPT

              iptables -I OUTPUT -s "ip_liberado" -m layer7 --l7proto httpvideo  -j ACCEPT
              iptables -I OUTPUT -d "ip_liberado" -m layer7 --l7proto httpvideo  -j ACCEPT
#################################################################

Então,

o estranho é que com a versão antiga do iptables eu não precisava bloquear o INPUT e mesmo assim os vídeos eram bloqueados, mas na versão nova se eu não bloquear o INPUT os vídeos não são bloqueados.

O problema é que tanto na versão antiga como na nova, se eu bloqueio o INPUT depois não consigo liberar o vídeo para determinados IPs mesmo inserindo uma regra ACCEPT no INPUT para esses ips que tento liberar.

OBS.: o meu bloqueio/liberação de MSN funciona normal com a seguinte regra:
Citar### bloqueio
          iptables -I FORWARD -m layer7 --l7proto msnmessenger -j DROP
### liberação  
          iptables -I FORWARD -s "ip_liberado" -m layer7 --l7proto msnmessenger  -j ACCEPT
          iptables -I FORWARD -d "ip_liberado" -m layer7 --l7proto msnmessenger  -j ACCEPT
################################################################


Alguém conhece a forma correta de fazer esse bloqueio de vídeo para toda a rede mas criando exceções ?

OBS.: sites de vídeos conhecidos como youtube e outros já são bloqueados no squid, mas nunca se sabe quando um usuário espertinho acha um site de video em outro país e que consequentemente o squid não bloqueie. Por isso uso essa regra no firewall..

Desde já agradeço ao pessoal do fórum.

zekkerj

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

danielrsj

Citação de: zekkerj online 06 de Julho de 2010, 15:23
Pq vc não faz o bloqueio no Squid? É muito mais simples...

Porque se eu bloqueio no squid o usuário pode achar um outro site em outro país que passe vídeos, por exemplo sites de conteúdo adulto.

Infelizmente eu não tenho tempo para ficar todos os dias vendo os logs do squid, até seria bom se pudesse fazer isso, mas não posso, logo, se eu bloqueio o protocolo mesmo que o infeliz do usuário da rede ache um site que por acaso não esteja na lista de bloqueio do squid o site até abre, mas não passa os vídeos, logo o usuário desiste de tentar burlar o firewall, eu acho ;D

zekkerj

O squid não bloqueia só por endereço, pode bloquear por vários critérios, até mesmo pelo tipo MIME do arquivo sendo baixado.

No caso, você bloquearia o tipo MIME "video/x-flv", bloqueando totalmente qualquer serviço tipo youtube.
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

danielrsj

Citação de: zekkerj online 07 de Julho de 2010, 00:49
O squid não bloqueia só por endereço, pode bloquear por vários critérios, até mesmo pelo tipo MIME do arquivo sendo baixado.

No caso, você bloquearia o tipo MIME "video/x-flv", bloqueando totalmente qualquer serviço tipo youtube.

Vc é o cara.

Muito obrigado pela ajuda.
Fiz assim no squid.:

acl bloquear_stream rep_mime_type ^video/x-flv$

e depois bloqueei essa acl

Fuicionou legal no youtube, porém não funcionou em sites de televisão.

Por exemplo, esse site: http://www.xatcomtv.eu/ passa tv e o squid não bloqueou com o tipo MIME acima.

Saberia me dizer qual o MIME correto?

Valeu

zekkerj

pode ser algo como x-mms-framed... o ideal é consultar o log do squid pra ver o tipo mime correto.
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

danielrsj

opa meu amigo,
Sem querer tomar muito seu tempo....

poderia me ensinar como descubro o tipo MIME correto?

Eu executei o sequinte comando:
tail -f /var/log/squid3/access.log e acessei o youtube para ver.

os vídeos foram bloqueados, mas não achei nenhuma linha com video/x-flv.

Se eu tentar o mesmo comando mas acessando o site que falei, aparece uma linha com o seguinte conteúdo:
application/x-shockwave-flash

Mas eu tentei bloquear isso no squid e não deu certo.

Obrigado!

zekkerj

No caso do youtube, eu consultei no google.

No caso dos sites de vídeo, é preciso olhar com cuidado, pois pode haver mais de um tipo; nesse caso, vc tem que verificar um a um.
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