Ставим прошивку OpenWrt на роутер TP-Link TL-WDR3600

14 марта 2018

OpenWrt (Open Wireless RouTer) — это основанная на Linux открытая прошивка для беспроводных роутеров. В этой заметке будет рассмотрена установка OpenWrt на роутер TP-Link TL-WDR3600, также известный, как TP-Link N600. Роутер этот не новый, но довольно неплохой. К тому же, он числится среди рекомендуемых устройств для установки OpenWrt. Ставить OpenWrt на роутер интересно как минимум из соображений безопасности (в официальных прошивках часто много багов, не говоря уже о бэкдорах). Плюс к этому OpenWrt фактически превращает ваш роутер в маленький VDS, на котором можно выполнять какие-то задачи по cron’у, запустить rtorrent в screen, поднять Nginx, IRC-баунсер, и так далее.

Важно! Поисковые системы часто выдают в результатах поиска ссылки на сайт wiki.openwrt.org. Стоит иметь в виду, что на момент написания этих строк wiki.openwrt.org заморожен и может содержать устаревшие сведения. Актуальную информацию следует искать на openwrt.org.

Установка и настройка OpenWrt

Найти TP-Link TL-WDR3600 в магазине сейчас непросто, зато не составляет труда купить с рук. Так выглядит устройство, купленное мной на Avito за 1000 рублей (около 18$):

TP-Link TL-WDR3600 (N600)

Fun fact! TP-Link TL-WDR3600, как и многие другие роутеры, основанные на SoC производства Atheros, работают на архитектуре MIPS. Здесь используется SoC AR9344, работающий на частоте 533 МГц. Характерно, что процессор является big endian, что в наши дни встречается не часто.

Прошивку качаем отсюда (если вы читаете заметку в далеком будущем, проверьте, нет ли в каталоге /releases/ более новых версий прошивки):

https://downloads.openwrt.org/releases/17.01.4/targets/ar71xx/generic/

Файл называется:

lede-17.01.4-ar71xx-generic-tl-wdr3600-v1-squashfs-factory.bin

Fun fact! Эта конкретная версия прошивки на самом деле была сделана в рамках проекта LEDE (Linux Embedded Development Environment). LEDE — это форк OpenWrt, помимо прочего, предоставляющий более свежие и при этом стабильные версии прошивок. Для сравнения, последняя стабильная версия прошивки для TL-WDR3600 от OpenWrt версии 15.05.1 была выпущена два года назад, 16 марта 2016 года. Но прямо сейчас LEDE и OpenWrt снова сливаются в один проект. Этим объясняется lede- в имени прошивки, наличие у проекта OpenWrt двух форумов, и прочие странности, хотя по факту это уже один проект.

Сзади роутера зажимаем кнопку Reset, чтобы сбросить его к заводским настройкам. Затем подключаем к нему ноутбук по витой паре, заходим в веб-админку на 192.168.0.1, авторизуемся под именем admin с паролем admin. В админке находим раздел для обновления прошивки. У меня оказалась локализованная версия роутера, поэтому раздел назывался Системные инструменты → Обновление встроенного ПО. Загружаем через форму .bin файл с прошивкой OpenWrt.

После обновления новая админка будет доступа по адресу 192.168.1.1, авторизуемся под именем root с паролем root. Сразу меняем пароль в System → Administration. Там же можно сказать, на каких интерфейсах должен крутиться SSH и добавить свой id_rsa.pub. Добавление его с помощью команды ssh-copy-id почему-то не работает.

Для входа по SSH также используем имя пользователя root:

ssh root@192.168.1.1

Что еще стоит настроить в веб-админке? Беспроводная сеть по умолчанию выключена. Включить ее можно в Network → WiFi. Убедитесь, что вы используете WPA2-PSK с сильным паролем. Кстати, если вы пропустили заметку Как ломают WPA/WPA2 сети с помощью aircrack-ng, ознакомиться с ней не повредит.

Вообще, должен сказать, что у OpenWrt довольно приятный веб-интерфейс. Останавливаться на нем подробно мы не будем, но вот пара скриншотов. Список сетевых интерфейсов:

OpenWrt: список сетевых интерфейсов

Состояние беспроводной связи:

OpenWrt: состояние беспроводной связи

