Eu sempre usei o truque simples para ignorar a maioria dos firewalls, o que me impedia de usar qualquer porta. Eu simplesmente abri o ssh em um dos meus servidores na porta 443 e encapsulei todo o tráfego por lá.
No entanto, agora estou em uma rede que possui firewall que nunca vi antes e nem sabia que era possível.
Nesta rede, você pode usar a porta 443 apenas para tráfego legítimo de servidores da web. Se eu abrir o ssh, ou qualquer outra coisa na porta 443 e tentar conectar-se lá a partir desta rede, ele será morto imediatamente. Se eu iniciar o apache nesse servidor, ele funcionará.
Como isso é possível? Existem firewalls super sofisticados capazes de analisar o tráfego criptografado para verificar se é tráfego https legítimo? Quão?
networking
ssh
firewall
Petr
fonte
fonte
Respostas:
Sim, e eles não precisam de mágica aqui, apenas uma correspondência trivial no conteúdo do pacote TCP. Embora SSH e TLS (SSL) criptografar as cargas , os cabeçalhos de protocolo próprios são ainda distinguíveis e muito diferentes umas das outras. Por exemplo, uma conexão SSHv2 sempre começa com o envio do cliente
SSH-2.0-(client name and version)
. Da mesma forma, embora seu firewall não possa realmente saber se a conexão TLS carrega HTTP dentro, ele pode reconhecer o próprio TLS .Essa inspeção das camadas acima do TCP geralmente se enquadra na "Deep Packet Inspection", um recurso relativamente comum.
Uma maneira óbvia de contornar isso é encapsular o SSH no TLS - por exemplo, usando stunnel, haproxy ou sniproxy. (Além do encapsulamento simples, em que a porta 443 é dedicada ao SSH sobre TLS, eles também podem multiplexar SSH / HTTP / outros protocolos na mesma porta, com base no SNI e no ALPN.)
Embora isso nem sempre anule a análise de tráfego realmente sofisticada, ainda contornaria a maioria dos filtros que apenas verificam "isso parece um cabeçalho TLS".
E depois há o tipo irritante de firewalls - os que interceptam o TLS para descriptografar e criptografar novamente todo o tráfego. Eles podem realmente ver dentro do TLS e podem passar solicitações HTTP enquanto bloqueiam todo o resto. (Observe que alguns programas antivírus também fazem a mesma coisa.) Você pode reconhecer esse tipo observando os certificados do servidor; todos os certificados gerados por proxy têm a mesma aparência e geralmente não passam na validação, enquanto os certificados reais são emitidos por várias CAs diferentes.
fonte