Suporte SSL com Apache e Proxytunnel

3

Estou dentro de um ambiente corporativo estrito. O tráfego de https sai por meio de um proxy interno (para este exemplo é 10.10.04.33:8443) que é inteligente o suficiente para bloquear o ssh'ing diretamente para ssh.glakspod.org:443.

Eu posso sair via proxytunnel. Eu configurei um apache2 VirtualHost em ssh.glakspod.org:443 assim:

        ServerAdmin [email protected]         NomeServidor ssh.glakspod.org

    <!-- Proxy Section -->
    <!-- Used in conjunction with ProxyTunnel -->
    <!-- proxytunnel -q -p 10.10.04.33:8443 -r ssh.glakspod.org:443 -d %host:%port -->
    ProxyRequests on
    ProxyVia on
    AllowCONNECT 22
    <Proxy *>
            Order deny,allow
            Deny from all
            Allow from 74.101
    </Proxy>

Até aí tudo bem: eu acessei o proxy Apache com um CONNECT e depois o PuTTY e o meu servidor ssh apertam as mãos e eu saio para as corridas.

Existem, no entanto, dois problemas com esta configuração:

  1. O servidor proxy interno pode detectar minha solicitação CONNECT e também ver se está ocorrendo um handshake SSH. Eu quero que a conexão inteira entre minha área de trabalho e ssh.glakspod.org:443 se pareça com o tráfego HTTPS, não importando o quanto o proxy interno o inspecione.

  2. Não consigo fazer com que o VirtualHost seja um site https regular enquanto estiver fazendo proxy. Eu gostaria que o proxy coexistisse com algo assim:     SSLEngine on     SSLProxyEngine on     SSLCertificateFile /path/to/ca/samapache.crt     SSLCertificateKeyFile /path/to/ca/samapache.key     SSLCACertificateFile /path/to/ca/ca.crt

    DocumentRoot /mnt/wallabee/www/html
    <Directory /mnt/wallabee/www/html/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    </Directory>
    
    <!-- Need a valid client cert to get into the sanctum -->
    <Directory /mnt/wallabee/www/html/sanctum>
            SSLVerifyClient require
            SSLOptions +FakeBasicAuth +ExportCertData
            SSLVerifyDepth 1
    </Directory>
    

Então, minha pergunta é: Como habilitar o suporte a SSL no ssh.glakspod.org:443 VirtualHost que funcionará com o ProxyTunnel?

Eu tentei várias combinações de sinalizadores -e, -E e -X do proxytunnel sem qualquer sorte.

A única pista que encontrei é o Apache Bug No. 29744, mas não consegui encontrar um patch que será instalado corretamente no Apache do Ubuntu Jaunty 2.2.11-2ubuntu2.6.

Obrigado antecipadamente.

    
por whuppy 25.05.2010 / 16:12

1 resposta

3

Eu reuni a resposta da lista de usuários proxytunnel-users.

Primeiro, olhando para o número 29744 do bugreport do Apache, o anexo contendo o patch da minha versão do Apache, 2.2.11-2ubuntu2.6, estava oculto porque era considerado obsoleto. Clicar no link "Mostrar Obsoleto" no canto inferior direito da caixa de anexos revelou o patch.

Então eu fiz um apt-get source apache2 na minha caixa jaunty, remendo a fonte, fiz um debuild. . . Comi um pouco de cereal. . . e então fiz um dpkg -i * .deb em tudo que eu criei.

Agora, esses dois fragmentos do Apache acima convivem em harmonia.

A última peça do quebra-cabeça é como chamar proxytunnel. Veja o que funcionou:

proxytunnel -q -X -p 10.10.04.33:8443 -r ssh.glakspod.org:443 -d% host:% porta ServerAliveInterval 30

Espero que isso ajude alguém mais adiante!

    
por 26.05.2010 / 22:24