LINUX.ORG.RU

Доступ к ПК, не имеющего внешнего IP, по SSH


0

0

Домашний ПК в VPN. Хотелось бы подключаться к нему по SSH из внешки. Нашёл бесплатный хостинг под фрёй с поддержкой SSH, попробовал сделать на нём такой вот бред:

ssh -f -L16001:<сайт>:16002 <логин>@<сайт> sleep 600

Т.е. приём идёт с одного порта (к нему пытаюсь подключиться по SSH) и переадресация на другой локальный же, который уже слушает sshd на домашнем ПК. Конечно же ничего не получилось :) Вот список программ сервера, которыми я могу воспользоваться:

http://openfolder.by.ru/all_cmds.txt

Можно из этого что-нибудь решающее проблему состряпать?


Кроме ssh ничего не надо, но вот не забанил ли Ваш хостер прокидывание портов?

Во-первых, тут нужен не -L, а -R, чтобы порт на хостинге транслировался на ПК.
Во-вторых, ssh -f -N и не надо никакого слипа.

В-третьих, можно ещё проверить, умеет ли хостер public key и попробовать наладить ключи+крон, что само по себе забавно. Но мне сдается, что это запрещено: хостер же не хочет, чтобы его поломали из-за олуха, забывшего ноут с ключами в электричке.

lodin ★★★★
()

Проще зарегистрироваться на http://go6.net/ и получить статический IPv6-адрес, по которому и ходить.

AEP ★★★★★
()
Ответ на: комментарий от lodin

> Во-первых, тут нужен не -L, а -R, чтобы порт на хостинге транслировался на ПК.

Как я буду на него транслировать, если он даже не пингуется?

> Проще зарегистрироваться на http://go6.net/ и получить статический IPv6-адрес, по которому и ходить.

Так, это что-то вроде no-ip.com чтоли? Т.е. связка клиент-сервер. Если там получится что-то вроде того: сервер работает с внешним миром, а весь траф идёт через установленную у меня клиентскую часть (она и принимает и отправляет), то может что-то и получится. Пойду по ссылке, почитаю.

XEN
() автор топика
Ответ на: комментарий от lodin

> хостер же не хочет, чтобы его поломали из-за олуха, забывшего ноут с ключами в электричке.

Да, кстати. Дык я аутентификацию через ключ сразу и наладил :) Только не понятно почему их должны поломать, у меня ведь приватный зашифрован?

XEN
() автор топика
Ответ на: комментарий от XEN

> Так, это что-то вроде no-ip.com чтоли?

Нет, no-ip.com - это только DNS, а тут тебе бесплатно дают целую подсеть "белых" статических IPv6-адресов (/64, т.е. 2^64 машин). Недостаток - поддержка IPv6 требуется и с той и с другой стороны (т.е. поставить их клиент, gw6c, или его старую версию, tspc - но это проще простого).

Будет типа такого:

patrakov@home:~$ host patrakov.broker.freenet6.net

patrakov.broker.freenet6.net has IPv6 address 2001:5c0:8fff:fffe::7911

ну и соответственно, ping6 2001:5c0:8fff:fffe::7911 всегда доберется до моей домашней машины, независимо от IPv4-адреса, выданного провайдером. И по ssh можно ходить.

AEP ★★★★★
()
Ответ на: комментарий от AEP

Скомпилил, установил как в INSTALL сказано, в gw6c.conf прописал логин, пароль и сервер, а он мне:

$ ./gw6c

Failed to open specified file.

Last status context is: Configuration validation.

Finished.

Что я делаю не так?

XEN
() автор топика
Ответ на: комментарий от XEN

>> Во-первых, тут нужен не -L, а -R, чтобы порт на хостинге транслировался на ПК.

>Как я буду на него транслировать, если он даже не пингуется?


Он что, с себя не пингуется?

Если я правильно понимаю задачу, нужно вот что:

1) ПК идет на сервер
2) на сервере открывается порт (sshd)
3) на сервере в порт ломятся
4) sshd (на сервере) сообщает об этом ssh (на ПК)
5) ssh (на ПК) соединяется на 22 порт
6) все, что ответит 22 порт ПК (то есть местный sshd), отправляется по этому извилистому пути обратно
7) profit!

Это и есть -R 16000:localhost:22

lodin ★★★★
()
Ответ на: комментарий от XEN

> Что я делаю не так?

Наверное, не туда положил конфигурационный файл? Обычно такие вещи выясняются методом "strace -e open gw6c".

AEP ★★★★★
()
Ответ на: комментарий от lodin

> Он что, с себя не пингуется?

$ ping 62.117.***.***
PING 62.117.***.*** (62.117.***.***) 56(84) bytes of data.

--- 62.117.***.*** ping statistics ---
10 packets transmitted, 0 received, 100% packet loss, time 9010ms

На локалхост, IP за роутером, ну и на сам роутер пинг есть.

> Это и есть -R 16000:localhost:22

Так что дальше-то в строке-то прописывать? Там же по-идеи должен следовать IP моего ПК, что не подходит.

> Наверное, не туда положил конфигурационный файл? Обычно такие вещи выясняются методом "strace -e open gw6c".

