Доступ из интернета к роутеру Zyxel Keenetic/Keenetic Giga и ресурсам домашней сети с использованием ssh-туннелей.

Zyxel Keenetic Lite 2 — ping и удалённый доступ из Интернет

  • Введение
  • Zyxel Keenetic ping
  • Zyxel Keenetic удалённый доступ

Введение

Известно, что интернет-центры серии Keenetic отличаются своей надёжностью и стабильностью работы. Но иногда необходимо удалённо, внести какие-то изменения в работу локальной сети, к примеру пробросить порты, или убедиться что интернет-центр находится в глобальной сети и отвечает на (ICMP Echo-Request) запросы по протоколу ICMP, в простонародье ping запросы. Для организации удалёного доступа к интернет-центру необходимо открыть внешний доступ к WEB интерфейсу по протоколу HTTP, а для получения (ICMP Echo-Reply) ответов, или ping ответов, необходимо разрешить отвечать на ping запросы. Как это сделать описанно ниже. Инструкция релевантна для всей серии Keenetic(ов) с микропрограммой второго поколения NDMS V2.


Для демонстрации, мы организовали локальную сеть с адресным пространством 192.168.1.1 — 192.168.1.254 на основе Zyxel Keenetic LIte 2 — №1
. К данной сети подключили другой интернет-центр Zyxel Keenetic Lite 2 (ZYXEL KEENETIC LITE II) №2
с внутренним адресным пространством 192.168.0.1 — 192.168.0.254. К Keenetic(y) №2
мы и откроем внешний доступ и разрешим прохождение пинг запросов.

Zyxel Keenetic ping


Для начала, зайдем в Keenetic №2
и во вкладке Интернет/ Подключения/ Brodband connection присвоим ему статический IP 192.168.1.5. Маску подсети 255.255.255.0 и основной шлюз 192.168.1.1


Далее зайдём во вкладку Безопасность/ Межсетевой экран и создадим правило для интерфейса «Broadband connection (ISP)», так как мы подключены к Keentic(y) №1
через этот интерфейс. Чтобы создать правило, необходимо нажать кнопку «добавить правило». Во всплывшем окне разрешить прохождение пакетов по протоколу ICMP


Теперь перейдём в локальную сеть Keenetic(a) №1
и пропингуем адрес 192.168.1.5
. Для этого запустим программу cmd.exe
. В WIN7 нажать WinKey+r
, в всплывшем окне введём cmd.exe
и нажмём ввод. В появившемся чёрном окне введём команду ping 192.168.1.5
. Утилита «ping» сообщает, что узел по данному адресу доступен и показывает время прохождения пакетов.

в начало

Zyxel Keenetic удалённый доступ


Открываем удалённый доступ. Заходим в WEB интерфейс Keenetic(а) №2
. Переходим во вкладку Безопасность/ Межсетевой экран. Выбираем закладку Трансляция сетевых адресов (NAT). Нажимаем кнопку «добавить правило». Во всплывшем окне выбираем:

  • Интерфейс:
    Broadband connection (ISP)
  • Протокол:
    TCP
  • Порты TCP/UDP:
    Один порт 8080
  • Перенаправить на адрес:
    192.168.0.1
  • Новый номер порта назначения:
    80

По сути, мы пробросили порты Keenetic(a) на самого себя в локальной сети.


Остаётся проверить, всё ли правильно работает. Перейдём в локальную сеть №1
и в браузере наберём адрес http://192.168.1.5:8080. 8080
— это номер внешнего порта через который мы получим доступ ко внутреннему порту 80
. Выходит приглашение ввести логин и пароль, а это значит, что внешний доступ есть и мы всё сделали правильно.

в начало

You have no rights to post comments

Настройка удаленного доступа на роутере ZyXel В» RouteWorld. Мир маршрутов. Наш мир.

01/03/2016 18:35

Поехали. Заходим на интерфейс роутера. На данный момент роутеры линейки Keenetic
имеют следующий адрес для входа — my.keenetic.net
, но старые версии прошивок могут не понимать, что вы от них хотите. В этом случае смотрим наклейку на роутере, где написан IP-адрес для входа на интерфейс. Если такой наклейки нет, то с помощью команды arp -a
посмотрите корневой адрес сети.

