Различия



Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.

Ссылка на это сравнение

wiki:dostup_iz_interneta_k_routeru_i_resursam_domashnej_seti_s_ispolzovaniem_ssh-tunelej [2014/02/20 12:28]
laforsh [Установка и настройка клиентского компьютера]
wiki:dostup_iz_interneta_k_routeru_i_resursam_domashnej_seti_s_ispolzovaniem_ssh-tunelej [2015/11/16 16:22] (текущий)
laforsh
Строка 1: Строка 1:
-======  Доступ из интернета к роутеру Zyxel Keenetic/Keenetic Giga и ресурсам домашней сети с использованием ssh-тунелей.  ======+======  Доступ из интернета к роутеру Zyxel Keenetic/Keenetic Giga и ресурсам домашней сети с использованием ssh-туннелей.  ======
  
-Иногда возникает необходимость доступа к разным ресурсам домашней сети в то время, когда вы находитесь на работе/даче/у друзей/в отпуске/гостевом Wi-Fi и т.д. Одно из возможных решений - использование ssh-тунелей для безопасного доступа к ресурсам LAN.+Иногда возникает необходимость доступа к разным ресурсам домашней сети в то время, когда вы находитесь на работе/даче/у друзей/в отпуске/гостевом Wi-Fi и т.д. Одно из возможных решений - использование ssh-туннелей для безопасного доступа к домашнему роутеру и ресурсам домашней LAN сети. При использовании этого варианта **ВЕСЬ** передаваемый трафик между клиентом и домашней сетью (включая и информацию, которая при обычных условиях передается в открытом виде) будет зашифрован с использованием выбранных на сервере dropbear алгоритмов шифрования. Это даст дополнительную защиту Ваших данных от перехвата (в гостевом Wi-Fi это сильно актуально), но и в связи с этим необходимо учитывать, что этот способ не самый лучший выбор для передачи больших объемов информации (т.к. весь передаваемый поток сначала будет подвергнут шифрованию, а после передачи - расшифровке, что повлечет повышенную нагрузку как на роутер, так и на клиентское рабочее место).
 ---- ----
 <note important>//__Немного теории из википедии:__// <note important>//__Немного теории из википедии:__//
Строка 22: Строка 22:
 ===== Установка и настройка роутера ===== ===== Установка и настройка роутера =====
  
-**1.** Требования первого пункта по IP адресу (либо "пробросу" портов) - сугубо организационные и обговариваются с провайдером на стадии заключения договора. Если провайдер не предоставляет такой услуги, то описанными в этой статье способами доступ к локальной сети получить невозможно.+**1.** Требования первого пункта по IP адресу (либо "пробросу" портов) - сугубо организационные и решаются с домашним провайдером на стадии заключения договора подключения к сети Интернет. Если провайдер не предоставляет такой услуги, то описанными в этой статье способами получить доступ из интернета к роутеру и домашней локальной сети невозможно.
  
 **2.** Подробно установка системы opkg (в том числе и ssh сервера dropbear) описана в статье [[wiki:ustanovka_paketov|"Установка системы opkg."]] Сервер dropbear может быть запущен не только на порту по умолчанию (порт 22), но и на любом другом. Чтобы изменить порт по умолчанию (22), прослушиваемый сервером dropbear на нужный порт (например 45017), через PuTTy по ssh заходим на роутер и любым удобным способом корректируем файл /media/DISK_A1/system/etc/init.d/S10dropbear . Строка запуска dropbear в секции "start" должна выглядеть так: **2.** Подробно установка системы opkg (в том числе и ssh сервера dropbear) описана в статье [[wiki:ustanovka_paketov|"Установка системы opkg."]] Сервер dropbear может быть запущен не только на порту по умолчанию (порт 22), но и на любом другом. Чтобы изменить порт по умолчанию (22), прослушиваемый сервером dropbear на нужный порт (например 45017), через PuTTy по ssh заходим на роутер и любым удобным способом корректируем файл /media/DISK_A1/system/etc/init.d/S10dropbear . Строка запуска dropbear в секции "start" должна выглядеть так:
Строка 30: Строка 30:
 <note warning>ВНИМАНИЕ !!! В дальнейшем везде в статье предполагаем, что dropbear у нас будет запущен на порту 45017.</note> <note warning>ВНИМАНИЕ !!! В дальнейшем везде в статье предполагаем, что dropbear у нас будет запущен на порту 45017.</note>
  
