Bloquear e liberar HTTPS no pfSense

Esse tutorial passo a passo demonstra como bloquear e liberar HTTPS no pfSense 2.0 Release utilizando Regras e Aliases. Contempla, de forma resumida, algumas possibilidades para essa finalidade: Bloquear o protocolo HTTPS e liberar alguns acessos como Bancos, E-mail e MSN.

Antes de iniciar os procedimentos para as configurações abaixo, leia com a máxima atenção esse Alerta:

alerta.jpg É preciso ter muito cuidado na criação de regras de bloqueio HTTPS se o acesso à GUI do pfSense também é HTTPS. É melhor checar essa configuração em “System: Advanced: Admin Access” para não cometer um erro e bloquear seu acesso à interface web. Por isso existe a “Anti-Lockout Rule“. Então, muita atenção nos seus passos. Nesse exemplo, a porta de acesso à GUI é a 8080, evitando conflitos com a porta 443 utilizada pelo HTTPS.

Planejar com antecedência o que será liberado antes de bloquear o HTTPS também é muito recomendável. Busque todas as informações necessárias e as respectivas Redes dos Domínios e Aplicativos que dependem desse protocolo. Uma boa fonte para descobrir as Redes associadas a um domínio é a Hurricane Electric Internet Services. Basta colocar o domínio no campo Search disponibilizado na página e efetuar a busca.

1- Inicie criando os Aliases do que será liberado. Vá  em Firewall: Aliases, clique no botão e configure os campos conforme imagem abaixo. No campo Name, especifique o nome que for mais adequado para seu caso. Lembre-se que esse Nome será utilizado posteriormente nas regras da LAN (passo 4).

aliases_bancos.jpg
clique para aumentar a imagem

No exemplo acima, criou-se Aliases para alguns Bancos de uso mais comum. Vá acrescentando conforme seu caso.

2- Prossiga criando outros Aliases conforme suas necessidades. A imagem abaixo mostra alguns outros exemplos como E-mail (Gmail e ig mail) e o domínio da Microsoft abrangendo o MSN.

aliases_criados.jpg
clique para aumentar a imagem

Nota1: A rede da Microsoft, parcialmente abrangente, foi colocada para prevenir eventuais bloqueios da Atualização do Windows/Office e alguns recursos do MSN.

3- Com os Aliases devidamente prontos,  crie uma Regra na LAN para bloquear o protocolo HTTPS em Firewall: Rules clicando no botão conforme abaixo:

reject_https.jpg
clique para aumentar a imagem

Observe que os logs para essa Regra foram mantidos apenas para checagem das ocorrências de bloqueio para esse Protocolo. Essa opção pode e deve ser desmarcada após a verificação do funcionamento correto das Regras de liberação.

4- Seguindo o mesmo procedimento do passo 3, crie outras Regras na LAN, mas dessa vez para liberar HTTPS, vinculando cada nova Regra a um determinado Aliases criado nos passos 1-2. Na imagem abaixo, a Regra criada libera acesso ao Aliases com Nome: passBancos.

rule_passBancos.jpg
clique para aumentar a imagem

5- Após criar todas as Regras de liberação com seus respectivos vínculos aos Aliases, certifique-se que cada uma dessas regras esteja posicionada acima da regra que bloqueia HTTPS, conforme imagem abaixo.

rules_ordem.jpg
clique para aumentar a imagem

Nota2: Caso seja necessário liberar apenas alguns IPs da sua rede, para um determinado caso como o MSN, por exemplo, crie um Aliases para os IPs que serão liberados e configure a Regra de liberação conforme já explicado no passo 4. Para isso apenas certifique-se de inserir o nome do Aliases correspondente na OpçãoSource > Type:  Single host or aliasem lugar deSource > Type: Lan subnet”. E, mais uma vez, certifique-se que essa regra esteja posicionada acima da regra que bloqueia HTTPS.

Importante: Liberar HTTPS exige um trabalho razoável e, algumas vezes, complexo para evitar os bloqueios gerados pela regra criada para esse Protocolo. Com frequência a página de um determinado domínio não carrega completamente, apesar de liberada, devido a vínculos com outras redes de outros domínios. Um exemplo disso é o Paypal que faz vinculos com o eBay, entre outros domínios, para a correta visualização da página.  Portanto, discussões detalhadas sobre esse procedimento, devido a sua complexidade, devem ser tratadas no fórum do pfSense.