В данном случае это 192.168.1.1
, но подсеть может быть и другой. К слову, MAC-адрес указанный здесь будет отличным от того, который транслируется WAN-интерфейсом, ну это так, к слову.Отлично, мы знаем адрес интерфейса роутера. Заходим туда.Если роутер новый, то первым делом вам предложат задать пароль для входа. Пусть это будет дефолтный admin
, потом вы в любое время сможете его поменять на какой-то другой. Причем сделать это следует в обязательном порядке, учитывая наличие удаленного доступа (даже в случае частичного — с конкретного IP-адреса или пула).И вот мы на главной странице настроек. Если роутер был сброшен до дефолта, то вас сначала спросят, хотите ли вы воспользоваться мастером быстрой настройки или веб-конфигуратором. Выбирайте второе.Далее нам нужен раздел Безопасность
, где и будут происходить все дальнейшие манипуляции.Начнем с самого простого. Заходим во вкладку Трансляция сетевых адресом (NAT)
.На приведенном скриншоте правило уже создано, поэтому отдельно покажу, как оно создается:Отмечу, что в примере для статьи адрес роутера 192.168.88.1
!

В качестве интерфейса выбираем активное интернет соединение, в данном случае это дефолтный Broadband connection (ISP)
, действующим протоколом для соединения будет TCP/80
, адрес перенаправления может быть другим, в случае если IP роутера, например 192.168.88.1
или какой-либо другой заданный пользователем. Номер порта выбираем по умолчанию 80
.В интерфейсе командной строки это будет выглядеть следующим образом:

> ip static tcp ISP 80 192.168.88.1 80     /проброс порта 80/

Особенностью данной настройки является то, что на WAN-порт роутера может стучаться любой IP-адрес. Это не всегда нужно и безопасно, особенно в случае, если у интерфейса остается стандартный заводской пароль вида admin/admin. Поэтому рассмотрим второй вариант.В этом случае правило NAT
создавать уже не нужно, достаточно создать правило для Межсетевого экрана Firewall
в меню Безопасность => Межсетевой экран
.Здесь мы создаем правило для интерфейса ISP
(активный интерфейс для подключения к сети).В поле Действие
мы ставим Разрешить
, в поле же IP-адрес источника
установите значение Один
для доступа к интерфейсу только с одного указанного адреса или Подсеть
, если требуется указать целую подсеть или пул IP-адресов. В конкретном примере мы указали определенный IP-адрес. В поле Протокол
выбираем уже знакомый TCP/80
, через который будет разрешен доступ на роутер. Номер порта назначения мы также оставляем по умолчанию со стандартным значением 80
.Для особых ценителей Зюхели приготовили сюрприз в виде протокола telnet
. Правило будет выглядеть так:Отличия от настроек удаленки на графический интерфейс в номере протокола и порта назначения, здесь мы выставляем не 80, а 23
.

ip static tcp ISP 23 192.168.88.1 23     /проброс порта 23/

Бывают случаи, что провайдер (нас это не касается, но вдруг кому-то пригодится) блокирует стандартный 80-ый порт, поэтому в таком случае нужно выставить кастомный порт:В интерфейсе командной строки это будет выглядеть следующим образом:

ip static tcp ISP 8080 192.168.88.1 80 /перенаправление с порта 8080 на 80/

Также иногда полезно иметь возможность пропинговать роутер, некоторые марки имеют такую возможность по умолчанию, но вот Зюхелям для этого требуется правило в настройках Межсетевого экрана Firewall
. Идем в Безопасность => Межсетевой экран
.Это правило разрешает пинговать IP-адрес роутера из любого источника. Это не всегда безопасно, поэтому давайте подумаем прежде, чем делать это.скачать dle 12.0

Сеть и интернет / Статьи и теория

wiki:dostup_iz_interneta_k_routeru_i_resursam_domashnej_seti_s_ispolzovaniem_ssh-tunelej — Пакеты opkg для ZyXEL Keenetic

Иногда возникает необходимость доступа к разным ресурсам домашней сети в то время, когда вы находитесь на работе/даче/у друзей/в отпуске/гостевом Wi-Fi и т.д. Одно из возможных решений — использование ssh-туннелей для безопасного доступа к домашнему роутеру и ресурсам домашней LAN
сети. При использовании этого варианта ВЕСЬ
передаваемый трафик между клиентом и домашней сетью (включая и информацию, которая при обычных условиях передается в открытом виде) будет зашифрован с использованием выбранных на сервере dropbear алгоритмов шифрования. Это даст дополнительную защиту Ваших данных от перехвата (в гостевом Wi-Fi это сильно актуально), но и в связи с этим необходимо учитывать, что этот способ не самый лучший выбор для передачи больших объемов информации (т.к. весь передаваемый поток сначала будет подвергнут шифрованию, а после передачи — расшифровке, что повлечет повышенную нагрузку как на роутер, так и на клиентское рабочее место).

