3

Я в строгой корпоративной среде. Трафик https отправляется через внутренний прокси-сервер (в данном примере это 10.10.04.33:8443), который достаточно умен, чтобы блокировать ssh'ing напрямую на ssh.glakspod.org:443.

Я могу выйти через прокси-туннель. Я установил apache2 VirtualHost на ssh.glakspod.org:443 таким образом:

ServerAdmin ssh@orly.glakspod.org ServerName 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>

Пока все хорошо: я подключился к прокси-серверу Apache с помощью CONNECT, а затем PuTTY и мой ssh-сервер пожали друг другу руки, и я отправился в гонку.

Однако есть две проблемы с этой настройкой:

  1. Внутренний прокси-сервер может прослушивать мой запрос CONNECT, а также видеть, что происходит SSH-квитирование. Я хочу, чтобы все соединение между моим рабочим столом и ssh.glakspod.org:443 выглядело как трафик HTTPS, независимо от того, насколько тщательно его проверяет внутренний прокси-сервер.

  2. Я не могу заставить VirtualHost быть обычным https-сайтом во время прокси. Я бы хотел, чтобы прокси сосуществовал с чем-то вроде этого: SSLEngine на SSLProxyEngine на 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>
    

Поэтому мой вопрос: как включить поддержку SSL на ssh.glakspod.org:443 VirtualHost, который будет работать с ProxyTunnel?

Я безуспешно пробовал разные комбинации флагов -e, -E и -X прокси-туннеля.

Единственное, что я нашел, - это ошибка Apache № 29744, но я не смог найти патч, который будет корректно устанавливаться на Apache Ubuntu Jaunty версии 2.2.11-2ubuntu2.6.

Заранее спасибо.

1 ответ1

3

Я собрал ответ из списка рассылки proxytunnel-users.

Сначала, глядя на отчет об ошибках Apache № 29744, вложение, содержащее патч для моей версии Apache, 2.2.11-2ubuntu2.6, было скрыто, поскольку считалось устаревшим. При нажатии на ссылку "Показать устаревшие" в правом нижнем углу окна вложений был обнаружен патч.

Так что я сделал apt-get source apache2 на своем jaunty box, исправил исходный код, сделал debuild. , , съел немного хлопьев. , , и затем сделал dpkg -i * .deb на всем, что я построил.

Теперь эти два отдельных фрагмента Apache выше живут вместе в гармонии.

Последний кусочек головоломки - как назвать прокси-туннель. Вот что сработало:

proxytunnel -q -X -p 10.10.04.33:8443 -r ssh.glakspod.org:443 -d% хост:% порт ServerAliveInterval 30

Надеюсь, что это поможет кому-то еще в будущем!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .