|
www.lissyara.su
—> статьи
—> FreeBSD
—> Мелочи
—> немного о ssh
проброска портов с помощью ssh
Автор: lissyara.
Предистория: Два часа в серверной, пока подымали пару серваков после отключения электричества, не прошли даром - прихватил радикулит. Слёг дома, но работать надо - как раз внедрение очередного филиала, там пара ручных операций, которые никак не задокументирую, ну и прочее по мелочи. На работе сетевик выдал логин/пароль/IP - и сказал - обычный pptp.
Мне бы его уверенность - я второй день трясу бубном/ppp/mpd/tcpdump/wireshark - толку ноль. Странные туннели делает циско - хотя винда коннектится влёт. Посему, уже через полчаса попросил прокинуть ssh снаружи на любую машину сети.
Дальше было интересней. ssh - это просто волшебно - но кроме никсовых серваков, гораздо реже, но требовалось заходить на виндовые. Опять же - хотелось добраться до своего рабочего компа с KDE - там почта и прочие полезные фенечки.
Шеф, подсказал одну строчку, которую уже полгода пытался заставить меня вычитать в мане - строчка могла пробросить порт с удалённой машины на локальную. Причём с любой машины в удалённой сети, а не только с той, куда у меня ssh. Ну, а дальше было дело техники.
Лирическое отступление. У меня дома два компа (ну, три - третий ноут) - все, в т.ч. и ноут, под FreeBSD. Первый комп это - пережиток тёмного виндового прошлого, третий пенёк - это гейт между моим десктопом (когда-то он был под виндой) и локалкой. По совместительству он же файлопомойка для меня, тестовая машина и кое какие ресурсы для локальной сети района. Комп этот, я запихал в вентиляционную шахту, забил дощечкой, и последний раз видел в начале лета - чистил вентиляторы. Выключается/перезагружается он тока когда вырубают электричество. Второй комп - собственно десктоп, соединён с первым кроссовером.
Итак. Задача - чтобы не мучаться каждый день с пробросом нужных портов, надо пробросить нужные сервисы на первый комп, на непривелигированные порты, и там их юзать. Цели ясны, задачи определены - за работу, товарищщи!
Пункт первый - нужен RDP на контроллер домена. Т.к. ssh сессию через которую проброшены порты не закроешь, не разорвав TCP соединения на проброшенный порт, делать это, зайдя по ssh на первую машину - не имело смысла. Был придуман обходной манёвр - т.к. я не юзаю screen (может и зря - но мне не удобно...), я использовал физические консоли сервера - через watch.
Для начала, надо подготовить машину находящуюся на работе - на которую у меня есть ssh. Добавляем одну опцию, и рестартуем sshd:
radius$ more /etc/ssh/sshd_config | grep TcpFor | tail -1
AllowTcpForwarding yes
radius$ /etc/rc.d/sshd restart
Stopping sshd.
Starting sshd.
radius$
| Итак, лезем на мою первую машину по ssh, там от рута лезем на физическую консоль:
Я залез на шестую (седьмую), вы можете на любую свободную (на пяти предыдущих у меня dvd в avi пережимается :)). Там логимся рутом, и запускаем такую команду:
$ ssh lissyara@111.222.111.222 -L 192.168.254.254:3390:172.172.172.172:3389
| Разъяснения:
111.222.111.222 внешний IP адрес на который открыт ssh (реально - ssh на внутренней машине, просто проброшен порт, ну да не суть важно - операция прекрасно прокатит на гейте с двумя сетевухами)
192.168.254.254 - это внутренний адрес моего рутера, который гейт между мной и локалкой.
3390 - порт, на который я буду коннектится - почему-то не получилось пробросить на тот же номер порта.
172.172.172.172 - IP контроллера домена внутри локальной сети.
3389 - порт на контроллере домена на котором висит rdesktop
После логина, жмём Gtrl+G c целью отвалиться от реальной консоли обратно, в исходную сессию ssh. Можно проверить, не отпало ли чего:
Можно коннектится по RDP на 192.168.254.254:3390 - попадём на 172.172.172.172:3389. Таким же макаром пробросил локальный jabber и почту.
Дальше было интересней. Несмотря на то, что я затащил все необходимые сервисы к себе на домашнюю машину, остался чисто теоретический интерес по заходу на свой рабочий десктоп. Может даже немного практический - мало ли что может резко понадобиться, что непробросишь.
В KDE есть приблуда, типа "Удалённого помошника" в винде, тока более грамотно организованная.
Когда-то я с ней развлекался - помню что работало, значит оставалась одна проблема - как её запустить минуя ГУИ. Гугление дало первую или вторую ссылку по теме, где и было описано что надо сделать (на источник не ссылаюсь - непомню, а снова искать - лень. Тем более - не копирую а своими словами передаю).
Проблема номер один - комп ребутался, поэтому я там не залогинен - висит окно KDM. Итак, лезем на машину по ssh, и для начала его килляем:
lissyara$ killall -9 kdm-bin
| и рихтуем один файлик до такого состояния:
lissyara$ more .kde/share/config/krfbrc
allowDesktopControl=true
allowUninvited=true
confirmUninvitedConnection=false
disableBackground=false
disableXShm=false
enableSLP=true
preferredPort=-1
uninvitedPasswordCrypted=
[invitations]
invitation_num=0
lissyara$
| после чего, рихтуем ещё такой файл:
lissyara$ more /usr/home/lissyara/.xinitrc
exec /usr/local/bin/startkde
lissyara$
| и запускаю КДЕ от своей учётки:
Логичный вопрос - зачем сразу сделал "exit"? А вы не делайте - поймёте :) Снова логинимся по ssh на машину, проверяем - запустилось ли kde, и открыты ли нужные порты:
lissyara$ sockstat | grep kdeinit | grep tcp
lissyara kdeinit 77507 13 tcp46 *:5800 *:*
lissyara kdeinit 77507 14 tcp46 *:5900 *:*
lissyara$
| После чего пробрасываем 5900 порт, на 5901, к примеру. Запускаем krdc (из меню K, или с консоли), и выбираем такие параметры:
Ну и всё. Надо заметить, что подключение происходит вообще без паролей (пробовать больше негде - но может связано с тем, что дома и на работе пароль одинаковый - если быть вполне честным - не очень я понимаю принципа работы этой ГУЁвины), поэтому не стоит вытыкать в инет такую машину.
P.S. Надо всё же оcилить маны по ssh/sshd.
P.S.2 Чё то я стал скриншотиками увлекаться... Старею чтоли?
размещено: 2007-09-26,
последнее обновление: 2007-09-26,
автор: lissyara
|
|
|
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
|
|
Комментарии пользователей [12 шт.]