Немного теории из википедии:

Большинство программ для установления соединения используют протокол TCP, который можно передавать через безопасный туннель используя протокол SSH
. Так можно устанавливать множество дополнительных TCP соединений внутри одного ssh соединения. Это удобно для сокрытия соединений и шифрования протоколов, которые являются небезопасными и для обхода фаерволов. UDP соединения иногда тоже возможно туннелировать с помощью дополнительных программ, например, netcat.

Поясню мысль в слегка упрощенном виде. Большинство используемых протоколов (telnet, http, ftp, pop3, imap4, smtp, smb, rdp и т.д.) передают данные и параметры аутентификации в текстовом виде без шифрования. Это значит, что нехороший человек (впрочем, необходимо отметить, что довольно квалифицированный) может проанализировать пакеты, передающиеся по интернету в адрес роутера, и извлечь ваши логины и пароли, читать вашу почту и т.д. Именно поэтому крайне не рекомендуется открывать на интерфейсе WAN
лишние порты. Все данные, передаваемые по протоколу ssh (включая явки и пароли), зашифрованы с использованием стойкой криптографии. В протоколе ssh заложена возможность создать защищенное соединение и передавать внутри него данные по незащищенным протоколам, причем извне весь траффик будет выглядеть как зашифрованный. Это и есть ssh туннели, использование которых позволяет получить доступ к ресурсам LAN
путем установления защищенного соединения. Для этого требуется открыть только один порт в WAN
, а именно порт на котором слушает ssh сервер (по умолчанию 22).

Что требуется:

