Uma pandemia está ocorrendo no mundo, as pessoas estão comprando papel higiênico e trigo sarraceno em escala industrial, e a maioria das empresas de TI está transferindo funcionários para um local remoto. O mesmo aconteceu com meu empregador - um escritório paraestatal alemão.Basicamente, não houve problemas, mas um de nossos funcionários há um mês, quando tudo parecia ainda não tão assustador, eu saí de férias com meus parentes no Egito e fiquei em segurança ali por causa do fechamento da fronteira. Bem, ela é saudável, um laptop funcional com ela - ela se coloca em quarentena e trabalha por meio de uma VPN. Uma semana funciona, duas ... Na terceira semana, a VPN parou de se conectar. O suporte da primeira linha verificou o lugar-comum, como uma reinicialização - não ajudou. A segunda linha começou a diagnosticar: a conexão entra em tempo limite perpétuo no estágio TLS Handshake. Desabilitou um firewall local - não ajudou. Tentamos outro carro - ele não funciona. Outro provedor não funciona. Nesse ponto, a equipe de suporte desistiu e alegremente me colocou o problema de acordo com o bom e velho princípio de "o gerente de rede é o culpado".Nós olhamos nos logs do servidor: ele não vê nenhuma tentativa de alcançá-lo depois de responder ao pacote inicial. Engraçado e bem familiar. Liguei para um funcionário, estava interessado em como eles lidam com os direitos humanos em geral e a liberdade da Internet em particular. Ele diz que as coisas estão ruins, a Internet as está bloqueando para que os camelos soluçam, e Roskomnadzor fuma nervosamente à margem. Sim ... Uma pesquisa rápida no Google mostra várias reclamações sobre problemas de VPN semelhantes no Egito desde 2017. Para completar, pergunto se o funcionário está na terra natal há mais de duas semanas nos últimos anos - não, ela diz, não esteve. O quebra-cabeça começa a tomar forma.Aumentamos uma cópia do servidor VPN corporativo em um IP branco gratuito - não há conexão. Esperado.Mudamos a porta - não há conexão. Isso é mais triste.Mudamos o protocolo - não há conexão. O quebra-cabeça se desenvolveu - à nossa frente o DPI é como um grande firewall chinês.O funcionário está triste, o chefe pergunta com tristeza: "Você é um hacker russo, faça alguma coisa". Bem ... Descubra a artilharia pesada de Darknet e gire obfsproxy.Para um servidor (CentOS 7), fica assim:~ sudo pip install virtualenv
~ cd /etc/openvpn && virtualenv venv && source venv/bin/activate
~ sudo pip install obfsproxy
~ sudo -u openvpn /etc/openvpn/venv/bin/python /etc/openvpn/venv/bin/obfsproxy obfs3 --dest=127.0.0.1:1194 server 1.2.3.4:49416
Para um cliente (MacOS) como este:~ brew install pip
~ pip install pyopenssl obfsproxy
~ obfsproxy obfs3 socks 127.0.0.1:8443
Na configuração do OpenVPN no cliente, adicione:socks-proxy-retry
socks-proxy 127.0.0.1 8443
Lucro O OpenVPN no wrapper obfsproxy não é detectado pelos algoritmos de detecção de assinaturas locais, a sessão decola, os pings vão, o tráfego é executado, o funcionário está feliz. Resta apenas adicionar a parte do cliente obfsproxy ao carregamento automático dessa maneira "óbvia" (eu odeio papoilas). Eu digo adeus ao prisioneiro em alívio e escrevo uma carta para apoiar no espírito de "esse problema foi resolvido assim, mas não posso garantir a estabilidade, e você só pode usar essa solução alternativa se não houver outra saída".Aparentemente, no Egito, existe um lugar para o DPI astuto, que inicialmente não bloqueia a comunicação com novos assinantes e / ou o tráfego para novos hosts, referindo-os à categoria condicional de "turistas". E após o término de um determinado tempo limite, o usuário é classificado como "próprio" e corta o tráfego com prazer para agradar os reis locais.