Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: SSH-туннель (Ubuntu 7.04, SSHD, tunnel, remote ports forwarding) [РЕШЕНО]  (Прочитано 6964 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн paramobile

  • Автор темы
  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
Добрый день.

Возникла задача: организовать доступ к рабочему компу (ресурсам рабочей сети) из дома через имеющееся SSH-подключение. SSH устанавливается со стороны работы в сторону дома.

Действующие лица и исполнители:
Есть домашний сервер (HOME) под ubuntu 7.04-server, подключенный к инету с честным ip. На сервере подняты SSHD и PPTPD.
Есть компьютер на работе (WORK) с ubuntu 7.04. Айпишник внутренний, выход в интернет через proxy, доступа к которой у меня нет.
Есть ноутбук (NOTE) под ubuntu 7.04, который находится в одной локальной сети с сервером HOME (понадобится для экспериментов).

Вариант решения проблемы:
При помощи proxytunnel мне удалось установить SSH-подключение к HOME с WORK. Обратное подключение, очевидно, невозможно. Теперь задача сводится к тому, чтобы используя это подключение, сделать так, чтобы была возможность с сервера HOME обратиться к ресурсам компьютера WORK. Т.е. как бы крикнуть в "трубу" с другого конца.

Мне посоветовали поднять VPN-соединение поверх существующего SSH-туннеля и используя его, осуществить двусторонний обмен информацией. Попробовал это сделать через проброску порта. Не получилось. Вот что я пробовал дома.

Итак. HOME (192.168.200.1) - SSHD, NOTE (192.168.200.96) - SSH.
Запускаю SSH:
ssh -f -N -L1723:192.168.200.1:1723 -l user home

Стартую на ноутбуке VPN-соединение к localhost и наблюдаю в логах на сервере...

May 21 22:23:29 homeserv pptpd[24316]: CTRL: [b]Client 192.168.200.1[/b] control connection started
May 21 22:23:31 homeserv pptpd[24316]: CTRL: Starting call (launching pppd, opening GRE)
May 21 22:23:31 homeserv pppd[24318]: Plugin /usr/lib/pptpd/pptpd-logwtmp.so loaded.
May 21 22:23:31 homeserv pppd[24318]: pptpd-logwtmp: $Version$
May 21 22:23:31 homeserv pppd[24318]: pppd 2.4.4 started by root, uid 0
May 21 22:23:31 homeserv pppd[24318]: using channel 38
May 21 22:23:31 homeserv pppd[24318]: Using interface ppp2
May 21 22:23:31 homeserv pppd[24318]: Connect: ppp2 <;--> /dev/pts/1
May 21 22:23:31 homeserv pppd[24318]: sent [LCP ConfReq id=0x1 <;asyncmap 0x0> <;auth chap MS-v2> <;magic 0xd851d4f> <;pcomp> <;accomp>]
May 21 22:23:31 homeserv pptpd[24316]: GRE: Bad checksum from pppd.
May 21 22:23:34 homeserv pppd[24318]: sent [LCP ConfReq id=0x1 <;asyncmap 0x0> <;auth chap MS-v2> <;magic 0xd851d4f> <;pcomp> <;accomp>]
May 21 22:23:37 homeserv pppd[24318]: sent [LCP ConfReq id=0x1 <;asyncmap 0x0> <;auth chap MS-v2> <;magic 0xd851d4f> <;pcomp> <;accomp>]
May 21 22:23:40 homeserv pppd[24318]: sent [LCP ConfReq id=0x1 <;asyncmap 0x0> <;auth chap MS-v2> <;magic 0xd851d4f> <;pcomp> <;accomp>]
May 21 22:23:41 homeserv pptpd[24316]: CTRL: Reaping child PPP[24318]
May 21 22:23:41 homeserv pppd[24318]: Modem hangup
May 21 22:23:41 homeserv pppd[24318]: Connection terminated.
May 21 22:23:41 homeserv pppd[24318]: Exit.
May 21 22:23:41 homeserv pptpd[24316]: CTRL: Client 192.168.200.1 control connection finished

...соединение не установлено.


Для того, чтобы убедиться, что VPN-соединение работает нормально само по себе, пробую подключиться с NOTE к HOME напрямую (меняю localhost на адрес сервера).

May 21 22:33:54 homeserv pptpd[24927]: CTRL: Client 192.168.200.96 control connection started
May 21 22:33:55 homeserv pptpd[24927]: CTRL: Starting call (launching pppd, opening GRE)
May 21 22:33:55 homeserv pppd[24929]: Plugin /usr/lib/pptpd/pptpd-logwtmp.so loaded.
May 21 22:33:55 homeserv pppd[24929]: pptpd-logwtmp: $Version$
May 21 22:33:55 homeserv pppd[24929]: pppd 2.4.4 started by root, uid 0
May 21 22:33:55 homeserv pptpd[24927]: GRE: Bad checksum from pppd.
May 21 22:33:55 homeserv pppd[24929]: using channel 39
May 21 22:33:55 homeserv pppd[24929]: Using interface ppp2
May 21 22:33:55 homeserv pppd[24929]: Connect: ppp2 <;--> /dev/pts/1
May 21 22:33:55 homeserv pppd[24929]: sent [LCP ConfReq id=0x1 <;asyncmap 0x0> <;auth chap MS-v2> <;magic 0x33cdc9d9> <;pcomp> <;accomp>]
May 21 22:33:55 homeserv pppd[24929]: rcvd [LCP ConfAck id=0x1 <;asyncmap 0x0> <;auth chap MS-v2> <;magic 0x33cdc9d9> <;pcomp> <;accomp>]
May 21 22:33:58 homeserv pppd[24929]: rcvd [LCP ConfReq id=0x2 <;mru 1416> <;asyncmap 0x0> <;magic 0xd53bcb34> <;pcomp> <;accomp>]
May 21 22:33:58 homeserv pppd[24929]: sent [LCP ConfAck id=0x2 <;mru 1416> <;asyncmap 0x0> <;magic 0xd53bcb34> <;pcomp> <;accomp>]
May 21 22:33:58 homeserv pppd[24929]: sent [LCP EchoReq id=0x0 magic=0x33cdc9d9]
May 21 22:33:58 homeserv pppd[24929]: sent [CHAP Challenge id=0x7c <;ec0979efdeeffdc9c4cafd72281444dc>, name = "pptp-vpn"]
May 21 22:33:58 homeserv pppd[24929]: rcvd [LCP EchoReq id=0x0 magic=0xd53bcb34]
May 21 22:33:58 homeserv pppd[24929]: sent [LCP EchoRep id=0x0 magic=0x33cdc9d9]
May 21 22:33:58 homeserv pppd[24929]: rcvd [LCP EchoRep id=0x0 magic=0xd53bcb34]
May 21 22:33:58 homeserv pppd[24929]: rcvd [CHAP Response id=0x7c <;33f859e438062a72073cb91030a36d66000000000000000079ece063b47c0480a6e08839d7ec5cdcad6b761dada093c200>, name = "user"]
May 21 22:33:58 homeserv pppd[24929]: sent [CHAP Success id=0x7c "S=CE26AE562A6E9EA66421C54CA1AFA65F4B89EAF6 M=Access granted"]
May 21 22:33:58 homeserv pppd[24929]: sent [CCP ConfReq id=0x1 <;mppe +H -M +S -L -D -C>]
May 21 22:33:58 homeserv pppd[24929]: rcvd [CCP ConfReq id=0x1 <;mppe +H -M +S -L -D -C>]
May 21 22:33:58 homeserv pppd[24929]: sent [CCP ConfAck id=0x1 <;mppe +H -M +S -L -D -C>]
May 21 22:33:58 homeserv pppd[24929]: rcvd [CCP ConfAck id=0x1 <;mppe +H -M +S -L -D -C>]
May 21 22:33:58 homeserv pppd[24929]: MPPE 128-bit stateless compression enabled
May 21 22:33:58 homeserv pppd[24929]: sent [IPCP ConfReq id=0x1 <;compress VJ 0f 01> <;addr XXX.YYY.ZZZ.WWW>]
May 21 22:33:58 homeserv pppd[24929]: rcvd [IPCP ConfReq id=0x1 <;compress VJ 0f 01> <;addr 0.0.0.0> <;ms-dns1 0.0.0.0> <;ms-dns3 0.0.0.0>]
May 21 22:33:58 homeserv pppd[24929]: sent [IPCP ConfNak id=0x1 <;addr 192.168.222.1> <;ms-dns1 217.14.192.163> <;ms-dns3 217.14.201.10>]
May 21 22:33:58 homeserv pppd[24929]: rcvd [IPCP ConfAck id=0x1 <;compress VJ 0f 01> <;addr XXX.YYY.ZZZ.WWW>]
May 21 22:33:58 homeserv pppd[24929]: rcvd [IPCP ConfReq id=0x2 <;compress VJ 0f 01> <;addr 192.168.222.1> <;ms-dns1 217.14.192.163> <;ms-dns3 217.14.201.10>]
May 21 22:33:58 homeserv pppd[24929]: sent [IPCP ConfAck id=0x2 <;compress VJ 0f 01> <;addr 192.168.222.1> <;ms-dns1 217.14.192.163> <;ms-dns3 217.14.201.10>]
May 21 22:33:58 homeserv pppd[24929]: Cannot determine ethernet address for proxy ARP
May 21 22:33:58 homeserv pppd[24929]: local  IP address XXX.YYY.ZZZ.WWW
May 21 22:33:58 homeserv pppd[24929]: remote IP address 192.168.222.1
May 21 22:33:58 homeserv pppd[24929]: pptpd-logwtmp.so ip-up ppp2 pk 192.168.200.96
May 21 22:33:58 homeserv pppd[24929]: Script /etc/ppp/ip-up started (pid 24933)
May 21 22:33:59 homeserv pppd[24929]: Script /etc/ppp/ip-up finished (pid 24933), status = 0x0

Соединение установлено.


Предположения:
Обнаружил что во время подключения к VPN-серверу с ноутбука через SSH-сессию, адрес клиента равен адресу сервера.
Не из-за этого ли не устанавливается соединение ? Если да, то как это обойти ?
« Последнее редактирование: 25 Мая 2007, 08:28:26 от paramobile »

Оффлайн paramobile

  • Автор темы
  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
По поводу исходной задачи. Нашел решение в виде проброски портов сервера через ssh-шный ключ -R. Неудобство в том, что каждый порт, к которому нужно обратиться из дома, нужно прописывать отдельно. Хотя, с другой стороны безопасность реализации задачи таким способом выше: ничего лишнего сквозь соединение не пролезет. =)

Решение нашел здесь - http://www.opennet.ru/base/sec/ssh_tunnel.txt.html
"Перенаправление в SSH, как и известная палка, имеет два конца. ... Удаленное перенаправление и есть второй конец палки: создание туннеля инициализируется на стороне сервера.
Приведем классический пример использования удаленного перенаправления.Вы весь в работе, а на выходные VPN доступ закрывается на техническое обслуживание. Однако, у вас действительно имеется очень важная работа, но вы предпочитаете делать ее дома, вместо того, что бы торчать в офисе в выходные. И по SSH к вашей рабочей машине никак не пробиться, ибо наличествует фаервол. Значит, перед уходом домой, сделаем пару движений..."

 

Страница сгенерирована за 0.018 секунд. Запросов: 20.