Вход:  Пароль:  
Free Source | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация |

Background


Ну, во-первых, ситуация: есть выход в internet, одна беда – только через proxy. То есть ася работает, web тоже. А вот irssi, ssh, mutt через imap отказываются.
Прокся делать CONNECT разрешается не по всем портам, для этого надо пинать админа. Только этот так называемый админ поставил пока usergate – типа быстрей ставить. А так как интернет нужен всем, да вот беда нет людей, что его настроят, вот и включили, что под руку подвернулось (или вычитали в журнале ксакеп – там как раз такое и пишут). Так что даже если умудрится заставить mutt подключаться к 8080 порту, предварительно послав туда CONNECT, то всё равно это не совсем кошерно.


Есть конечно так называемые http туннели, что позволяют нам «пройти» через proxy: это из сизифа httptunnel и ещё не опакеченный proxytunnel. Оба позволяют организовать «туннель» через proxy (подробнее ищите HOWTO Firewall Piercing).


Есть ещё port-forwarding в ssh, но он кроме нижеизложенных причин, ещё и не умеет сам лазить через proxy. Хотя есть возможность научить :)


Одна беда – это опять-таки не туннель, а просто port-forwarding, то есть перенаправить можно только одну программу и на один хост. В принципе ничего не мешает настроить десяток таких «туннелей», но мне почему-то такой вариант не нравится. Я хочу чтобы у меня и дома и на работе работало ssh gw, fetchmail pop, etc. А в таком случае дома приходилось бы перенаправлять их всех на отдельные порты. Зачем? Есть вариант получше.


Я решил перенаправить сетевое устройство, то есть организовать полноценный туннель до одной из машин у меня на работе. На той машине достаточно было включить маршрутизацию, модифицировать firewall и включить NAT – и всё, мне интернет мне открыт «напрямую», без всяких проксей.

Методы

Схема решения выгляит следующим образом: pppd может в качестве транспорта для трафика использовать программу, что будет перенаправлять stdin/stdut на другую сторону. Программы вида ssh, httptunnel и proxytunnel работают нужным образом: перекидывают stdin/stdout на другой конец канала. На другом же конце надо запустить тот же самый pppd, чтобы он считывал из ssh, httptunnel или proxytunnel и передавал в сетевое устройство, из которого уже будет считывать ядро. Уфф.


Проблема: httptunnel и proxytunnel не позволят запустить на другой стороне pppd так, чтобы он принял от них stdin/stdout. Надо использовать ssh: из /Статьи / Настройка Сети / Организация Туннелей, раздела 3.3 видно, как это сделать в случае с ssh. Но у нас беда: стоит прокси. Как перекинуть ssh-подключениечерез прокси?


Как-то наверное это можно сделать и через httptunnel, вот только мне как-то уж очень не хотелось открывать лишний порт на подопечной мне машине и пускать из инета к какой-то левой и непонятной программке. В принципе можно было заиметь shell где-нить в инете, и поставить софтину там, только зачем? proxytunnel позволяет сделать это более простым методом. Тем более это софтинка разрабатывалась специально для подключения к ssh.

Решение

Настройка ssh подключения через proxy

Учим sshd на работе слушать порт, к которому пускает наша прокси. Например 8080. Делается командой Port в конфиге. Или Listen – не важно.
Учим ssh подключаться через proxytunnel. Качаем из http://proxytunnel.sourceforge.net/, читаем README, ставим. Шаманить здесь не надо, как обычно ./configure && make && make install.


Наверно :) Я решил зделать проще. Или сложнее – смотря как посмотреть.
В тарболле есть spec файл. Прогнав его через cleanup_spec и подправив %setup, я быстренько сваял rpm'ку и поставил.
мда, а rpm'ки бы выложить надо. вдруг кто в сизиф протащит :)


Всё. Читаем README и вытаскиваем оттуда такую команду для ssh:

на ProtocolKeepAlives у меня почему-то ssh ругнулся


Прописываем в .ssh/config:


И теперь ssh tunnel.


Если залогинились, то значит ssh теперь умеет работать через proxycommand. Поздравляю.




А теперь вспоминаем, для чего мы мучали ssh.


Ssh мы научили. Учим pppd, как сказано в /Статьи / Настройка Сети / Организация Туннелей, раздел 3.3. Что самое смешное, там оказывается приведён мой рабочий конфиг для PPPD Over SSH Throw proxy :)


Ну, теперь pppd call ssh – и получайте ppp0 девайс, перенаправленный на ваш маршрутизатор.


Страницы, ссылающиеся на данную: Статьи/НастройкаСети//ОрганизацияТуннелей/ПримерыПрименения
Статьи/НастройкаСети/ОрганизацияТуннелей


 
Файлов нет. [Показать файлы/форму]
Комментариев нет. [Показать комментарии/форму]