Привет, вот ситуация, у меня есть сервер в корпоративном центре обработки данных для проекта. У меня есть SSH-доступ к этой машине через порт 22. На этом сервере работает несколько виртуальных машин, а за всем этим работают многие другие операционные системы. Теперь, поскольку я нахожусь за брандмауэром центров обработки данных, мой руководитель спросил меня, могу ли я сделать что-нибудь, с помощью которого я могу предоставить многим людям в Интернете доступ к этим виртуальным машинам напрямую. Я знаю, что если бы мне разрешили получать трафик на порт, отличный от 22, то я мог бы перенаправить порт. Но так как мне это не разрешено, что может быть решением в этом случае. Люди, которые хотели бы подключиться, могут быть полными идиотами. Кто может быть счастлив, просто открыв putty на своих машинах, или может быть даже filezilla. Я настроил обратный прокси Apache для перенаправления интернет-трафика на виртуальные машины на этих хостах. Я не совсем понимаю, что я могу сделать по SSH. Так что есть что-то, эквивалентное обратному прокси-серверу Apache, который может выполнять аналогичную работу для SSH в этой ситуации.
У меня нет брандмауэра в руках или какого-либо открытого порта, кроме 22, и на самом деле, даже если я прошу, они не позволят открыться. 2 раза SSH - это не то, чего хочет мой руководитель.
Вы должны открыть ssh-туннель со своего компьютера на сервер в центре обработки данных. Назовем его «server1». Если вы используете openssh, вы можете просто запустить
ssh -L0.0.0.0:8080:localhost:8080 you_username@server1
Это откроет соединение от вашего компьютера через порт 8080 к серверу, порт 8080, пропуская межсетевой экран. Предполагается, что ваш apache прослушивает порт 8080. Формат переадресации порта прослушивает IP: локальный порт: удаленный адрес: удаленный порт. Конечно, для одного сервера вы также можете использовать
ssh -L0.0.0.0:8080:remote_server_address:8080 you_username@server1
Обратите внимание, что параметр localhost в -L относится к server1. Другими словами, сервер видит соединения, поступающие с localhost, хотя на самом деле они поступают с вашего компьютера через соединение ssh.
Вам также нужен параметр
AllowTcpForwarding yes
в конфигурации ssh сервера (обычно / etc / ssh / sshd_config).
После этого другие пользователи могут подключиться к вашему компьютеру через порт 8080, чтобы получить соединение через обратный прокси-сервер Apache. Если вам нужен общий прокси (чтобы пользователи могли выбирать адрес, а не только конкретные адреса в конфигурации Apache), вы должны установить squid на server1 и использовать ssh-туннель для порта squid.
Может быть, вы могли бы использовать что-нибудь вроде SshMeIn. Это веб-система с открытым исходным кодом, которая будет создавать ssh-туннель через брандмауэры, вам даже не нужно открывать порты.