Оказалось что там права доступа на конфиг, причём и на чтение, только руту были разрешены. Чушь какая-то, ну ладно. Вот, пускаю:

# ./gw6c
Gateway6 Client v6.0-BETA4 build Sep  5 2008-15:52:18  
Built on ///Linux ubuntu 2.6.24-21-generic #1 SMP Mon Aug 25 16:57:51 UTC 2008 x86_64 GNU/Linux///
Server Authentication Capabilities: Digest MD5, Plain
Your Configured Authentication:     Anonymous
Failed to find common authentication method with Gateway6.
Last status context is: TSP authentication.
Finished.

После этого

$ host <userid>.broker.freenet6.net
Host <userid>.broker.freenet6.net not found: 3(NXDOMAIN)


ОТБОЙ. Последняя проблема решена путём установления "auth_method=any" в конфиге. Стирать не стал, просто ели у кого такая же ошибка будет. После этого ответ на host пришёл нормальный :)
Так, пошёл эксперименты ставить. Тогда напишу, получилось ли что.

XEN
() автор топика
Ответ на: комментарий от AEP

> тогда проще было поставить tspc из репозитория, без потери функциональности

Убунтовцы не ищут лёгких путей :D
Правда, если честно, буду мигрировать на Ленни как выйдет. Глюки, хоть и мелкие, надоело ловить...

По теме. Короче говоря на второй ПК, работающий под вендами, поставил gw6c + putty и без проблем зашёл через свежеиспечённый IPv6 напрямую уже на свой
комп :) Это конечно всё очень хорошо и вроде как можно было бы теперь использовать сервер с SSH в роли посредника для коннекта со стороны клиента через IPv4, но делая для интереса на том сервере:

$ ssh xen@<Number_of_my_IPv6>

получаю вот такое неприятное сообщение:
             
socket: Protocol not supported
ssh: connect to host <Number_of_my_IPv6> port 22: Protocol not supported

Это я с него к себе пытался подключиться.
Это приговор?

XEN
() автор топика
Ответ на: комментарий от XEN

> socket: Protocol not supported

Я не понял. "к себе" = с сервера (где нет внешнего IP, но крутится gw6c) на самого себя?

AEP ★★★★★
()
Ответ на: комментарий от AEP

> Я не понял. "к себе" = с сервера (где нет внешнего IP, но крутится gw6c) на самого себя?

Нет, с сервера, через который используя SSH-тоннели недавно пытались траф пробрасывать (ну или "хостинг", как я его ещё называл), к себе, в смысле на конечную точку (домашний ПК). На ПК сейчас как-раз крутится gw6c и я могу с другого ПК, с этим же gw6c, уже подключаться к себе (об этом я выше писал). Но это не совсем хорошо, всмысле того, что нужно делать тоннель для работы с IPv6, ставя на клиентскую машину gw6c, т.к. я бы хотел иметь доступ ещё и со смартфона (порт PuTTY под Symbian, проверено на подключении к серверу - it's work). Поэтому было бы здорово, если бы со стороны клиента всё выглядело как обычно, т.е. IPv4. На сервере aka хостинге нет tspc и ничего там скомпилить и установить я не могу (уже пробовал :) ). Поэтому если с сервером ничего не получится, может быть известны какие-нибудь спец. прокси что ли?

XEN
() автор топика
Ответ на: комментарий от XEN

Насчет доступа с хостинга все действительно плохо.

А со смартфоном, в чем проблема? Не обязательно же получать IPv6-адрес через gw6c, есть и другие методы (например, teredo tunneling, который, согласно информации из google, Symbian вроде бы поддерживает).

AEP ★★★★★
()
Ответ на: комментарий от AEP

И кстати, почему бы не поискать другой хостинг, у которого уже есть IPv6? google:free shell account ipv6

AEP ★★★★★
()
Ответ на: комментарий от AEP

Не могли бы немного рассказать про этот Teredo Tunneling? Как я понял при помощи этой технологии идёт преобразование IPv4 пактов в IPv6? У меня Nokia 3230 и как-раз начиная с Symbian 7.0s была добавлена поддержка IPv6, тем не менее когда я пытался подключиться ничего не вышло. Насчёт хостинга. Выход конечно, но с shell вот только пока один нашёл, но ещё и с IPv6, да ещё и на халяву... Посмотрим, но это ооочень повезёт если наткнусь :)

XEN
() автор топика
Ответ на: комментарий от XEN

> Не могли бы немного рассказать про этот Teredo Tunneling?

Это один из методов получения IPv6 адреса путем создания туннеля. Туннель работает поверх UDPv4 и требует наличия сервера. Туннель работает даже через NAT. IPv6 адрес зависит от внутреннего и внешнего IPv4 адресов, а также номера порта, используемого клиентом. Под Linux можно поиграться с этим, поставив пакет miredo. В Windows XP SP2 клиент встроен, но требует установки патча KB922819 в связи с произошедшим 6 июня 2006 года изменением официального префикса с 3ffe:8319::/32 на 2001::/32 (кстати, твоя проблема с symbian тоже может объясняться этим изменением префикса).

Есть несколько серверов, которые предоставляют возможность получения IPv6 адреса без регистрации.

А насчет бесплатного shell-провайдера с IPv6- чем не нравится http://ariel.atlantica.us:10080/ ?

AEP ★★★★★
()
Ответ на: комментарий от AEP

На этом хостинге вчера ещё зарегистрировался, но получил:

$ ssh -R 16004:localhost:22 xen@<my_ipv6>
socket: Permission denied
ssh: connect to host <my_ipv6> port 22: Permission denied

Вот как вы ещё про него написали, пересилил себя и всё-таки прочитал что там на главной написано :)
А там оказывается IPv6 ещё получить надо, послав заявку. Нужный порт к тому же открыть могут. Ваще красота :)
Так что с этим Teredo Tunneling пока связываться не буду. Кстати, спасибо за ликбез ;)

XEN
() автор топика
Ответ на: комментарий от XEN

> ssh -R 16004:localhost:22 xen@<my_ipv6>

А это еще зачем? Это Вы сказали: слушать порт 16004 на my_ipv6, и когда кто-то к нему там подсоединяется, то хостинг будет соединяться с самим собой на порт 22, и передавать пакеты. Явная бессмыслица.

AEP ★★★★★
()
Ответ на: комментарий от AEP

Или я чего-то недопонимаю (скорее всего уже путаться стал :) ) или вы.

1. Есть: мобильник, сервер, ПК.
2. ПК в VPN, внешний IP для него у своего инет-провайдера покупать не собираюсь.
3. Нужно: с мобильника зайти на ПК.
4. Я получил свой IP, но v6, используя gw6c.
5. Чтобы с ним работать, нужная поддержка IPv6 со стороны клиента, т.е. мобильника.
6. Её нет.
7. Нужно чтобы сервер работал и с IPv6, и с IPv4, и уже через этот сервер наладить соединение с ПК.

Да, то, что вы отметили, похоже действительно бред.

ssh 16004:localhost:22 xen@<my_ipv6>

Т.е. подключение к 16004 на сервере, будет являться (для мобильника) подключением к 22 уже к моему ПК. Так?

Кстати, есть ещё http://freeshells.ch , но там сейчас регистрация закрыта.

XEN
() автор топика
Ответ на: комментарий от XEN

> 1. Есть: мобильник, сервер, ПК.

Ясно.

> 2. ПК в VPN, внешний IP для него у своего инет-провайдера покупать не собираюсь.

Я не уверен, что термин "VPN" используется Вами по назначению. Вероятно, превильнее было бы сказать "за NAT".

> 3. Нужно: с мобильника зайти на ПК.

Понял.

> 4. Я получил свой IP, но v6, используя gw6c.

Отлично!

> 5. Чтобы с ним работать, нужная поддержка IPv6 со стороны клиента, т.е. мобильника.

По идее, да.

> 6. Её нет.

Значит нужен посредник (сервер).

> 7. Нужно чтобы сервер работал и с IPv6, и с IPv4, и уже через этот сервер наладить соединение с ПК.

Совершенно верно. Но для этого никакие порты форвардить не надо.

user@mobile$ ssh user@server

user@server$ ssh user@ipv6box

user@ipv6box$ profit

AEP ★★★★★
()
Ответ на: комментарий от AEP

Вариант, но с большим минусом - вся инфа будет доставляться в открытом виде на непонятно-кем-администрируемый сервер. Тем более американский :) Я хочу использовать его именно в роли посредника, т.е. чтобы траф через него в зашифрованном виде перетекал.

Если я всё-таки получу IPv6 и порт, то вариант

ssh 16004:localhost:22 xen@<my_ipv6>

должен работать?

Если нет, то ещё как-то можно это осуществить (route нет)?

P.S. Измучил наверно я вас, AEP, со своими ламерскими вопросами :)

XEN
() автор топика
Ответ на: комментарий от XEN

Тогда надо (утрирую, считая, что у putty синтаксис такой же, как и у обычного ssh):

user@mobile$ putty -f -L 2222:ipv6_box:22 -N user@hosting

user@mobile$ putty -p 2222 user@127.0.0.1

Первая команда слушает на мобиле порт 2222. Когда кто-нибудь к нему подсоединяется, хостинг соединится с ipv6_box на порт 22 и будет перекачивать данные без расшифровки. Вторая команда просто соединяется с localhost на только что открытый порт.

AEP ★★★★★
()
Ответ на: комментарий от AEP

putty, кстати, не умеет только -f , а все остальные опции вполне прокатывают. Так что его можно батником запускать.

lodin ★★★★
()
Ответ на: комментарий от AEP

Сначала не мог понять вашу систему, но потом въехал, что называется. Но тут другая проблема. PuTTY под Symbian - это же не шелл и я не могу передать какие-либо опции при соединении. Я лишь могу сначала подключиться и только потом, уже на стороне сервера, что-то делать.

Ладно, спасибо за помощь. Наверно тогда сначала с IPv6-хостингом разберусь. Тогда напишу что получилось.

XEN
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.