Работа с роутерами D-Link через Telnet
Сегодня мы узнаем, как с помощью утилиты telnet можно подключиться к роутеру D-Link и что это нам дает. Итак, что мы имеем:
- Роутер. Моим подопытным будет роутер D-Link DSL-2640U. Это классический 4-х портовый модем, подключающийся к интернету с помощью технологии ADSL ( Asymmetric Digital Subscriber Line) через телефонный провод и раздающий его на все 4 порта + WiFi.
- Компьютер под управлением операционной системы Windows 7 Pro
Итак. Опкрываем меню Пуск и вводим команду cmd. Можно так же воспользоваться командой Windows+R для вызова окна Выполнить и ввести команду cmd туда. Жмем Enter и перед нами всплывет окно командной строки.
Далее выполним команду telnet 192.168.1.1 23 , где 192.168.1.1 — это ip-адрес нашего модема, а 23 — порт telnet.
Если на Windows вы получите ошибку, попробуйте повторить ее после start /w pkgmgr /iu:»TelnetClient
Внимание, перед тем, как заходить на модем через telnet, убедитесь, что в настройках модема разрешено подключение через telnet (при заводских настройках оно включено по умолчанию)
Если вы все сделали правильно, то telnet запросить логин и пароль. И не паникуйте, что при вводе пароля не появляются символы на экране. Это специальная фишка linux-систем как защита от кражей паролей
Если вы все сделали правильно, то перед вами появится следующая картина:
Что такое BusyBox вы можете почитать здесь. Если кратко, то это своеобразный интерпретатор команд для unix-подобных систем.
Итак, какие команды наиболее интересны:
-
-
- Команда ls — — выводит список файлов или каталогов (для вывода корневых каталогов можно так же использовать echo */ )
- cat — читает файл. (например, узнать версию встроенной операционной системы можно с помощью cat /proc/version , архитектуру — cat /proc/cpuinfo , память — cat /proc/mtd , )
-
- pwd — узнать текущий каталог
- ip — команда, раскрывающая все возможности работы с сетью
- free — оперативная память на борту
Итак, попробуем посмотреть, что из каких файлов и папок состоит наша прошивка. Вводим команду ls -al и нажимаем Enter. И получиться у нас должно что-то типа такого:
Куча всего непонятного, правда? Не пугайтесь. Не так страшен черт, как его малюют. Давайте разбираться:
Первый столбец — это права доступа к файлу/папке (если кратко r — чтение, w — запись, x — исполнение, — — права отсутствуют, t — запрет на удаление пользователем), второй — это количество папок в в ветке, третий — размер файла, четвертый — название. Не так уж и страшно.
Теперь рассмотрим, что же представляет каждая из этих папок в ос Linux:
- /var — Системные данные и конфигурационные файлы (в ос linux обычно является отдельной файловой системой)
- /usr — Большинство стандартных программ и другие полезные компоненты (также часто в linux является отдельной файловой системой)
- /tmp — Временные файлы, которые могут удаляться при перезагрузке
- /sbin — Команды, необходимые для обеспечения минимальной работоспособности системы
- /root — Домашний каталог суперпользователя
- /proc — Информация о всех выполняющихся процессах
- /opt — Программные пакеты необязательных приложения (которые пока не находят широкого применения)
- /mnt — Временные точки монтирования
- /lib, lib32, /lib64 — Библиотеки и вспомогательные файлы для стандартных программ
- /home — Стандартные домашние каталоги пользователей
- /etc — Важные файлы запуска и конфигурации системы
- /dev — Файлы устройств: дисков, принтеров, псевдотерминалов и т.д.
- /bin — команды операционной системы ядра
Если хотите узнать больше, введите в командной строке cat /proc/meminfo . Вы увидите следующее окошко:
Из всего этого нас больше всего интересует MemTotal и MemFree — всего и свободной памяти соответственно. Важной так же является информация в proc/mounts
На этом краткий обзор на сегодня закончу. В следующей статье
Через telnet мы можем так же посмотреть mac-адрес нашего устройства с помощью команды ip link:
Либо еще проще, через команду mfc mac get , например, для ревизий U/RA/U2A — можно проверить командой mfc hwrev get либо через mfc dump. Через telnet мы так же можем попробовать сменить mac-адрес модема, если верить вот этим инструкциям:
Для H/W U1 с версией ПО 1.0.21 — mfc set_base_mac XX:XX:XX:XX:XX:XX Для H/W U1 с версией ПО 2.0.0 — mfc set_wan_mac XX:XX:XX:XX:XX:XX Для H/W U2 с версией ПО 2.5.3 — mfc mac set XX:XX:XX:XX:XX:XX
Но у меня для моего U/RA/U2A из этих инструкций ничего не сработало: они выполнились и даже mfc mac get показал правильный мак, но в веб-интерфейсе нули так и остались. Помогла команда
То, что вам нужно подставить вместо звезд, я думаю, вы догадаетесь без меня. Полный синтаксис команды будет такой: mfc init
Какие есть альтернативы в случае неудачи. Не отчаивайтесь. Можно попробовать восстановить mac-адреса с помощью кабеля или даже редактирования прошивки, слитой через программатор. Но такая работа требует больше усилий и навыков. Но в принципе эти способы могут пригодиться, если telnet вам откажет. Так же некоторые прошивки позволяют редактировать мак непосредственно в веб
Для более плотной работы с настройками модема введите команду resident_cli . Надо будет подтвердить логин и пароль еще раз. В окне терминала вы увидите снова общую информацию об устройстве и станет доступна консоль для настройки модема. Чтобы вернуться в окно BusyBox, выполните команду sh
Какие еще интересные команды? Для настройки фаервола есть команда iptables . Она открывает перед администратором огромные возможности (от которых честно говоря, можно захлебнуться. Так что я рекомендую настройки фаервола делать через обычный веб-интерфейс)
Перед тем, как прошивать, хорошо бы было снять копию текущей прошивки. Но это не так просто. В консоли D-Link нет готовой команды для бэкапа. Но есть другие не менее любопытные. Например, hexdump, а так же
- dd — копирование файла с конвертированием и форматированием (с параметрами if, of, bs, skip, seek)
- mkdir — создание каталога
Важно знать: все прошивки D-Link распространяются под лицензией GPL! А значит имеют открытый исходный код. Я не знаю, почему компания решила открыть все свои исходники своего ПО. На мой взгляд, это шаг назад, т.к. любой злоумышленник может модифицировать прошивку, залить туда троян либо другой вирус и заразить модемы. В связи с этим интернете, к сожалению, есть много описаний уязвимостей модемов D-Link с подробными рецептами, как ими пользоваться. Очевидно, это минус. Но нам это сейчас на руку. Конечно, нашей целью не является написание вирусов, а наоборот — расширение функционала.
Второй момент — это то, что исходники прошивки ни на каком ни php или asp, а на голом C++, под gcc заточенном. Не то, чтобы это было очень плохо, но это усложняет задачу. Лично для меня C++ — самый сложный стек, с которым мне приходилось сталкиваться. Я считаю, это язык для профессионалов. Но не все так плохо. Итак, впереди нас ждет веселое и увлекательное путешествие в реверс-инжиниринг исходного кода маршрутизаторов D-Link!
Все исходники на свои программы D-Link выкладывает здесь.
Роутер ZyXEL, настраиваем Telnet-ом
Протокол Telnet – это стандарт обмена данными между двумя сетевыми устройствами, разработанный для реализации удаленного управления. Не все знают, что настройка Wi-Fi роутера может быть выполнена по Telnet с любого компьютера локальной сети. Для этого необходимо, чтобы в роутере опция доступа по Telnet была включена, а включают ее через web-интерфейс.
Интересным выглядит тот факт, что иногда на роутер можно зайти с использованием «Телнет», в то время как доступ по HTTP, то есть через графический интерфейс, остается недоступен.
Условие возможности подключения к маршрутизатору
Если требуется зайти в интерфейс управления роутером, сначала необходимо выяснить, чему равен IP-адрес этого устройства. Без IP-адреса не получится открыть даже сессию «Телнет», не говоря уже о доступе через браузер. Большинство сетевых комбайнов по умолчанию наделены следующим адресом: 192.168.1.1. Для фирмы D-Link надо сделать поправку в двух последних цифрах (должно быть «0.1»). Настройте сетевую карту ПК на соответствующие значения, изменив последнюю цифру ее IP.
Дальше будет рассмотрено, как зайти в сессию Telnet роутера ZyXEL, но похожий принцип используется при управлении устройствами и других производителей.
Как открыть сеанс связи
В любой операционной системе есть командная строка. Запустив ее, достаточно выполнить одну команду: telnet 192.168.1.1. После чего роутер, подключенный к ПК по Ethernet или по Wi-Fi, сразу же отвечает нам, запрашивая логин и пароль.
Мы в ответе использовали имя «admin» и пароль «1234», то есть значения, установленные по умолчанию в устройствах ZyXEL. Как видим, эти значения были приняты, и появилась подсказка «config».
В некоторых моделях фирмы ZyXEL используется не только текстовый интерфейс, но и командный список (меню):
Чтобы вернуть режим текстовых команд, выполните переход 28 -> 4 (задействуйте пункт 28 и затем пункт 4). В результате, Вы получите надпись «config» и курсор для ввода команд. Далее мы будет рассматривать только указанный режим.
Настраиваем устройство через «Телнет»
Интерфейс текстовых команд, то есть командная строка маршрутизаторов и других устройств ZyXEL, называется словом «CLI» (Command Line Interpreter). Большинство команд для всех моделей – одинаковы, например, это «system reboot» (перезагрузка), «system config-save» (сохранение настроек), и другие. Некоторые команды для той или иной модели могут отличаться, а скачать подробное руководство можно на сайте поддержки, там же, где предоставляют для скачивания фирменную прошивку.
В устройствах других фирм, не ZyXEL, предусмотрена команда «help», которая выдает Вам список доступных команд.
Удаленный доступ к web-интерфейсу
Порту WAN сетевого комбайна присваивается IP-адрес. Значение данного адреса обычно не меняется, даже если используются динамические адреса. Зная свой IP-адрес, пользователь может открыть интерфейс управления устройством с любого компьютера, имеющего подключение к Интернету. По умолчанию подобный метод доступа в роутерах ZyXEL запрещен. А избавиться от данного ограничения поможет командная строка.
Наберите следующую команду: ip stаtic tcp ISP 80 192.168.1.1 80// порт «80» используется web-интерфейсом.
Команда «ip stаtic» вообще-то создает привязку локальных адресов к глобальным IP-адресам. Заметим, что если используется такой тип подключения, где предусмотрена авторизация (PPTP, L2TP либо PPPoE), то вместо слова «ISP» надо подставить другое название. Узнать его просто: Interface ?// отобразятся все сетевые интерфейсы.
Для протокола PPPoE интерфейс соединения с Интернетом обычно назван так – «PPPoE0» (важно соблюдать регистр). Не забудьте сохранить настройки (system config-save). В результате, можно будет открыть web-интерфейс из Интернета.
Некоторые провайдеры 80-й порт блокируют, так что с первого раза наверняка ничего не получится. Но можно сделать хитрее, перенаправив на внутренний порт 80 внешний порт с номером 8080: ip stаtic tcp ISP 8080 192.168.1.1 80// так мы обходим ограничения провайдера.
В общем, аналогичным образом пробрасывается порт и для «Телнета» (его номер равен «23»).
Море команд для Wi-Fi
Проще всего начинать освоение командной строки с использования тех команд, которые отвечают за параметры точки доступа (сети Wi-Fi). Каждая из этих команд начинается словом «interface», а дальше идет уточняющая последовательность. Самый простой вариант: interface ssid SYSDAY// имя беспроводной сети получит значение «SYSDAY».
Отметим, что указывая вместо имени параметр «auto», можно вернуть «точке доступа» то значение SSID, которое было задано на заводе.
Есть еще несколько интересных команд, управляющих радио модулем. Чтобы не набирать каждый раз слово «interface», используйте его, как отдельную команду (подсказка трансформируется в «config-if»). Список команд, применяемых в режиме «config-if», мы приводим далее.
- power число// вместо слова «число» задайте мощность в процентах;
- channel номер// вместо «номер» задайте номер радиоканала (1-13);
- country-code страна// параметр «страна» содержит 2 буквы, например, RU;
- hide-ssid// скрыть имя сети;
- no hide-ssid// открыть имя сети.
И это – далеко не полный список параметров, которые поддаются изменению прямо из командной строки.
Надо отметить, что при помощи «Телнета» можно поменять, либо включить алгоритм шифрования Wi-Fi (WPA или WPA2).
А значение ключа задается командой «interface authentication wpa-psk». Таким образом, появляется возможность дистанционно, из любой точки мира, зайти на роутер через Telnet, и поменять пароль на беспроводную сеть. Очень полезно, не так ли?
Заходим «Телнетом» на роутер-модем
-