Добрый день.
Возникла задача: организовать доступ к рабочему компу (ресурсам рабочей сети) из дома через имеющееся 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-сессию, адрес клиента равен адресу сервера.
Не из-за этого ли не устанавливается соединение ? Если да, то как это обойти ?