Псевдо-VPN при помощи проброса портов по ssh
- Информация о материале
- Категория: Рабочие Станции
- Опубликовано: 02.06.2011, 17:49
- Автор: Super User
- Просмотров: 2090
Часто из мира нужно обратиться к каким-то внутриофисным ресурсам. Обычно для этого поднимается VPN. Но если таких ресурсов не много (например только внутриофисный веб-портал, который не желательно публиковать в интернете) вполне можно обойтись и без VPN.
Для этого делается всего-навсего проброс порта по ssh.
Для начала делаем авторизацию по ключу на сервере-шлюзе.
Далее на рабочей станции запустить в консоле строку:
ssh -N -L 2080:resource.localdomain:80 user@officegateway
Разберем эту строку:
-N — установить соединение не открывая консоль
-L 2080:resource.localdomain:80 — локальный порт 2080 пробросить на компьютер внутри сети resource.localdomain на порт 80
Значение локального порта нужно ставить высоким. На привилегированные порты можно настроить проброс только с правами root.
После этого осталось только в браузере открыть ссылку
http://localhost:2080
и мы получаем доступ к ресурсу внутри сети.
При чем соединение будет вполне безопасное, так как шифруется внутри ssh-соединения.
Для автоматизации всего этого можно написать скрипт.
#/bin/sh
#Узнаем, какой у нас браузер по умолчанию
browser=`ls -l /etc/alternatives/x-www-browser |awk '{print $10}'`
#Смотрим, не было ли раньше установлено соединение
is_connect=`netstat -lnp| grep 2080`
wmbrowser=`echo $browser| awk -F/ '{print $4}'`
if [ "$is_connect" = "" ];
then
# Если соединение еще не установлено - устанавливаем
ssh -N -L 2080:resource.localdomain:80 user@officegateway &
fi;
#Открываем в браузере ссылку
$browser http://localhost:2080
# И если окно браузера неактивное — делаем его активным.
wmctrl -a $wmbrowser
Теперь при запуске этого скрипта сразу откроется нужная страница на нужном сервере. У себя я его вообще на хоткей повесил.
Если рабочая станция под виндой, это все тоже можно реализовать при помощи Putty