sábado, 11 de junho de 2016

Como bloquear Facebook Youtube no Mikrotik

Saudações!

Uma das coisas mais complicadas é o Youtube, devido ao fato de compartilhar servidores com outros serviços como o buscador da Google, Gmail etc, além de ter cache em servidores que não são da Google, assim se bloquear os IPs bloqueia coisas que não poderiam ser bloqueadas. O Youtube e o Facebook também podem ser acessado com HTTPS, então o bloqueio por palavra chave proxy, já não funciona.

Enfim, a solução mais fácil e segura é via DNS.

No Mikrotik você pode fazer esse bloqueio cadastrando os endereços do youtube e facebook como entradas estáticas no DNS, Menu IP->DNS, veja imagens abaixo.



Fazendo testes, com HTTPS ainda acessou o Facebook, pesquisando Face no Google e clicando no resultado com HTTPS..., então criei a regra DNS com HTTPS no endereço também, print abaixo:

Aqui no caso criei 2 entradas pro Facebook, uma com o HTTPS

Bom, se o cliente tiver configurado o endereço de DNS com o IP do Mikrotik, já deve ter bloqueado, caso contrário, se tiver DNS da Google (8.8.8.8) ou outro, ainda é preciso fazer uma regra NAT no Firewall pra redirecionar todas as consultas de DNS para o próprio Mikrotik, assim, o cliente sempre irá usar o DNS do Mikrotik.

 Então acesse IP->Firewall, aba NAT, clica no + pra adicionar uma regra, e configura assim:

Chain: dstnat
Src address: ! 10.2.2.1 -> Ip local do Mikrotik
Protocolo: UDP
Porta: 53
Pacotes destinados a porta 53 protocolo UDP são consultas DNS
Então tudo o que for consulta DNS que NÃO tiver sendo feito do próprio Mikrotik (source address diferente do IP do Mikrotik) será feita a ação REDIRECT para porta 53, assim irá consultar o próprio DNS do Mikrotik, mesmo que o cliente tenha configurado outro endereço de DNS.

Na guia Action, fica consoante imagem abaixo:
Ação que redireciona
Desta forma, aqui nos meus testes, o facebook e o youtube foram bloqueados. Embora eu imagine que o usuário ainda poderia alterar aquele arquivo hosts (%WinDir%\System32\Drivers\Etc) na própria máquina, se ele souber o endereço IP do facebook e for administrador da máquina local consegue burlar esse bloqueio criando a entrada DNS na própria máquina. Acho que isso apenas usuários avançados conseguiriam, então até hoje creio que o bloqueio por DNS seja a melhor solução.

Só mais um detalhe, na hora de testar, executem o comando "ipconfig /flushdns" nas suas máquinas, pra limpar o cache DNS.

Obs.: No caso de você ter fechado consultas ao Mikrotik como explicado no post anterior, Fechando acesso ao Mikrotik, lembra de ter a regra que permite as consultas DNS:

add chain=input protocol=udp port=53 action=accept

Até o Futuro!

12 comentários:

  1. Complementando o POST, tive alguns problemas com essa solução em uma configuração com alguns computadores liberados pra ter acesso a tudo, a solução foi usar no ACTION = dst-nat, to-address = IP_DNS
    E na guia advanced, Src. Address List != Lista de IPs liberados
    Com isso os computadores com livre acesso podem usar outros DNS.

    ResponderExcluir
    Respostas
    1. como faz isso??? tentei aqui mas não libera nada. obrigado pela ajuda

      Excluir
    2. Acho que não ficou muito claro, vou explicar.

      No Firewall, você irá criar uma regra para liberar tudo nos IPs liberados, e colocar ela antes da regra que bloqueia.

      Fazendo pelo winbox:
      1) vai menu IP->Firewall,
      2) clicar no + pra adicionar regra,
      3) na guia General define Chain: forward;
      4) na guia Advanced define Src. Address List: Liberados
      5) na guia Action define Action: accept

      OK!

      Vai na guia Address Lists e adiciona os endereços IPs dos computadores que vão ter tudo liberado na lista "Liberados".

      Usa outro DNS nos computadores que estão liberados, como 8.8.8.8, lembra que o DNS do Mikrotik tem as entradas dos sites bloqueados apontando pra ele mesmo.

      No comentário acima a dica foi usar a lista dos liberados selecionada com (!) NOT na frente, na regra que obriga todos usarem o DNS do mikrotik, assim os liberados fica excluídos dessa regra e podem usar outro DNS qualquer.

      Com a regra que libera tudo posicionada antes, acredito que não precisa adicionar a exceção na regra que redireciona consultas DNS.

      Espero que tenha ficado mais claro agora, abraços!

      Excluir
  2. Bom dia

    tudo bem amigo, poderia colocar um print de como ficou esta configuração, pois queria fazer da mesma forma

    obrigado

    ResponderExcluir
    Respostas
    1. Olá, no caso você teve problema com PCs liberados? Se foi isso, acho que a solução mais fácil é colocar uma regra antes da regra do bloqueio, com o IP que quer liberar, no action dá Accept, assim vai liberar.

      Se quiser pode usar uma lista de endereços pra liberar vários com uma regra apenas.

      Excluir
    2. Como e que faz essa lista de IP, pq tentei fazer usando as instruções mas não deu certo

      Excluir
    3. Fazendo pelo winbox:
      1) vai menu IP->Firewall,
      2) vai na aba Address Lists,
      3) clica no ícone + pra criar
      4) Preenche o Name e Address, OK

      Depois você pode ao invés de digitar o Name selecionar entre os existentes, ou usar o Copy e só alterar o IP... como preferir.

      Excluir
  3. Não consigo bloquear o acesso ao Youtube de jeito nenhum! :/

    ResponderExcluir
    Respostas
    1. Bom dia João!
      Chegou a implementar a solução do post (DNS)? Até hoje foi a única que deu certo pra nós. Por IP é bem complicado porque são muitos IPs e servidores de CACHEs pelo mundo e por layer7 acaba bloqueando Google junto muitas vezes, assim como por IP também acontecia.

      Excluir
    2. Bom dia, me tira um dúvida, ao bloquear o YouTube com esta regra os demais serviços do Google param tbm, como exemplo o Gmail e até a própria pesquisa do Google?
      Todas as outras formas de bloqueio que já fiz estão travando os demais sites da Google.
      Este é o meu maior problema ao criar as regras de bloqueio para YouTube.

      Excluir
    3. Bom dia Hélio, não bloqueia outros serviços da Google, apenas ao tentar acessar o site "youtube.com" o seu DNS vai direcionar para um IP local ou outro que você quiser colocar, como por exemplo uma página dizendo que o site está bloqueado.

      Uma vez nós bloqueamos os endereços IPs onde o serviço youtube está hospedado, mas aí sim interferiu em outros serviços da Google que compartilham a mesma hospedagem. Além de que não foi totalmente eficaz porque existem muitos caches do Youtube espalhados por aí.

      Excluir
  4. Só mais um detalhe, ao implementar essa solução de DNS, na hora de testar, executem o comando "ipconfig /flushdns" nas suas máquinas pra limpar o cache DNS.

    ResponderExcluir