Temos um cliente que exige que nos conectemos à rede dele através do portal web que roda “Pulse Connect Secure”. Assim que faço a autenticação, posso me conectar aos nossos dispositivos na rede deles.
Estou acostumado com clientes VPN “tradicionais”, onde ao fazer login com usuário/senha recebo um endereço IP, máscara de sub-rede, gateway e uma rota adicionada à minha máquina. Isso não acontece quando faço login no portal web do Pulse Connect Secure, mas ainda consigo conectar aos nossos dispositivos na rede deles via Microsoft RDP.
Como essa magia funciona? Tenho tentado encontrar detalhes técnicos de alto nível procurando no Google, mas não estou achando muito. Alguém poderia compartilhar seu conhecimento? Talvez alguns termos que eu possa procurar que expliquem como essa mágica funciona? A única coisa que consigo pensar é que o arquivo .exe que roda na minha máquina redireciona o tráfego para a rede deles, mas como esse .exe intercepta o tráfego de rede do mstsc.exe? É uma espécie de wrapper TCP?
Pulse Secure oferece várias opções diferentes de “VPN”. O que você está usando é conhecido como VPN sem cliente. Você faz login no site e usa vários links publicados.
Pulse Secure possui “apps” internos para certas funções, como um cliente RDP, Telnet/SSH, navegador de arquivos e outros. Tudo isso roda no próprio aparelho Pulse Secure. Alguns são applets Java, outros são HTML5.
Outros websites internos e/ou serviços são publicados com vários métodos de proxy, usando o Secure Application Manager, como WSAM (Somente Windows) e JSAM. Esses métodos lançam aplicativos no seu computador para tunelar, mas não é um adaptador VPN no dispositivo.
Também há um proxy de passagem padrão onde nada roda no seu computador, e você apenas faz proxy através da interface web do Pulse Secure para o website interno, mas não é compatível com todos os sites/webapps, então seus casos de uso tendem a ser limitados.
É PFM 
Na verdade, o sistema backend é chamado Content Intermediation Engine, que reescreve links e todo o tráfego em tempo real. Recursos mais recentes permitem que o aparelho Pulse Secure se conecte a sessões RDP usando apenas um navegador que suporte HTML5.
Se não for baseado em navegador, você pode estar usando o Pulse Secure RDP Add-On, que se conecta ao cliente MS RDP e cria um pequeno proxy. Seu cliente RDP então envia o tráfego RDP para esse proxy local, que encapsula o tráfego RDP dentro de HTTPS e envia ao aparelho Pulse Secure via HTTPS. Daí, o aparelho desenCapsula o tráfego HTTPS e encaminha para o servidor interno. Note que isso é uma funcionalidade separada do WSAM/JSAM, que são mais robustos e suportam encaminhamento de destinos/portas/utilizam mecanismos diferentes para capturar o tráfego a ser enviado à VPN SSL. O ‘proxy’ de RDP requer uma máquina Windows com o cliente MS-RDP pré-instalado.
A configuração pode ser tão simples quanto habilitar o bookmark, ou pode ficar tão complexa quanto passar suas credenciais de login do VPN para o servidor RDP e lançar aplicativos específicos via RemoteApp.
Se quiser saber mais sobre as capacidades, comece aqui com o guia de administração. Veja especialmente o capítulo de Serviços de Terminal. Há também treinamento pago que recomendo fortemente para quem administra uma dessas caixas.
Fonte: Administrador Pulse Secure desde 2006 (11 anos!), Certificado Connect Secure/Policy Secure, e Instrutor Pulse Secure.
Os endereços dos servidores na rede deles são endereços privados (rfc1918) quando você acessa eles?
Uma maneira típica de implementar VPNs é com uma interface virtual e rotas indicando para ela.
Outra forma é instalar um driver Winsock Layered Service Provider ou Windows Filtering Platform que direciona tráfego especificado através do túnel sem tocar na tabela de roteamento tradicional.
Dado que muitos filtros WFP instalados causariam problemas com Pulse Secure no Windows 7, parece que essa é realmente a implementação.
Você está acessando a página web do Pulse e clicando em um link que inicia uma sessão de desktop remoto “de dentro” do navegador?
Se sim, isso está usando RDP - só que eles tunelam isso pela porta SSL :443 e usam um cliente Java ou Active X.
Pulse também suporta uma configuração de VPN mais tradicional onde você recebe um IP privado dentro da rede deles, mas não precisa. Pode apresentar conexões de Desktop Remoto, páginas web interna, Terminal/SSH/Telnet, e outros, diretamente pelo navegador sem VPN usando clientes Java ou Active X.
Eu gerencio um Pulse Secure, então sei disso na prática.
Foi necessário você baixar algum tipo de cliente ou rodar algum executável em algum momento?
Pulse = Juniper SRX
É uma VPN IPSec automática dinâmica e agressiva.
Isso não acontece quando faço login no portal web do Pulse Connect Secure, ainda assim consigo conectar aos nossos dispositivos na rede deles via Microsoft RDP.
Você quer dizer split tunnel? Cisco e outros também permitem dividir túnel.
Obrigado pela resposta! Vou ler a página que você vinculou e espero que isso me dê a compreensão que procuro.
Ótima explicação, obrigado! Vou ler o guia de administração a seguir, isso é fascinante para mim.
Acho que a peça que estou tentando entender é como isso consegue interceptar/redirecionar meu tráfego sem adicionar um endereço IP na minha máquina, uma nova rota de rede, um novo adaptador de rede virtual, etc. Não só consegue interceptar/redirecionar minha ferramenta mstsc.exe, mas também netcat.exe, tcping.exe, nmap.exe, etc. Como?
Por exemplo, meu computador tem apenas 1 endereço IP, 192.168.1.100 na rede /24, gateway padrão 192.168.1.1. Se tento conectar na porta 5900/vnc no IP 10.11.12.13, não consigo. Testes com netcat/tcping/nmap na porta 5900 no IP 10.11.12.13 falham ou mostram a porta fechada, etc. Depois de fazer login no portal web, ainda tenho apenas um endereço IP, a mesma placa de rede de antes, mesma tabela de rotas, e assim por diante. Porém, netcat/tcping/nmap mostram que a porta 5900 no IP 10.11.12.13 está aberta e ouvindo, e posso conectar com um cliente VNC, tudo sem adicionar um adaptador de rede/endereço IP/entrada de rota, etc. Como funciona essa mágica?
Acho que essa é mais uma questão de Windows do que de rede, mas estou muito curioso. Pensava estar ganhando uma compreensão intermediária de redes, até que apareceu algo assim e mostrou que há um outro mundo do qual eu não sabia nada.
Isso é exatamente o que estou falando, não há diferença na saída do “ipconfig /all” e “route print” antes de fazer login versus após acessar o portal web.
Não precisa disso apenas para acesso remoto de desktop, pode usar um cliente Java e tunelar RDP via SSL, e parece que o OP está fazendo isso.
Ótimas informações, isso certamente me dá alguns termos-chave e nomes de tecnologias que posso pesquisar e estudar mais a fundo. Obrigado!
Um de nossos clientes tem uma página web Pulse com links clicáveis. Mas outro cliente tem uma página web Pulse e posso acessar nossos dispositivos remotos usando o VNC.exe ou mstsc.exe nativos do meu computador. Essa é a que basicamente parece magia para mim agora e estou tentando pesquisar e entender.
Sim, havia cerca de 2-3 componentes que ele instalou, um “host checker” e alguns outros. Tenho certeza de que são esses componentes que estão fazendo essa mágica acontecer, só estou tentando entender como eles fazem isso.
O que quis dizer foi que, após fazer login no portal web deles, minha máquina não recebe um endereço IP adicional, gateway, ou rota de rede. Ainda assim, consigo me conectar às máquinas remotas. Não entendo como…