Proxy transparente + filtro SSL + E2guardian - Solução definitiva



  • Bom dia gente,
    Tenho buscado o que acredito ser o "melhor dos mundos" do que temos disponível hoje e acredito que seja útil para muita gente.

    • Proxy transparente ou via WPAD.
    • Filtro para paginas SSL, sem precisar instalar certificado em todos dispositivos.
    • E2guardian já que o squidguard ficou muito defasado.

    Tentei um lab seguindo o tutorial abaixo, mas caio no problema de alguns sites HTTPS estarem apresentando problema intermitente e não achei uma solução.

    https://eliasmoraispereira.wordpress.com/2017/06/21/pfsense-proxy-transparente-mitm-no-modo-splice-all-com-squid-e2guardian/

    Acredito que esse cenário é o básico para muitos ambientes.
    Agradeço a ajuda!



  • Boa tarde!

    Dê uma olhada na versão 5 do E2guardian que o Marcelo está disponibilizando pra comunidade, não precisa do squid para rodar e faz o ssl MITM.





  • Obrigado pessoal,
    Estou iniciando agora um lab com a versão 5 do e2guardian.
    Mas de qualquer forma preciso instalar o certificado nos dispositivos correto?
    Queria evitar isso, pois não sei como dispositivos como tablet's e celulares se comportam com essa configuração.



  • @remix:

    Mas de qualquer forma preciso instalar o certificado nos dispositivos correto?

    Não. você pode filtrar sem instalar nada no cliente. A única diferença é que sem o certificado, o erro vem como conexão recusada no lugar de uma página de erro formatada. Sem interceptar também impossibilita a varredura do conteúdo da página.

    @remix:

    Queria evitar isso, pois não sei como dispositivos como tablet's e celulares se comportam com essa configuração.

    Habilite o filtro ssl na aba daemon do e2guardian e não marque a interceptação de ssl no(s) grupo(s) onde estão os tablets/celulares.



  • Tentei colocar ontem em produção o servidor, no lab estava funcionando bem.
    Agora esta bloqueando todo trafego SSL, quando olho no realtime ele informa:

    DENIED Failed to negotiate SLL connection

    Revisei todos os itens e aparenta estar tudo normal  :(



  • @remix:

    DENIED Failed to negotiate SLL connection

    Interceptando, transparente? Qual o formato do log está usando e o  aparece neles?



  • Sim, transparente.

    18.04.01 21:02:43 192.168.1.27 https://66.110.49.34:443 403 - Default DENIED Failed to negotiate ssl connection to client
    18.04.01 21:02:42 192.168.1.27 https://66.110.49.36:443 403 - Default DENIED Failed to negotiate ssl connection to client
    18.04.01 21:02:42 192.168.1.27 https://38.113.165.110:443 403 - Default DENIED Failed to negotiate ssl connection to client



  • o formato do log é e2guardian.
    Subi uma instalação nova, apenas com o e2guardian, e ainda se encontra muito instável para mim.
    Continua com esses logs de negotiate SSL e notei também nos logs o bloqueio do dropbox, sendo que não especifiquei nada de bloqueio para esse dominio  :-\




  • Que tipo de trafego é esse? https://medidor.alterna.com.br:5060 https em porta sip? Como isso chegou no proxy?

    Esse site não é acessível nessa porta, pelo menos a partir da minha rede




  • Neste caso é o teste do speedtest.
    beta.speedtest.net
    Mas acontece em outros sites também…



  • Pelo o que estou entendendo do erro que recebe, pode traduzir Failed to negotiate ssl com sem acesso ao site para ler o certificado



  • Eu entendi como falha ao negociar conexão SSL…
    Não sei onde pode estar errado, já segui vários tutoriais...



  • @remix:

    Eu entendi como falha ao negociar conexão SSL…
    Não sei onde pode estar errado, já segui vários tutoriais...

    Se o site não responde, não tem como negociar ssl. Monitore via tcpdump para ver se o site responde à conexão ou não.

    Por exemplo:
    Se sua interface wan for em0 e o site for este mesmo do post anterior

    nslookup medidor.alterna.com.br retorna 177.53.168.9

    tcpdump -ni em0 host 177.53.168.9

    ou monitore seu ip

    tcpdump -ni em1 host 192.168.1.20 (exemplo)



  • Muito obrigado pela ajuda Marcelo!
    Identifiquei que esse erro ocorria por instabilidade na internet, depois que solucionei o problema com a internet, funcionou perfeito!

    Eu subi o servidor hoje e fiz todos os testes ontem e estava OK.
    Porém hoje quando os usuários começaram a usar o acesso a internet ficou superlento.
    São cerca de 70 usuarios, o servidor fica com uso de cerca de 20% de CPU e tem bastante memoria disponível, tem alguma ideia do que pode ser?

    Obrigado mais uma vez!



  • @remix:

    Porém hoje quando os usuários começaram a usar o acesso a internet ficou superlento.

    aumenta a quantidade de processos. A instalação vem com 256 padrão. suba pra 1024 por exemplo.

    Adicione também o widget do e2guardian no dashboard, lá da pra acompanhar a quantidade de requisições, requisições por segundo, etc…




  • Cara eu imaginava que era isso, mas na correria procurei e não achei onde aumentar. Agora está show!
    Quando eu faço uma alteração nas acl's, preciso limpar reiniciar o serviço e limpar o cache como no squid?



  • @remix:

    Quando eu faço uma alteração nas acl's, preciso limpar reiniciar o serviço e limpar o cache como no squid?

    Não. Só salva, aplica e em poucos segundos o e2guardian recarrega.



  • Obrigado Mestre, você tem ajudado demais!

    Vou deixar aqui uma info que demorei para achar, o significado de cada coluna do widget do e2guardian, talvez seja util para alguém, assim fica bem simples monitorar a performance.

    1. Time  - in unix format

    2. busy - Number of httpworker threads busy handling connections at current time

    3. httpwQ - Number of connections waiting in queue for a worker thread. 
      In normal use this will be 0 (and on occasion 1 or 2) but will increase once
      all worker threads are busy.  Lowish numbers are OK for transitory peaks. 
      High numbers indicate an overloaded system.  If there is still memory and
      cpu available, then httpworkers may be increased.

    4. logQ - Number of messages waiting to be logged to disk.  In normal use 0. 
      An increase in number may indicate system overloading, but should not
      otherwise affect performance.

    5. conx - number of connections handled since last stats line.

    6. conx/s - average connections per sec over period since last stats line.

    7. reqs - indication of number of requests handled since last stats line. 
      Only an indication as requests made over https tunnels (i.e. non-MITM) cannot
      be counted, so each https tunnel is counted as one request.

    8. reqs/s - average requests per sec over period since last stats line.

    9. maxfd - Indication of maximum number file descriptor in use

    10. LCcnt - Number of List Option Containers in use. A new List Option Container
      is created at start up and on gentle restart.  Old containers are deleted
      once all connections still using it have finished.  Normally figure will be
      one, but may rise after a gentle restart(s) and should return to one after a
      period of time.



  • Estou trabalhando agora nesses 3 casos.

    1- Acompanhando pelo log e aparece acesso negado para um subdominio do nosso sistema.
    Já adicionei o dominio no exceptions do sitelisturl, mas não funcionou.
    Agora eu adicionei o endereço dos dois sistemas no campo Bypass Proxy for These Destination IPs, vou testar amanhã se funcionou.

    2- Estava usando o log format file do squid, mudei para o formato e2guardian para tentar identificar pq nosso sistema estava bloqueando, mas na aba real time não aparece nada.

    3- Preciso Mascarar a conexão que sai por uma 3ª placa, criei as rotas estaticas e o NAT outbound. Mas quando mando um tracert da rede interna o primeiro salto mostra o IP do Default GW, acredito que deveria ser o IP da 3ª placa, até pq ele sai pela rota certa.



  • Boa tarde amigos, a última versão do e2guardian com o sarg está excelente!
    Subi em produção na sexta, mas notei que houve uma queda muito grande no meu tráfego de internet, com alguns usuários reclamando de lentidão em alguns momentos.
    Já aumentei os workers para 2000 em uma rede com cerca de 60 usuário, porém sem sucesso.
    Utilizo um Mikrotik antes do firewall para fazer o balanceamento de 2 links.

    Uma coisa que não consegui fazer funcionar ainda é o redirecionamento de porta... Eu redireciono do Mikrotik pro pfsense mas não funciona, mas antes funcionava de boa.
    Não sei se preciso criar uma regra no firewall para aceitar essa conexão, se puderem ajudar ☹



  • A configuração é estações -> pfSense -> Mikrotik -> Internet ?



  • Exato Marcelo



  • Se for nat de entrada, a melhor forma de ver onde está parando é via tcpdump. Tanto no pfSense quanto no Mikrotik.



  • Obrigado Marcelo, eu consegui via TCPDUMP ver que os pacotes chegam no meu firewall, então acho que a parte de encaminhamento do Mikrotik está OK.
    Estou fazendo uma regra para acessar o firewall de fora, via ssh inicialmente, criei um regra no firewall para aceitar qlq conexão na porta 822, mas não funciona.
    Existe algum bloqueio para acesso externo?



  • Rodou o tcpdump na lan tambem?

    Tem alguma regra da wan forçando algum gateway?



  • @marcelloc Rodei e não captura nenhum pacote na LAN.
    Desculpa, mas não entendi sua segunda pergunta, eu possuo apenas o gateway padrão configurado.



  • @remix said in Proxy transparente + filtro SSL + E2guardian - Solução definitiva:

    @marcelloc Rodei e não captura nenhum pacote na LAN.
    Desculpa, mas não entendi sua segunda pergunta, eu possuo apenas o gateway padrão configurado.

    A segunda pergunta é porque as vezes na tentativa de configurar o load balance no pfSense, alguns sysadmins se confundem e marcam regras na wan com o load balance, inviabilizando o tráfego.



  • Entendi, mas não tenho load balancer nesse pfsense.



  • Amigo consegui!
    O problema era no balanceamento do mikrotik, removi de destino ao pfsense do balance e foi 100%!
    Muitissimo obrigado por toda ajuda.
    Estou te enviando umas cervejas! 😁 😁 😁



  • Veja esse vídeo:

    https://www.youtube.com/watch?v=rHmvAtt5Ybw

    Ele é bem simples e eficaz, já testei em lab e roda 100%



  • navegação com o liberado e com a ajuda de squid e squidguard e blocos o detalhe é que se você não limpar os cookies os navegadores deixam o conteúdo passar e parece que o firewall não fez o seu trabalho limpar os kookies e não tem como resolver



  • This post is deleted!

 

© Copyright 2002 - 2018 Rubicon Communications, LLC | Privacy Policy