SSH & SOCKS внутри зашифрованного туннеля HTTPS с использованием Windows Apache Server или что?

953
DjIns1ght

Я часами просматривал Super / Stack и другие сайты и пока не нашел ответа. Итак, я собираюсь дать ему шанс спросить здесь снова. Я хотел бы указать на некоторые частичные ответы, которые я нашел в ссылках, но они настолько запутанные или наполовину ответили, что я думаю, что это может ухудшить ситуацию для любого, кто читает это.

До сих пор я смог настроить сервер Apache, работающий на моем локальном ПК, с самозаверяющим сертификатом. У меня есть порт маршрутизатора, перенаправляющий 443 на этот сервер. У меня также есть OpenSSH, работающий на порту 22 на моем локальном ПК. Моя цель:

  1. Я хочу иметь возможность подключиться из Putty / WinSCP к моему компьютеру через порт 22, туннелироваться через соединение 443 SSL, и просматривать через SOCKS, как если бы я был на указанном компьютере.
  2. Я мог бы попробовать Stunnel, SSHL, HTTPProxy, Httptunnel, Corkscrew на стороне клиента или все, что кто-то может четко объяснить, как это сделать (или ссылку на руководство), но он должен работать в Windows.
  3. Я предпочел бы настроить сервер Apache (mod_proxy / proxy pass?), Чтобы (самостоятельно?) Переадресовывать входящие 443 на порт 22 для OpenSSH, чтобы поднять соединение и SOCKS для просмотра.

    ПРИМЕЧАНИЕ: вот описание потока. Я не могу использовать VPN (уже на одном) и не могу использовать 443 на SSH, потому что FW уровня 7 видит протокол SSH и блокирует его. Клиентский ПК уже подключен к VPN, поэтому использование VPN невозможно.

Win PcA> Win ServerB что-то работает (Apache / Nginx?)

Затем, пока HTTPS активен и зашифрован, отправьте:

Win PcA> Win ServerB с запущенным OpenSSH через WinSCP или Putty для SFTP

&

Win PcA> Win ServerB с запущенным OpenSSH через Putty для SOCKS через браузер

В основном это для целей знания, но я понимаю, что это также для FW штамповки. Поскольку это все мои компьютеры, я могу устанавливать программное обеспечение на стороне клиента, если это необходимо, но лучше всего не иметь никакого программного обеспечения, кроме Putty / WinSCP и браузера, я могу изменить порт прокси на стороне клиента. Таким образом, если мне когда-либо понадобится запустить это с ПК, который мне не принадлежит, я, скорее всего, смогу избежать использования putty / WinSCP, не поднимая флаги и не нуждаясь в правах администратора.

Я слышал о Squid и Ngnix для серверной части в качестве прокси-серверов, но в настоящее время у меня работает Apache 2.4. Я мог бы изменить это, я думаю. По сути, я хочу создать своего рода просмотр в Интернете (через прокси-сервер SOCKS) и конечную точку передачи файлов (через 22 полностью скрытых в SSL), которые я мог бы получить из любого места, которые не будут блокироваться, пока сеть, в которой я нахожусь, разрешает соединения SSL ,

Руководства по настройке Apache и самозаверяющий сертификат позволили мне зайти так далеко ... теперь я застрял со слишком многими вариантами. Спасибо за прочтение.

Изменить: Есть такие вопросы без ответов, и с запутанными ответами. Но ничего для меня не завершено. Кроме того, я не уверен, что мой вопрос отформатирован правильно. Новое здесь.

1
Итак, вы спрашиваете, как мне это сделать (X - клиент, а Y - компьютер): `X (браузер) -http / https-> X (ssh socks proxy) -ssh-> X (apache) -ssl- > Y (сервер apache) -ssh-> Y (сервер ssh) -http / https-> internet` TheGathron 7 лет назад 0
Я хочу, чтобы туннель SSL перешел на домашний сервер ПК ... затем SSH или SOCKs внутри туннеля SSL DjIns1ght 7 лет назад 0
Измените вопрос, чтобы быть более понятным о том, что вы хотите и о проблеме. Добавьте ОС каждой машины тоже. TheGathron 7 лет назад 0
Обновлено. Это лучше? DjIns1ght 7 лет назад 0
Да. У вас есть машина Linux в сети? TheGathron 7 лет назад 0
Я могу использовать Linux, если мне нужно, или запустить виртуальную машину Kali Linux внутри Windows. Я предпочитаю Windows-машину как сервер как минимум. Но я открыт для идей. На данный момент я почти хочу видеть, что это вообще возможно. DjIns1ght 7 лет назад 0

2 ответа на вопрос

1
user1016274

SSH уже использует SSL для шифрования трафика. Чтобы использовать (часто) разрешенный HTTPS-порт tcp / 443 для подключения к домашнему SSH-серверу, вам нужно будет только настроить ваш SSH-клиент и SSH-сервер для использования порта tcp / 443. WinSCP как клиент позволяет это. В зависимости от программного обеспечения, используемого для сервера SSH, это также может быть возможным, а также установка собственного сертификата SSL.

Для этого вам не нужно устанавливать Apache. Фактически, поскольку Apache прервал бы соединение SSL, зашифрованный трафик оттуда на локальный сервер SSH был бы невозможен (но, например, незашифрованный telnet).

Если вам нужно избежать распознавания приложений, можно подумать о создании туннеля SSL VPN, через который вы бы запустили туннель SSH ... часть которого вы упомянули в Apache + OpenSSH. Вам понадобится дополнительное программное обеспечение для сервера SSL VPN, такое как (?) OpenVPN, которое вообще не будет частью Apache.

Близко, но не совсем. На ПК, где вы уже используете VPN, это не будет работать. Представьте, что вы вынуждены подключиться через VPN, которая разрешает только SSL в Интернет. Нет SSH и нет другого VPN доступны. Мне нужен туннель SSL, через который SSH и SOCKS могут проходить сквозь брандмауэр уровня 7, который может блокировать протоколы SSH. DjIns1ght 7 лет назад 0
0
TheGathron

Я не знаю много о виртуальных машинах, поэтому я предполагаю, что вы можете иметь дело с проблемами с виртуальными машинами. Это руководство должно помочь.

Вы настроите сервер stunnel4, как описано в руководстве (измените соединение на 127.0.0.1:22 и примите 443), а затем сделайте ssh-сервер нормальным.

После того, как перейдите к загрузке клиентского ПК и Stunnel Client, щелкните правой кнопкой мыши значок в трее и перейдите к Изменить конфигурацию, скопируйте это (измените ip):

[ssh] client = yes accept = 127.0.0.1:22 connect = [ip address of the server]:443 

Теперь вернитесь в меню и нажмите Обновить конфигурацию . И вы сделали; Вы должны просто подключиться к ssh, но используя 127.0.0.1:22.

Я вижу, что это правильный вариант. Я скачал сервер, но мне трудно найти Windows-клиент для подключения к серверу. На самом деле я стараюсь избегать использования какого-либо программного обеспечения на стороне клиента, кроме Putty или WinSCP. Я думаю, что из того, что я читаю, лучше всего использовать сервер Apache в режиме Mod_proxy. Я нашел это руководство: https://www.digitalocean.com/community/tutorials/how-to-use-apache-http-server-as-reverse-proxy-using-mod_proxy-extension Phew..tiring. DjIns1ght 7 лет назад 0

Похожие вопросы