Или другими словами туннелирование через прокси. Есть разные софтины, позволяющие пробрасывать TCP соединение через proxy, но я сегодня рассмотрю только одно, решающее мою конкретную задачу: я сижу на линуксе (дома), в локальной сети за прокси типа SQUID и мне надо рулить сервером (на работе) используя SSH.
Как это сделать? Легко, устанавливаю программулину Corkscrew. Ну, типа так:
tar -xzvf corkscrew.tar.gz
cd corkscrew
./configure
make
make install
В файле
/home/valik/.ssh/config
пишу такую строку
ProxyCommand /usr/local/bin/corkscrew proxy.home.net 3128 %h %p ~/.ssh/proxyauth
где proxy.home.net - имя компа с прокси, 3128 - порт прокси, ~/.ssh/proxyauth путь к файлу с именем и паролем для прокси.
Содержимое этого файла (/home/valik/.ssh/proxyauth) такого вида
valik:superDuperPass
имя:пароль, понятно, да?
А, собственно, всё.
Дальше набираю заклинание открытия сеанса SSH:
ssh -v -p 22 -i /home/valik/.ssh/keyname.ssh.rsa.pk guest@server.worknet.net
и имею сессию через прокси.
Кстати, если добавить к команде довесок вида
-L 3389:lanhost:3389
то локальный порт 3389 (localhost:3389) пробрасывается прозрачно на машину lanhost (lanhost:3389) в сети сервера к которому я подключился секурным шеллом. Я эту фишку использую для работы с "удаленным рабочим столом" в офисной сети (а сам дома сижу, за прокси).
Убойная технология, практически VPN, да еще через прокси!
Оригиналы, с которых я это замутил:
Updated:
Не забыть в SQUID разрешить соединения методом CONNECT для нужных портов. У себя я это сделал просто, закомментировал запрет соединений на "не безопасные" порты:
# Deny CONNECT to other than SSL ports
#http_access deny CONNECT !SSL_ports
Комментариев нет:
Отправить комментарий