1. Наличие внешнего (так называемого «белого») IP адреса, либо, если у вас «серый» IP адрес, то — «проброшенного» до вас провайдером одного порта. Т.н. «серые» (или «частные», «приватные») IP адреса — это адреса из диапазонов 10.0.0.0 — 10.255.255.255, 172.16.0.0 — 172.31.255.255 и 192.168.0.0 — 192.168.255.255. Кроме этого IP адрес может быть статическим, либо динамическим — тогда вам потребуется зарегистрироваться на каком-нибудь сервисе, предоставляющем доменное имя (например, http://www.dyndns.org , http://www.no-ip.com) и настроить эту учетную запись через web интерфейс роутера (Стартовая страница — Интернет — Доменное имя), чтобы обеспечить обновление вашего динамического IP адреса на выбранном сервисе. В этом случае в дальнейшем с роутером нужно будет соединяться используя полученное доменное имя.

2. ssh сервер должен быть установлен и запущен на роутере.

3. Настройки на роутере с целью доступа к ssh серверу (dropbear) из интернета.

4. Установка и настройка ssh клиента на удаленной машине, с которой мы будем подключаться через ssh туннели к домашней сети.

Установка и настройка роутера

1.
Требования первого пункта по IP адресу (либо «пробросу» портов) — сугубо организационные и решаются с домашним провайдером на стадии заключения договора подключения к сети Интернет. Если провайдер не предоставляет такой услуги, то описанными в этой статье способами получить доступ из интернета к роутеру и домашней локальной сети невозможно.

2.
Подробно установка системы opkg (в том числе и ssh сервера dropbear) описана в статье «Установка системы opkg.» Сервер dropbear может быть запущен не только на порту по умолчанию (порт 22), но и на любом другом. Чтобы изменить порт по умолчанию (22), прослушиваемый сервером dropbear на нужный порт (например 45017), через PuTTy по ssh заходим на роутер и любым удобным способом корректируем файл /media/DISK_A1/system/etc/init.d/S10dropbear . Строка запуска dropbear в секции «start» должна выглядеть так:

$DROPBEAR -p 45017 -d $DSS -r $RSA

ВНИМАНИЕ !!! В дальнейшем везде в статье предполагаем, что dropbear у нас будет запущен на порту 45017.

Чтобы изменения вступили в силу — перегружаем роутер. После перезагрузки роутер будет доступен из домашней сети по установленному порту 45017 (не забудьте откорректировать свойства соединения в PuTTy ). Для еще бОльшей защиты и удобства возможно настроить авторизацию по приватным ключам.

3.
Для настройки доступа из интернета к роутеру по ssh протоколу добавляем в автозапуск следующие строки:

iptables -I INPUT -p tcp --dport 45017 -j ACCEPT iptables -I INPUT -i lo -j ACCEPT

Первое правило позволяет роутеру принимать входящие соединения по порту 45017, второе правило необходимо для нормального хождения пакетов внутри роутера между интерфейсами. В «автозапуск» их можно добавить двумя способами:

  • добавить правила в секцию start скрипта запуска dropbear /media/DISK_A1/system/etc/init.d/S10dropbear
  • создать исполняемый

    файл /media/DISK_A1/system/etc/firewall.d/fw.sh следующего содержания:
#!/bin/sh   iptables -I INPUT -p tcp --dport 45017 -j ACCEPT iptables -I INPUT -i lo -j ACCEPT  

Второй способ является бОлее правильным. Главное отличие между ними:

  • при корректировке скрипта запуска dropbear правила iptables добавляются каждый раз при старте ssh сервера dropbear.
  • при корректировке скрипта fw.sh правила iptables добавляются каждый раз при поднятии соединения на интерфейсе роутера. Если у вас pptp, l2tp и т.п. соединение с провайдером, то используйте именно этот вариант.

Чтобы изменения вступили в силу — необходимо перегрузить роутер.

На этом настройка Zyxel Keenetic/Keenetic Giga закончена, проверяем доступность роутера по ssh из интернета и переходим к настройке удаленной машины, с которой планируем подключаться к домашней сети.

Установка и настройка клиентского компьютера

ВНИМАНИЕ !!! В дальнейшем под «клиентским компьютером» или «удаленным компьютером» предполагаем компьютер, с которого будем соединяться с роутером из интернета (ноутбук, нетбук, комп на работе и т.д.)

ВНИМАНИЕ !!! В дальнейшем предполагаем, что мы хотим получить доступ из интернета к компьютеру в локальной сети с адресом 192.168.1.39 по 80 порту (web сервер) и нашему роутеру Zyxel Keenetic с адресом на LAN
интерфейсе 192.168.1.1 по порту 9091 (RPC
transmission, например). В вашем случае адреса и порты могут быть другими и зависят от настроек локальной сети и приложений.

Настройка доступа на Unix клиенте

4.1
Если на удаленном компе стоит *nix, то ssh туннель может быть установлен с помощью программы ssh из состава openssh. Использование:

ssh keenetic.zapto.org -p 45017 -L8890:192.168.1.39:80 -L8891:192.168.1.1:9091

«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/
  • 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
  • autossh — Automatically restart SSH
    sessions and tunnels
  • remmina — The GTK+ Remote Desktop Client
  • BitwiseSSHTunellier — описание здесь же ниже. Хоть и написан для работы с творением мелкомягких, но прекрасно работает под вайном и исключительно удобен.

4.2
Как более распространенный вариант, в дальнейшем предполагаем, что в качестве удаленной машины (с которой будем подключаться к домашней сети) имеем компьютер с Windows. Доступ к домашней сети возможно настроить несколькими способами.

  • С помощью PuTTY.
  • С помощью BitwiseTunellier или аналогичных программ.

Первый способ хорош когда соединяться с домашней сетью необходимо с компьютера, на который по каким-то причинам нежелательно ставить дополнительное программное обеспечение (используем portable версию PuTTy и запускаем ее с флешки). Второй способ более удобен при частом использовании и идеально подходит для установки на личный ноутбук/нетбук, подключаемый к интернету в отпуске/на даче/в командировке и т.д.

Настройка доступа с помощью PuTTy

Устанавливаем PuTTy, создаем соединение с роутером. При верно выполненных настройках п. 1-3 уже имеем доступ к роутеру из интернета по ssh.

Чтобы настроить доступ к другим ресурсам роутера и локальной сети идем в PuTTy в свойства соединения с роутером, далее Connections-SSH
-Tunnels. Пункт «Local ports accept connections from other hosts» должен быть включен (если «галки» нет, то — ставим), Source port указываем 8890, Destination указываем 192.168.1.39:80. Жмем Add, переходим в пункт Session, сохраняем изменения в сессии соединения с роутером. Этими действиями мы добавили проброс порта 80 компьютера 192.168.1.39 из домашней сети на порт 8890 клиентского (удаленного) компьютера. Смотри скриншоты 1-3 ниже.

Аналогично настраиваем доступ к RPC
transmission через ssh туннели: в PuTTY идем в свойства соединения с роутером, далее Connections-SSH
-Tunnels. Пункт «Local ports accept connections from other hosts» должен быть включен (если «галки» нет, то — ставим), Source port указываем 8891, Destination указываем 192.168.1.1:9091. Жмем Add, переходим в пункт Session, сохраняем изменения в сессии соединения с роутером. Этими действиями мы добавили проброс порта 9091 роутера 192.168.1.1 из домашней сети на порт 8891 клиентского (удаленного) компьютера. Смотри скриншот 1-3 ниже.

Как это работает:

На удаленном компьютере соединяемся через PuTTy с роутером по ssh, вводим логин/пароль, окно PuTTy сворачиваем.

Запускаем на удаленном компьютере браузер, вводим в адресной строке http://127.0.0.1:8890 и попадаем на страницу 192.168.1.39:80 (web сервер).

Запускаем на удаленном компьютере браузер, вводим в адресной строке http://127.0.0.1:8891 и попадаем на страницу 192.168.1.1:9091 (RPC
transmission). Если вы пользуетесь Transmission Remote GUI
(или аналогичными программами), то в свойствах соединения указываем сервер 127.0.0.1 порт 8891 и попадаем на transmission роутера.