This entry was posted in pfSense, Segurança Redes, Tutoriais and tagged , , . Bookmark the permalink.

14 Responses to Bloquear e liberar HTTPS no pfSense

  1. Alisson says:

    Fiz o procedimento de acordo com o tutorial, porém não acesso nenhum site HTTPS. Mesmo Liberando alguns https no Aliases, e subindo a regra acima do “Bloqueio” o mesmo não está funcionando.

    • kemp says:

      Olá Alisson,
      Por favor, faça conforme citei no último parágrafo do Tutorial:

      Importante: Liberar HTTPS exige um trabalho razoável e, algumas vezes, complexo para evitar os bloqueios gerados pela regra criada para esse Protocolo. Com frequência a página de um determinado domínio não carrega completamente, apesar de liberada, devido a vínculos com outras redes de outros domínios. Um exemplo disso é o Paypal que faz vinculos com o eBay, entre outros domínios, para a correta visualização da página. Portanto, discussões detalhadas sobre esse procedimento, devido a sua complexidade, devem ser tratadas no fórum do pfSense.

  2. Joao Vitor says:

    meu https esta bloqueado oque eu faço

  3. Ricardo says:

    Caro Kemp estou vivendo esse dilema, instalei em um cliente Dansguardian + Squid mais através do https ele conseguem furar o bloqueio vi o tutorial acima mais tenho uma dúvidas.
    1º – Se eu implantar o PFSense vou ter que deixar de usar o iptables e recirar todas as minhas regras nele (PFSense)?
    2º – Vou ter que fazer alguma configuração especial no Dansguradian e ou Squid para que ele funcione?
    Parabéns pelo post.

    • kemp says:

      Olá Ricardo,
      Tenho conhecimento de vários ambientes com iptables, Dansguardian e Squid onde o filtro de HTTPS funciona muito bem. Lembrando que Proxy transparente não filtra HTTPS. Será que não é esse seu caso?
      Respondendo as suas perguntas, resumidamente:
      1°- Sim, terá que recriar as regras no pfSense se você pretende usá-lo como Firewall de borda.
      2°- O pfSense possui vários pacotes úteis, entre eles o Squid e também o Dansguardian. Sendo assim, você tem duas opções:

      2.a) Instalar e configurar o Squid e o Dansguardian no pfSense.

      2.b) Instalar apenas o Squid no pfSense e configurar o Squid do pfSense para usar o Proxy já existente. Essa opção é conhecida como Upstream Proxy.

  4. Resumindo,

    Não estou desfazendo do seu tutorial, alias para leigos é bem interessante, estou interessado nao solucao pfSense.

    Resumindo, não bloqueia nada, seria a mesma coisa que colocar um DROP ou REJECT no IPTABLES, alias o que é feito de forma mascarada para o usuario.

    Não existe alguma forma de bloquear por dominio? Se for pra ficar procurando os IPs de cada site que quero bloquear continuo usando o IPTABLES que vai dar na mesma.

    • kemp says:

      Olá Antonio Carlos,
      Não entendi essa frase sua:

      … estou interessado nao solucao pfSense.

      Essa frase acima é dúbia. Afinal, está ou não interessado no pfSense?
      Não publicamos Tutoriais apenas por publicar. Todos os Tutoriais foram devidamente testados e há vários comentários, tanto aqui no Blog, quanto no fórum do pfSense, que atestam isso.
      Se não funcionou para você, revise e atenção a disposição das Regras.
      E também, não estamos pregando que o pfSense é a solução perfeita. Nenhuma é, e cada Admin tem lá suas preferências. Se a sua é pelo IPTABLES, permaneça usando-o. Afinal, é tão eficiente quanto o pfSense.
      Se você tem maiores dúvidas, abra um Tópico no fórum do pfSense. Lá é o melhor lugar para discussões. O Blog não é o espaço mais adequado para essa finalidade.

      • Ola,

        Me desculpe pela forma em que postei, não quis em nenhum momento em desmerecer ou desfazer do post.

        Sim estou interessado no pfSense ou qualquer outra solucao que me bloqueie o https por dominio e nao por IP.

        O que eu quis dizer é que sempre vou ter que viver procurando as redes do facebook ou de qualquer outro site que eu queira bloquear o https. Ou seja hoje bloqueio algumas redes, amanhã o dito cujo que esta sendo bloqueado sobe um outro servidor com um outro IP qualquer que nao esteja na lista, ai vai todo o meu bloqueio por agua abaixo.
        Se formos analisar friamente independente de plataforma, o que estamos fazendo tanto com o IPTABLES, pfSense ou qualquer outra solução semelhante, estamos negando o acesso a determinado IP de determinada rede o que não acho uma solução muito ortodoxa, uma vez que teremos que estar sempre procurando pelos IPs dos sites a serem bloqueados.

        Mais uma vez peço desculpas pela form em que postei anteriormente.

        Atenciosamente.
        Antonio Carlos.

        • kemp says:

          Olá Antonio Carlos, seja bem vindo de volta.
          Para bloqueios por domínio eu costumo utilizar o Squid, inserindo os domínios no Campo Blacklist em Proxy server > Access control. Nesse caso, o Squid precisa estar em modo Normal. Em modo Transparente, ele não filtra HTTPS. Muita gente utiliza o Squid em conjunto com o SquidGuard e/ou DansGuardian para essa finalidade. Eu particularmente, só tenho utilizado o pfSense com o Squid. Nos clientes que possuo, não tive a necessidade de utilizar SquidGuard ou DansGuardian, uma vez que a política nesses clientes é de bloqueio generalizado, só liberando acesso às URLs necessárias ao trabalho.
          Há quem afirme que, inserir domínio no Alias, do tipo Host, a partir da versão 2.0.1 Release, funciona. Eu nunca consegui dessa forma, portanto tenho minhas dúvidas. Basta levantar essa questão no fórum.
          Realmente, é bem mais fácil utilizar domínios para bloqueios, contudo em alguns casos não funciona e você deve saber disso. Vide o Ultrasurf, só para citar. Portanto, a primeira intenção dos Tutoriais sobre o MSN e HTTPS, foi demonstrar como se utiliza o Aliases juntamente com as Regras do firewall. Pouco se via isso na Internet e muitos usuários do pfSense tinham dúvidas sobre a sua utilização, ao contrário do Squid que tem muito mais informações na Web. Além disso, como bem disse nosso colega de fórum, JackL:

          “De qualquer forma, não existe uma forma estática de se administrar redes modernas… Meter a mão na massa e atualizar os esquemas que tentam aplicar a política da empresa, é inevitável”.

  5. Guilherme says:

    Meu caro, bom dia.

    Parabéns pelo artigo, muito didático e explicativo. Só que eu tenho uma duvida, como faço pra bloquear “alguns” sites em https. Por exemplo, no meu caso eu só preciso bloquear o https://facebook.com e o https://outlook.com.

    Pode me ajudar nessa?

    Obrigado

    • kemp says:

      Olá Guilherme,
      Para o facebook, siga esse nosso tutorial:
      http://nextsense.com.br/blog/archives/402
      Quanto ao Outlook, você vai precisar das networks dele. O procedimento é o mesmo do tutorial de bloqueio do Facebook. Nunca precisei bloquear as networks do Outlook, então não tenho a listagem. Nesse site abaixo, você consegue as networks. Aproveite para pesquisar, atualizar e reverificar as redes do facebook:
      http://bgp.he.net/

  6. Leandro says:

    Olá, parabéns pelo post, a explicação está ótima.
    Gostaria de saber se você teria ou sabe como conseguir a lista com ips de sites de bancos, pois preciso implantar este bloqueio de https aqui na empresa e está difícil conseguir a lista com ips principalmente de bancos.
    se puder ajudar, fico agradecido.

    Abraço

    • kemp says:

      Olá Leandro, seja bem vindo!
      No próprio post eu expliquei como obter as networks, e os IPs correspondentes, dos Bancos. Não só dos Bancos mas de qualquer domínio.
      Veja no quarto parágrafo: “Uma boa fonte para descobrir as Redes associadas a um domínio é a Hurricane Electric Internet Services. Basta colocar o domínio no campo Search disponibilizado na página e efetuar a busca“. Reveja o post: O link da Hurricane Electric Internet Services está lá, nesse mesmo texto acima.
      Obrigado pela visita, pelos elogios e fique antenado no blog.

Leave a Reply

Your email address will not be published. Required fields are marked *


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>