OpenWRT в 2017 ?

2017-01-08

Появление компьютеров типа Raspberry/Orange/Banana Pi оттеснило на второй план такое изобретение, как OpenWRT.

OpenWRT - труЪ Linux для встраиваемых устройств, который был изначально придуман, как замена “родной” прошивки для большого количества роутеров, открывающей массу возможностей и позволяющей использовать ваш TP-Link за три рубля так, как производителю не снилось в самом страшном сне.

Правда, рептилоиды не дремлют и накладывают различные запреты на перепрошивку роутеров, тем самым иллюстрируя наличие заговора против “красноглазиков” и свободы слова.

Первые попытки сделать “почти аппаратную” точку доступа со встроенным TOR я делал ещё году в 2014, с тех пор задачу считал решённой и к этом вопросу не возвращался. Тем более, что ценник на базовое железо сильно упал и за те же деньги уже можно купить парочку Orange Pi Zero, которые по производительности уделают любой роутер.

Но на дворе уже 2017ый год, “новый” билд OpenWRT (15.05.1) уже давно доступен, так что время обновиться, да и вспомнить, как оно было.

TP-Link WR703N - один из “святых граалей” моддеров и энтузиастов.

WR703N

Для него уже есть куча проектов - от управления термостатом до портативного pentest-устройства.

Я решил пойти самым очевидным путём и обновить OpenWRT-прошивку утилитой mtd - то есть записать новый образ прямо в память устройства. Ну и получил кирпич, так как, похоже выключил питание слишком рано или забыл указать ключ “reboot” в командной строке.

Кирпич вёл себя странно - подача питания приводила к свечению светодиода на одну секунду, а потом опять “кирпич”. Но, судя по этим симптомам u-boot был цел и старичку было рано на помойку.

Пришлось расчехлить USB->UART адаптер и подключиться к устройству через последовательный интерфейс…

CP2101

Команда screen в Linux - самый простой способ достичь желаемого.

screen /dev/ttyUSB0 115200

Никаких миникомов, никаких проблем. Предположения подтвердились - uboot цел. Вот эта инструкция вполне адекватна и её можно использовать (раздел “Прошивка через бутлоадер”).

Через полчаса новая прошивка была водружена и роутер начал отвечать… Но не тут то было.

TP-Link WR703N - модель старая и уже (должна быть) снята с производства. ПЗУ там “всего” на 4 мегабайта и о ужас! Установка OpenWRT в её дефолтной версии оставляет порядка 200 кб или менее свободной памяти. Это катастрофически мало и никакие пакеты туда уже особо не поставишь. Даже не получится накатить модули ядра для USB и EXT4 для так называемого external root!

Но не стоит унывать - хитрые разработчики OpenWRT придумали “конструктор” - Image Builder, который позволит собрать свой образ только с необходимыми компонентами. Правда, понадобится компьютер с Linux x64.

Вот ссылка на описание Image Builder. А вот пример вызова этого самого “билдера”, который включает пакеты только для создания образа с возможностью external root.

make image PROFILE=TLMR3020 PACKAGES="blkid block-mount kmod-fs-ext4 kmod-usb2 kmod-usb-uhci kmod-usb-ohci kmod-usb-storage"

Нужно лишь заменить TLMR3020 на TLWR703, правда точное значение лучше посмотреть в “хелпе” к image builder.

Образ успешно сформирован и в этот раз залит без происшествий с помощью утилиты mtd в память устройства. Пользуемся вот этой инструкцией и получаем устройство с флешкой, воткнутой в USB-порт и достаточным количеством места, чтобы попробовать всё!

OpenWRT external root

Предварительно флешку нужно “приготовить” - я разбил её на 2 партиции - одна ext4, вторая swap - к сожалению, файл подкачки обязателен. На этом роутере всего 4(!) Мб памяти, так что даже фокус с ZRAM не “канает”. И да, не пытайтесь включить ZRAM, по крайней мере штатными средствами - система будет придёт в “неюзабельное состояние”.

Теперь можно установить веб-интерфейс для облегчения страданий.

opkg update opkg install luci

Дальше - пакеты luci* по вкусу.

Собственно, настройка tor+privoxy описана в куче источников, в разных комбинациях, например вот тут.

Стоит отметить, что теперь для управления privoxy есть отдельный модуль для luci. Лучше поставить его и работать через веб-интерфейс - конфигурационный файл весьма критичен к ошибкам, пробелам вместо tab и т.д. Сам TOR настраивается через файл конфигурации “по старинке”.

В итоге имеем вполне рабочую TOR-точку доступа, правда её скорость весьма ниже, чем этот вариант.

Итак, в сухом остатке…

Плюсы:

  • OpenWRT 15.05.1 в варианте для “моего” железа WR703N стабилен, как камень и вполне летуч.
  • Не нужен внешний адаптер WiFi USB.
  • Потребление не превышает 230 мА в пике.
  • Аккуратный внешний вид :).

Минусы:

  • Скорость ниже по сравнению с вариантом на Orange Pi/Raspberry Pi
  • Ограничение - пакеты доступны только из репозитария OpenWRT, поднятие “собственной” системы сборки тянет за собой массу трудозатрат, да и ничего хорошего не сулит.
  • Устаревшее и не очень быстрое “железо”

А вообще, нужно придумать какой-то другой проект с использованием этого замечательного микро-роутера.

Удачи!


В массы

В трубу