Вместо всех приведенных выше примеров локальных http туннелей можно сделать один единственный динамический туннель, при этом ssh сервер будет выполнять функции socks proxy: putty: Source port 1080, ставим галку около Dynamic, добавляем туннель, сохраняем изменения в сессии соединения PuTTy с роутером. Далее, естественно, устанавливаем ssh соединение с роутером, вводим учетные данные — все, socks proxy работает. После этого в настройках firefox (или своего браузера) указываем SOCKS5 proxy: localhost:1080 и мы внутри домашней сети (т.е. нам вообще будут доступны адреса типа http://192.168.1.1:9091 и http://192.168.1.39:80 ). Смотри скриншоты 4-5 ниже.

ВНИМАНИЕ !!! Соединения по другим портам / IP адресам настраиваются аналогично. Туннели пробрасываются только если в PuTTy (или ssh) установлено соединение с роутером. Если соединение с роутером прекращено, туннели также перестают работать. Т.е окно PuTTy или ssh (с активным ssh соединением с роутером) должно оставаться открытым все время работы приложений через туннель.

Настройка доступа с помощью BitwiseTunellier

Скачиваем и устанавливаем Bitvise SSH Client (Tunnelier). Приложение распространяется свободно для индивидуального использования, более подробно смотри EULA. Bitvise SSH
Client (Tunnelier) написан под Windows, но успешно работает и в Unix системах под эмулятором wine. На вкладке «Login» заполняем внешний IP адрес (доменное имя) роутера, порт соединения, учетные данные. На вкладке «C2S forwarding» заполняем все поля (там все интуитивно понятно). Для примера:

  • Destination Host — 192.168.1.39
  • Dest.Port 80
  • Listen Interface 127.0.0.1
  • List.Port 8890

Сохраняем правило проброса порта.

  • Destination Host — 192.168.1.1
  • Dest.Port 9091
  • Listen Interface 127.0.0.1
  • List.Port 8891

Сохраняем правило проброса порта.

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 делаем (при необходимости — помещаем в автозагрузку) ярлык:

"C:Program FilesBitvise SSH ClientBvSsh.exe"  -profile=C:Progra~1Bitvis~1Zyxel_Keenetic.bscp -loginOnStartup

. Все возможные задаваемые из командной строки параметры выдаются по запуску

C:Program FilesBitvise SSH ClientBvSsh.exe -help

Источники / Полезные ссылки:

  • Использование ssh-тунелей для безопасного доступа к ресурсам LAN
  • PuTTY: делаем Windows полезным
  • PuTTY FAQ: Часто Задаваемые Вопросы
  • Неплохая статья о возможностях ssh: Памятка пользователям ssh
Рейтинг автора
5
Подборку подготовил
Андрей Ульянов
Наш эксперт
Написано статей
168
Ссылка на основную публикацию
Похожие публикации