У меня такая установка:
LocalPC - Jumpserver - Веб-сервер со страницей, доступной только на этом компьютере через
localhost:8080
LocalPC и Webserver не подключены - необходимо использовать Jumpserver. Jumpserver не имеет доступа к веб-странице на веб-сервере
Я хочу использовать Firefox для просмотра этой веб-страницы на LocalPC.
Я знаю, как сделать прокси socks для Jumpserver - обычно этого достаточно, но не в этом случае
ssh -TD 8080 me@jumpserver
и
Я знаю, как туннелировать один конкретный порт через Jumpserver
ssh -f -N -q -L 2222:me@target:22 me@jumpserver
Но при использовании первого метода создается только туннель к Jumpserver, а при использовании второго метода с портами 8081: me @ webserver: 8080 не выдает ошибки, но дает 404 для
http://localhost:8081
в firefox ...
Итак, как я увижу сайт на LocalPC?
И по соображениям безопасности: мне нужно, чтобы оба соединения были зашифрованы и не позволяли другим пользователям на сервере Jumpserver использовать туннель.
(Прошу прощения за кодовые блоки - мне не разрешено писать слово localhost ...)
Хорошо, нашел свое решение с помощью первого ответа на этот вопрос: https://stackoverflow.com/questions/1010808/ssh-tunnelling-chain#1122282
Если я построю эти туннельные цепочки в ssh-config, я смогу использовать веб-сервер ssh -TD 8080 и построить динамический туннель. Затем мне просто нужно добавить 127.0.0.1:8080 в качестве прокси socks5 в Firefox и быть счастливым.
Я не знал, что можно использовать гирляндное соединение ssh-туннелей, но я только что попробовал, и он отлично работает. Это моя тестовая среда
Цепочки ромашки выглядят так
- Туннель
192.168.1.30:8080 <-> 192.168.1.20:8081
SeeNoEvil: ~ # ssh -f -L 8081: 127.0.0.1: 8080 пользователь @ SpeakNoEvil -N
- Туннель
192.168.1.20:8081 <-> 192.168.1.10:8082
HearNoEvil: ~ # ssh -f -L 8082: 127.0.0.1: 8081 root @ SeeNoEvil -N
Socks прокси 127.0.0.1:8082
Я, конечно, работаю в обратном направлении для внешнего мира, и SpeakNoEvil - мой сервер. HearNoEvil - мой браузер. Надеюсь, это было полезно. (^_^)