
Я потратил часы на просмотр Super/Stack и других сайтов, но так и не нашел ответа. Поэтому я собираюсь снова задать вопрос здесь. Я бы указал на некоторые частичные ответы, которые я нашел в ссылках, но они настолько запутанные или полуответные, что я думаю, что это может ухудшить положение для тех, кто это читает.
До сих пор мне удалось настроить сервер Apache, работающий на моем локальном ПК с самоподписанным сертификатом. У меня есть порт маршрутизатора, перенаправляющий 443 на этот сервер. У меня также есть OpenSSH, работающий на порту 22 на моем локальном ПК. Моя цель:
Я хочу иметь возможность подключаться из Putty/WinSCP к моему ПК через порт 22, туннелируемый через соединение SSL 443, и просматривать веб-страницы через SOCKS, как будто я нахожусь на этом ПК.
Я мог бы попробовать Stunnel, SSHL, HTTPProxy, Httptunnel, клиентскую часть Corkscrew или что-то еще, что кто-то может четко объяснить, как сделать (или дать ссылку на руководство), но это должно работать на Windows.
Я бы предпочел настроить сервер Apache (mod_proxy / proxy pass?) так, чтобы он (самостоятельно?) перенаправлял входящие пакеты 443 на порт 22, чтобы OpenSSH мог установить соединение, а SOCKS — для просмотра.
ПРИМЕЧАНИЕ: Вот описание потока. Я не могу использовать VPN (уже подключен) и не могу использовать 443 на SSH, потому что FW уровня 7 видит протокол SSH и блокирует его. Клиентский ПК уже подключен к VPN, поэтому VPN использовать нельзя.
Win PcA > Win ServerB, на котором что-то запущено (Apache/Nginx?) {SSL}
Затем, пока HTTPS активен и зашифрован, отправьте:
Win PcA > Win ServerB с запущенным OpenSSH {SSH} через WinSCP или Putty для SFTP
&
Win PcA > Win ServerB с запущенным OpenSSH {SSH} через Putty для SOCKS через браузер
Это в основном для ознакомления, но я понимаю, что это также для пробивки прошивки. Поскольку это все мои компьютеры, я могу установить программное обеспечение на стороне клиента, если это необходимо, но лучше всего было бы не иметь никакого программного обеспечения, кроме Putty/WinSCP и браузера, я могу изменить порт прокси на стороне клиента. Таким образом, если мне когда-нибудь придется запустить это с ПК, которым я не владею, я, скорее всего, смогу обойтись putty/WinSCP без поднятия флагов или необходимости в правах администратора.
Я слышал о Squid и Ngnix для серверной стороны в качестве прокси-серверов, но сейчас у меня запущен Apache 2.4. Я думаю, я мог бы это изменить. По сути, я хочу создать своего рода просмотр Inet (через SOCKS-прокси) и конечную точку передачи файлов (через 22, полностью скрытую в SSL), к которой я мог бы получить доступ из любой точки мира, которая не будет заблокирована, пока сеть, в которой я нахожусь, разрешает SSL-соединения.
Руководства по настройке Apache и самоподписанного сертификата помогли мне зайти так далеко... теперь у меня слишком много вариантов. Спасибо за чтение.
Редактировать: Есть вопросы, подобные этому, на которые нет ответов, и ответы сбивают с толку. Но для меня они не полные. Кроме того, я не уверен, что мой вопрос правильно отформатирован. Новичок здесь.
решение1
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.
решение2
Я не очень разбираюсь в виртуальных машинах, поэтому предполагаю, что вы сможете справиться с проблемами виртуальных машин. Это руководстводолжно помочь.
Вам нужно будет настроить сервер Stunnel4, как в руководстве (измените подключение на 127.0.0.1:22 и подтвердите на 443), затем создайте сервер SSH, как обычно.
После этого перейдите на клиентский ПК и загрузитеКлиент Stunnel, щелкните правой кнопкой мыши по значку в трее и перейдите вИзменить конфигурациюскопируйте это (измените IP):
[ssh]
client = yes
accept = 127.0.0.1:22
connect = [ip address of the server]:443
Теперь вернитесь в меню и нажмитеПерезагрузить конфигурацию. И все готово; вам просто нужно подключиться к ssh, но используя 127.0.0.1:22.