-Чтобы изменения вступили в силу - перегружаем роутер. После перезагрузки роутер будет доступен по установленному порту 45017 (не забудьте откорректировать свойства соединения в PuTTy :-)). Для еще бОльшей защиты и удобства возможно настроить [[http://www.google.ru/#newwindow=1&output=search&sclient=psy-ab&q=dropbear+%D0%B0%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F+%D0%BF%D1%80%D0%B8%D0%B2%D0%B0%D1%82%D0%BD%D1%8B%D0%B9+%D0%BA%D0%BB%D1%8E%D1%87&oq=dropbear+%D0%B0%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F+%D0%BF%D1%80%D0%B8%D0%B2%D0%B0%D1%82%D0%BD%D1%8B%D0%B9+%D0%BA%D0%BB%D1%8E%D1%87&gs_l=hp.12...2390.2390.0.5186.1.1.0.0.0.0.134.134.0j1.1.0....0...1c.2.19.psy-ab.5UqvNfGXS4Y&pbx=1&bav=on.2,or.r_qf.&bvm=bv.48705608,d.bGE&fp=5eb90b80c236b55e&biw=1271&bih=859|авторизацию по приватным ключам]].+Чтобы изменения вступили в силу - перегружаем роутер. После перезагрузки роутер будет доступен из домашней сети по установленному порту 45017 (не забудьте откорректировать свойства соединения в PuTTy :-)). Для еще бОльшей защиты и удобства возможно настроить [[http://www.google.ru/#newwindow=1&output=search&sclient=psy-ab&q=dropbear+%D0%B0%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F+%D0%BF%D1%80%D0%B8%D0%B2%D0%B0%D1%82%D0%BD%D1%8B%D0%B9+%D0%BA%D0%BB%D1%8E%D1%87&oq=dropbear+%D0%B0%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F+%D0%BF%D1%80%D0%B8%D0%B2%D0%B0%D1%82%D0%BD%D1%8B%D0%B9+%D0%BA%D0%BB%D1%8E%D1%87&gs_l=hp.12...2390.2390.0.5186.1.1.0.0.0.0.134.134.0j1.1.0....0...1c.2.19.psy-ab.5UqvNfGXS4Y&pbx=1&bav=on.2,or.r_qf.&bvm=bv.48705608,d.bGE&fp=5eb90b80c236b55e&biw=1271&bih=859|авторизацию по приватным ключам]].
  
 **3.** Для настройки доступа из интернета к роутеру по ssh протоколу добавляем в автозапуск следующие строки: **3.** Для настройки доступа из интернета к роутеру по ssh протоколу добавляем в автозапуск следующие строки:
Строка 39: Строка 39:
 Первое правило позволяет роутеру принимать входящие соединения по порту 45017, второе правило необходимо для нормального хождения пакетов внутри роутера между интерфейсами. Первое правило позволяет роутеру принимать входящие соединения по порту 45017, второе правило необходимо для нормального хождения пакетов внутри роутера между интерфейсами.
 В "автозапуск" их можно добавить двумя способами:  В "автозапуск" их можно добавить двумя способами: 
- +  * добавить правила в секцию start скрипта запуска dropbear /media/DISK_A1/system/etc/init.d/S10dropbear  
-добавить правила в секцию start скрипта запуска dropbear /media/DISK_A1/system/etc/init.d/S10dropbear  +  * создать **__исполняемый__** файл /media/DISK_A1/system/etc/firewall.d/fw.sh следующего содержания:
- +
-создать **__исполняемый__** файл /media/DISK_A1/system/etc/firewall.d/fw.sh следующего содержания:+
  
 <code>#!/bin/sh <code>#!/bin/sh
Строка 50: Строка 48:
    
 </code> </code>
- +Второй способ является бОлее правильным. Главное отличие между ними: 
-Второй способ является бОлее правильным. Чтобы изменения вступили в силу - необходимо перегрузить роутер. +  * при корректировке скрипта запуска dropbear правила iptables добавляются каждый раз при старте ssh сервера dropbear.  
 +  * при корректировке скрипта fw.sh правила iptables добавляются каждый раз при поднятии соединения на интерфейсе роутера. Если у вас pptp, l2tp и т.п. соединение с провайдером, то используйте именно этот вариант. 
 +Чтобы изменения вступили в силу - необходимо перегрузить роутер. 
  
 На этом настройка Zyxel Keenetic/Keenetic Giga закончена, проверяем доступность роутера по ssh из интернета и переходим к настройке удаленной машины, с которой планируем подключаться к домашней сети. На этом настройка Zyxel Keenetic/Keenetic Giga закончена, проверяем доступность роутера по ssh из интернета и переходим к настройке удаленной машины, с которой планируем подключаться к домашней сети.
Строка 60: Строка 60:
 </note> </note>
  
-**4.** Если на удаленном компе стоит *nix, то ssh туннель может быть установлен с помощью программы ssh из состава openssh. При необходимости/желании иметь более продвинутые функции или GUI интерфейс - обратите внимание на программы +<note important>ВНИМАНИЕ !!! В дальнейшем предполагаем, что мы хотим получить доступ из интернета к компьютеру в локальной сети с адресом 192.168.1.39 по 80 порту (web сервер) и нашему роутеру Zyxel Keenetic с адресом на LAN интерфейсе 192.168.1.1 по порту 9091 (RPC transmission, например). В вашем случае адреса и порты могут быть другими и зависят от настроек локальной сети и приложений. 
 +</note> 
 + 
 + 
 +==== Настройка доступа на Unix клиенте ==== 
 + 
 + 
 +**4.1** Если на удаленном компе стоит *nix, то ssh туннель может быть установлен с помощью программы ssh из состава openssh. Использование:  
 +<code>ssh keenetic.zapto.org -p 45017 -L8890:192.168.1.39:80 -L8891:192.168.1.1:9091</code> "keenetic.zapto.org -p 45017" - внешнее доменное имя (IP адрес) роутера и порт, на котором запущен dropbear. Следующая часть -L8890:192.168.1.39:80 -L8891:192.168.1.1:9091 означает, что после установки ssh соединения с роутером и до момента завершения этого соединения, локальный порт 8890 клиентского компьютера будет проброшен на 192.168.1.39:80 и локальный порт 8891 клиентского компьютера будет проброшен на 192.168.1.1:9091. 
 +При необходимости/желании иметь более продвинутые функции или GUI интерфейс - обратите внимание на программы
   * gstm - SSH tunnel manager for GNOME http://sourceforge.net/projects/gstm/   * gstm - SSH tunnel manager for GNOME http://sourceforge.net/projects/gstm/
   * kstm - KDE SSH Tunnel Manager http://sourceforge.net/projects/kstm/   * kstm - KDE SSH Tunnel Manager http://sourceforge.net/projects/kstm/
   * tunnelmanager - Tunnel Manager allows users to easily manage a configurable list of SSH tunnels and their required keys. https://launchpad.net/tunnelmanager   * tunnelmanager - Tunnel Manager allows users to easily manage a configurable list of SSH tunnels and their required keys. https://launchpad.net/tunnelmanager
   * autossh - Automatically restart SSH sessions and tunnels   * autossh - Automatically restart SSH sessions and tunnels
-Как более распространенный вариант, в дальнейшем предполагаем, что в качестве удаленной машины (с которой будем подключаться к домашней сети) имеем компьютер с Windows. Доступ к домашней сети возможно настроить несколькими способами.+  * remmina - The GTK+ Remote Desktop Client 
 +  * BitwiseSSHTunellier - описание здесь же ниже. Хоть и написан для работы с творением мелкомягких, но прекрасно работает под вайном и исключительно удобен. 
 +**4.2** Как более распространенный вариант, в дальнейшем предполагаем, что в качестве удаленной машины (с которой будем подключаться к домашней сети) имеем компьютер с Windows. Доступ к домашней сети возможно настроить несколькими способами.
   * С помощью [[http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html|PuTTY]].   * С помощью [[http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html|PuTTY]].
   * С помощью [[http://www.bitvise.com/tunnelier|BitwiseTunellier]] или аналогичных программ.   * С помощью [[http://www.bitvise.com/tunnelier|BitwiseTunellier]] или аналогичных программ.
-Первый способ хорош когда соединяться с домашней сетью необходимо с компьютера, на который по каким-то причинам нежелательно ставить дополнительное программное обеспечение (используем portable версию PuTTy и запускаем ее с флешки). Второй способ более удобен при частом использовании и идеально подходит для установки на ноутбук/нетбук.+Первый способ хорош когда соединяться с домашней сетью необходимо с компьютера, на который по каким-то причинам нежелательно ставить дополнительное программное обеспечение (используем portable версию PuTTy и запускаем ее с флешки). Второй способ более удобен при частом использовании и идеально подходит для установки на личный ноутбук/нетбук, подключаемый к интернету в отпуске/на даче/в командировке и т.д.
  
-<note important>ВНИМАНИЕ !!! В дальнейшем предполагаем, что мы хотим получить доступ из интернета к компьютеру в локальной сети с адресом 192.168.1.39 по 80 порту (web сервер) и нашему роутеру Zyxel Keenetic с адресом на LAN интерфейсе 192.168.1.1 по порту 9091 (RPC transmission, например). В вашем случае адреса и порты могут быть другими и зависят от настроек локальной сети и приложений. 
-</note> 
  
 ==== Настройка доступа с помощью PuTTy ==== ==== Настройка доступа с помощью PuTTy ====
Строка 101: Строка 110:
 ==== Настройка доступа с помощью BitwiseTunellier ==== ==== Настройка доступа с помощью BitwiseTunellier ====
  
-Скачиваем и устанавливаем [[http://www.bitvise.com/download-area|Bitvise SSH Client (Tunnelier)]]. Приложение распространяется свободно для индивидуального использования, более подробно смотри EULA. На вкладке "Login" заполняем внешний IP адрес (доменное имя) роутера, порт соединения, учетные данные. На вкладке "C2S forwarding" заполняем все поля (там все интуитивно понятно). Для примера: +Скачиваем и устанавливаем [[http://www.bitvise.com/download-area|Bitvise SSH Client (Tunnelier)]]. Приложение распространяется свободно для индивидуального использования, более подробно смотри EULA. Bitvise SSH Client (Tunnelier) написан под Windows, но успешно работает и в Unix системах под эмулятором wine. На вкладке "Login" заполняем внешний IP адрес (доменное имя) роутера, порт соединения, учетные данные. На вкладке "C2S forwarding" заполняем все поля (там все интуитивно понятно). Для примера: 
  
   * Destination Host - 192.168.1.39    * Destination Host - 192.168.1.39 
Строка 119: Строка 128:
 SOCKS/HTTP Proxy forwarding настраивается на вкладке "Services". Сохраняем профиль, соединяемся с роутером - в результате получаем проброс 192.168.1.39:80 на 127.0.0.1:8890 и 192.168.1.1:9091 на 127.0.0.1:8891. Для автозапуска сохраненного профиля с именем Zyxel_Keenetic делаем (при необходимости - помещаем в автозагрузку) ярлык: SOCKS/HTTP Proxy forwarding настраивается на вкладке "Services". Сохраняем профиль, соединяемся с роутером - в результате получаем проброс 192.168.1.39:80 на 127.0.0.1:8890 и 192.168.1.1:9091 на 127.0.0.1:8891. Для автозапуска сохраненного профиля с именем Zyxel_Keenetic делаем (при необходимости - помещаем в автозагрузку) ярлык:
 <code>"C:\Program Files\Bitvise SSH Client\BvSsh.exe"  -profile=C:\Progra~1\Bitvis~1\Zyxel_Keenetic.bscp -loginOnStartup</code>. Все возможные задаваемые из командной строки параметры выдаются по запуску <code>C:\Program Files\Bitvise SSH Client\BvSsh.exe -help</code> <code>"C:\Program Files\Bitvise SSH Client\BvSsh.exe"  -profile=C:\Progra~1\Bitvis~1\Zyxel_Keenetic.bscp -loginOnStartup</code>. Все возможные задаваемые из командной строки параметры выдаются по запуску <code>C:\Program Files\Bitvise SSH Client\BvSsh.exe -help</code>
 +
  
 Источники / Полезные ссылки: Источники / Полезные ссылки:
Строка 126: Строка 136:
   * [[http://avz.org.ua/wp/2010/06/29/putty-how-to-make-your-windows-useful/|PuTTY: делаем Windows полезным]]   * [[http://avz.org.ua/wp/2010/06/29/putty-how-to-make-your-windows-useful/|PuTTY: делаем Windows полезным]]
   * [[http://putty.org.ru/faq.html|PuTTY FAQ: Часто Задаваемые Вопросы]]   * [[http://putty.org.ru/faq.html|PuTTY FAQ: Часто Задаваемые Вопросы]]
- +  * [[http://habrahabr.ru/post/122445/|Неплохая статья о возможностях ssh: Памятка пользователям ssh]]
- +
- +
- +
- +