Графики, обновляемые в реальном времени, отображают объемы входящего и исходящего трафика:

OpenWrt: графики входящего и исходящего трафика

Ну вот, остается только подключиться к роутеру по WiFi, воткнуть витую пару в порт Internet, и можно считать, что на этом первоначальная настройка роутера выполнена!

Управление пакетами

Управление пакетами в OpenWrt осуществляется при помощи утилиты opkg. Рассмотрим несколько примеров ее использования.

Обновляем список доступных пакетов:

opkg update

Смотрим список установленных пакетов:

opkg list-installed

Список всех доступных пакетов:

opkg list

Для каких пакетов есть обновления:

opkg list-upgradable

Обновляем пакеты:

opkg upgrade dnsmasq odhcp6c wpad-mini hostapd-common

Установка новых пакетов (не перестарайтесь, место на роутере не резиновое!):

opkg install htop tree screen rtorrent nmap tcpdump

Удаление пакета:

opkg remove tmux

Подробности ищите на странице Opkg Package Manager официального сайта.

Монтирование внешних USB-носителей

Роутер имеет крайне мало дискового пространства, в связи с чем может возникнуть желание использовать внешний носитель. У меня под рукой оказалась флешка Kingston HyperX Predator на 512 Гб, вот такая:

Флешка Kingston HyperX Predator на 512 Гб

… и я решил попробовать подключить ее.

По умолчанию OpenWrt идет без поддержки USB или каких-либо «нормальных» файловых систем, вроде FAT или Ext4. Поэтому нам понадобится установить недостающие модули ядра. При подключении данной конкретной флешки к моему ноутбуку в dmesg появляется:

usb-storage 4-3:1.0: USB Mass Storage device detected
scsi host6: usb-storage 4-3:1.0
scsi 6:0:0:0: Direct-Access     Kingston DTHX Predator    PMAP PQ: 0...
sd 6:0:0:0: [sdb] 988282880 512-byte logical blocks: (506 GB/471 GiB)
sd 6:0:0:0: [sdb] Write Protect is off
sd 6:0:0:0: [sdb] Mode Sense: 45 00 00 00
sd 6:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn'...
 sdb: sdb1
sd 6:0:0:0: [sdb] Attached SCSI removable disk

… что как бы намекает нам, что устройство работает через слой SCSI, поддержки которого в OpenWrt из коробки, конечно же, тоже нет.

В общем, после нескольких не вполне удачных экспериментов, я выяснил, что полный список необходимых пакетов выглядит как-то так:

opkg install kmod-scsi-core kmod-scsi-generic \
  kmod-usb-core kmod-usb-ohci kmod-usb-uhci kmod-usb2 kmod-usb3 \
  kmod-fs-msdos kmod-fs-vfat kmod-fs-ext4 usbutils \
  kmod-usb-storage kmod-usb-storage-extras block-mount

То, что все работает, как надо, можно понять по появившемуся устройству /dev/sda, и тому факту, что команда:

mount /dev/sda1 /mnt

… успешно монтирует раздел.

Следует однако иметь в виду, что в зависимости от устройства, которое вы решите использовать, все может оказаться и не так просто. Если у вас возникнут проблемы с монтированием внешних устройств, рекомендую обратиться к разделу Storage Devices официальной документации.

Заключение

Как видите, все оказалось довольно не сложно. В рамках одного поста, впрочем, нельзя рассмотреть абсолютно все, что можно сделать с OpenWrt. Например, можно управлять фаерволом при помощи утилиты iptables, настроить на роутере VPN, поднять HTTP-сервер, и так далее. Дополнительную информацию по этим и другим вопросам, как уже отмечалось, вы найдете на сайте openwrt.org.

Дополнение: Если вы ищите недорогой роутер с предустановленным OpenWrt, тут можно порекомендовать TP-LINK TL-WR703N. Также заслуживают внимания роутеры производства GL.iNet, например, GL-AR750.

Дополнение: В продолжение темы см посты Превращаем Raspberry Pi в беспроводной роутер и Изучаем Wi-Fi сети с помощью WiFi Explorer Lite.

Метки: , , .


Вы можете прислать свой комментарий мне на почту, или воспользоваться комментариями в Telegram-группе.