Что такое openwrt прошивка
OpenWRT, или Что еще можно сделать со своим роутером
Здравствуйте, на написание данной статьи меня натолкнула аналогичная, но в качестве сервера выступала Raspberry Pi. По моему мнению использовать эту маленькую, но при этом достаточно мощную платку в этих целях немного не целесообразно, у многих есть wi-fi роутер с USB портом, а следовательно зачем включать в розетку целый блок питания от компьютера давая при этом пускай и не большой, но все таки расход электроэнергии когда в розетку включено уже все что надо.
В данной статье рассмотрим установку торрентокачалки на практический любой роутер с USB и поддержкой OpenWRT прошивки. В наличии у меня имеется Linksys E3000, но конкретной разницы в установке и настройке OpenWRT нет. Что нам для этого будет нужно:
Установка / настройка OpenWRT
Прежде всего сразу оговорюсь что Вы все делаете на свой страх и риск, так как существует вероятность «окирпичивания» Вашего роутера. Проверяем есть ли Ваш роутер в списке поддерживаемых устройств, для этого заходим на сайт OpenWrt
После этого переходим в вкладку «Downloads»
Тут стоит выбрать какую ветку использовать стабильную (Attitude Adjustment) или соответственно «trunk» в папке snapshots, сразу замечу если Ваш роутер более менее новой модели, то скорее всего в стабильной ветке вы его не найдете.
Переходим непосредственно к скачиванию прошивки.
После того как прошивка скачалась переходим к прошивки Вашего роутера. Для этого необходимо зайти в его вэб-интерфейс который обычно располагается по адресу 192.168.1.1 или 192.168.0.1 в зависимости от производителя роутера. Подробнее по процессу прошивки и настройки Wi-Fi и всего остального для конкретного роутера можете обратится в Google, а то эта статься может растянуться до неприличных размеров, мы же остановимся именно на установке и настройке Transmission.
Установка и настройка Transmission
После прошивки роутера запускаем PuTTY если Ваша ОС Windows, если Linux то просто запускаете терминал. В поле адрес вбиваем 192.168.1.1 для PuTTY либо команду telnet 192.168.1.1 для Linux. После успешного подключения переходим к установке / настройке пакетов.
Перед скачиванием пакетов следует маленькое отступление. Так как в роутере физической памяти достаточно мало, колеблется от 4 до 16 мегабайт в зависимости от продвинутости и цены Вашего роутера, нам следует заранее побеспокоится о его увеличении. Ведь мы в любом случае собираемся подключать к нему флешку или жесткий диск так почему бы нам не сделать чтобы роутер грузился непосредственно с раздела на нашем носителе? Давайте сделаем это! Перед всеми манипуляциями с роутером нужно «разбить» Ваш HDD/флешку на несколько разделов.
Приступим. Вводим последовательно команды в терминале
Добро пожаловать на проект OpenWrt
Смотрите Таблицу оборудования поддерживаемых устройств. Для получения дополнительной информации об организации проекта OpenWrt смотрите страницы об OpenWrt.
OpenWrt нуждается в тебе!
Как и любой проект с открытым исходным кодом, OpenWrt процветает на усилиях своих пользователей и разработчиков.
Одобрения
*Wrt комьюнити состоит из множества других прекрасных комьюнити идущих к своей цели по улучшению чего-то на этой планете. Комьюнити ниже, любезно решили одобрить данный проект. Спасибо!
qMp endorses the LEDE project | |
«We wish huge success to the LEDE project» | |
Weimarnetz Project Homepage | |
«We … will consider it the new default OS environment for embedded devices running bmx6 and bmx7» | |
«We endorse the LEDE project and we plan to start basing Libre-Mesh releases on Linux Embedded Development Environment» |
Self-registration in the wiki has been disabled.
If you want to contribute to the OpenWrt wiki, please post HERE in the forum or ask on IRC for access.
Except where otherwise noted, content on this wiki is licensed under the following license:
CC Attribution-Share Alike 4.0 International
Прошивка OpenWRT для роутеров
Введение
Данная статья может быть полезна продвинутым пользователям, которые хотят улучшить работу своего домашнего роутера, а также системным администраторам предприятий, перед которым стоит задача повысить надежность и безопасность удаленной работы сотрудников.
Как вы скорее всего знаете, ваш роутер – это маленький компьютер и него есть программное обеспечение, так называемая “прошивка” или “firmware”. Прошивку разрабатывает производитель роутера, однако существуют также альтернативные решения – проекты с открытым исходным кодом: OpenWRT, DD-WRT, Tomato.
Что нам даёт использование OpenWRT?
Обновления (безопасность и новые фишки) выпускаются в разы чаще и поддержка сохраняется в разы дольше, чем у большинства производителей. Особенно актуально это стало в условиях карантина. Уязвимая “прошивка” роутера – одна из наиболее частых причин инцидентов при удаленной работе.
“Родные” прошивки бывают нестабильными, особенно у дешевых роутеров. Так многие модели TP-Link зависали после нескольких дней беспрерывной работы.
Вы привыкаете к одному интерфейсу пользователя и при последующей смене/апгрейде роутера, даже от другого производителя, чувствуете себя “как дома”.
Вам не обязательно покупать дорогой роутер для реализации продвинутых “фишек”, таких как IPv6, родительский контроль, блокировка рекламы, VPN, гостевой WiFi, DNS шифрование, динамический DNS (DDNS) и т. д.
Есть активное сообщество, которое поможет оперативнее, чем даже поддержка крупного производителя, да и многое уже описано.
Преимущества открытого решения на базе Linux: возможность подключаться через SSH, автоматизировать настройку и управлять роутером с помощью скриптов, настройки хранятся в текстовых файлах (автоматизация, контроль версий), можно использовать роутер для других задач (умный дом, SFTP/Web сервер, закачка торрентов и т.п.).
Подробнее эти и другие причины описаны на сайте проекта.
Базовая настройка OpenWRT
Данная статья поможет вам настроить базовые функции OpenWRT, благодаря чему вы сможете быстро и безболезненно перейти на это решение. Вот перечень этих функций:
Установить пароль пользователя root.
Ограничить доступ по SSH только для интерфейса LAN.
Настроить PPPoE подключение по WAN.
Добавить гостевой WiFi (без доступа в локальную сеть).
Настроить динамический DNS NoIP.
Настроить переадресацию портов (port forwarding).
Сохранить конфигурацию в архивный файл.
Пункты 6 и 7 нужны, например, для того, чтобы подключаться из Интернета к домашнему компьютеру по SSH или SFTP (например, для синхронизация файлов с ноутбуком), а также для прямого подключения по Anydesk, которое работает быстрее, чем обычное.
Процесс “перепрошивки” на OpenWRT зависит от модели вашего роутера. Следует найти его в списке поддерживаемых устройств и следовать приведенным там рекомендациям.
Настройки можно делать с помощью SSH-подключения и скриптов, однако мы рассмотрим веб-интерфейс (который называется LuCI) как более наглядный и устойчивый к изменениям вариант.
1. Установить пароль пользователя root
2. Ограничить доступ по SSH только для интерфейса LAN
После этого шага имеет смысл сделать Logout и залогиниться снова, чтобы убрать предупреждение в верхней части экрана.
3. Настроить PPPoE подключение по WAN
Нажать кнопку “Edit” в строке “WAN”.
4. Настроить WiFi
4.1 Нажать на кнопку “Edit” под “radio0 802.11nac”.
Перейти на вкладку Wireless Security.
4.2 Нажать на кнопку “Edit” под “radio1 802.11bgn”.
Перейти на вкладку Wireless Security.
Нажать кнопки “Enable” (слева от “Edit”) на обоих подключениях.
5. Добавить гостевой WiFi
Взято отсюда, плюс ужато и обновлено под новый интерфейс.
Делаем для 2.4 ГГц, но аналогично можно сделать и для 5ГГц.
5.1.1 Нажать кнопку “Add” в “radio1 802.11bgn”.
5.1.2 Перейти на вкладку Wireless Security.
5.2.1 Нажать на кнопку “Edit” в интерфейсе “GUEST”.
5.2.2 Перейти на вкладку “Firewall settings”.
5.2.3 Перейти на вкладку “DHCP server”.
5.3.1 Нажать на кнопку “Edit” в зоне “guest”.
5.3.2 Перейти на вкладку Traffic rules.
Нажать на кнопку “Add” внизу.
Нажать на кнопку “Add” внизу.
6. Настроить динамический DNS NoIP
Нажать кнопку “Update lists…”
Набрать “ddns” в поле “Filter”.
Установить пакеты “ddns-scripts”, “ddns-scripts-noip”, “luci-app-ddns”.
Сделать Logout и потом залогиниться снова.
6.2.1 Нажать кнопку “Edit” в строке “myddns_ipv4”.
6.2.2 Нажать кнопку “Reload” в строке “myddns_ipv4”.
6.2.3 Нажать кнопку “Delete” в строке “myddns_ipv6” — если вам достаточно IPv4.
7. Настроить переадресацию портов (port forwarding)
Нажать кнопку “Add” внизу:
Нажать кнопку “Add” внизу:
8. Сохранить конфигурацию в архивный файл.
Нажать на кнопку “Generate archive”.
Сохранить скачанный файл в надежном месте.
В этом же пункте меню можно загружать обновления прошивки – кнопка “Flash image…”.
Заключение
Таким образом, мы рассмотрели недорогие в применении меры повышения безопасности и стабильности работы домашних роутеров с помощью прошивки OpenWRT. В то же время, следует заметить, что ни одна разовая мера безопасности, включая внедрение дорогого оборудования и программного обеспечения, не даст гарантий отсутствия инцидентов безопасности. Если вам нужен действительно высокий уровень защищённости, то необходим комплексный системный подход, начиная с аудита вашей ИТ-инфраструктуры, в том числе, домашнего окружения.
Устанавливаем OpenWrt (основы)
OpenWrt не может быть установлена настолько просто и безопасно, как любой другой дистрибутив GNU/Linux. Установка на Flash-чип, впаянный в PCB карту, к сожалению, несколько более затруднительна, чем установка с диска DVD на жесткий диск. После того, как вы выбрали ваш метод получения прошивки (по-английски firmware image) уникальной для вашего устройства и иногда даже модели и версии, вам придется перезаписать оригинальную прошивку на чипе flash-памяти. На этой странице вы найдете описание того, как сделать это.
По сравнению со сборкой дистрибутива, установка файла с прошивкой OpenWrt иногда может быть самым непростым во всей процедуре, а иногда занимает пару минут. В зависимости от конкретной модели вашего устройства, вы можете ограничиться простой заливкой вашей новой прошивки через web-интерфейс; можете вручную заливать необходимую прошивку через tftp; или, если ваши дела совсем плохи, то вплоть до изменения структуры вашего устройства и подключения через JTAG доступ. Но в целом, основным вариантом установки является установка через вшитый загрузчик (Redboot, Uboot и проч.) или простое копирование на CompactFlash-карточку: все зависит от конкретной модели вашего устройства.
Warning!
This section describes actions that might damage your device or firmware. Proceed with care!
В целом, у вас есть две опции: Залить OpenWrt в постоянную память, или запускать OpenWrt через сеть. Netbooting поддерживается не всеми вариантами загрузчиков, вшитых в устройства. Пожалуйста, ознакомьтесь с конкретной страницей wiki посвященой модели вашего роутера. Если ваши попытки установить OpenWrt провалились, статья о том, как оживить роутер поможет вам. Обязательный раздел к прочтению →flash.layout.
Четыре пути
Существует четыре способа установки OpenWrt на ваше устройство:
1. Из-под оригинальной прошивки
Откройте в вашем браузере Web-интерфейс оригинальной прошивки и установите файл OpenWrt через опцию “Firmware Upgrade”. Готово. Как правило, нужный файл прошивки OpenWRT содержит в названии подстроку “-factory”, например, openwrt-ar71xx-generic-wndr3800-squashfs-factory.img
Замечание: Иногда оригинальная прошивка проверяет, какой файл ей предлагают для “обновления”. В случае, если заводская прошивка решит, что предлагаемый ей файл не является приемлемым, вам не удастся установить OpenWrt одним кликом. Не отчаивайтесь, попробуйте один из оставшихся трех путей.
2. Через автозагрузчик и Ethernet порт
Как только вы получили ответы на все эти вопросы, вы можете продолжать:
Замечание: Иногда даже автозагрузчик не позволяет записать файл прошивки на flash память устройства, например, в Inventel DV4210 (AKA Livebox).
Методы установки
3. через автозагрузчик и Serial порт
4. через JTAG
Перезаливка с OpenWrt
Чтобы перезаписать существующую флэш память рядом с разделом, где установлен автозагрузчик, а так же ту часть, которая содержит ART, в случае устройства WR1043ND и схожих с ним можно использовать:
Вы можете, хотя это не рекомендовано, установить прямой туннель для установки прошивки без копирования ее на временный раздел tmpfs flash-памяти роутера. В таком случае, вот ваши действия:
Назад к заводской прошивке
→ generic.uninstall (используйте, только если персональная wiki страница не описывает процесс возврата на оригинальную прошивку)
Базовая конфигурация
Установив OpenWrt на ваше устройство, продолжите с базовыми настройками.
Безопасный режим
→ failsafe_and_factory_reset (используйте, только если персональная wiki страница не описывает процесс возврата на оригиналную прошивку)
Системный апгрейд
→ generic.sysupgrade (используйте, только если персональная wiki страница не описывает процесс возврата на оригиналную прошивку)
Пояснения
Что такое Image File?
то полученный файл /media/sdb3/backup-sda.dd и будет являться файлом образа (Вашего дискового тома /dev/sda).
Self-registration in the wiki has been disabled.
If you want to contribute to the OpenWrt wiki, please post HERE in the forum or ask on IRC for access.
Except where otherwise noted, content on this wiki is licensed under the following license:
CC Attribution-Share Alike 4.0 International
Обзор альтернативных прошивок домашних роутеров
Содержание статьи
Возможности стандартных прошивок часто не удовлетворяют всем требованиям пользователей. Кому-то надо качать торренты, кому-то необходим DLNA/VoIP/принт-сервер, а кто-то просто любит экспериментировать. Во всех этих случаях можно поставить ту или иную прошивку, а если ни одна из них не подходит, то и собрать ее самому.
Введение
SOHO-роутеры у большинства обычных пользователей, как правило, ставятся по принципу «настроил и забыл». Основное их предназначение в раздаче интернета для домашней сети, однако в отдельных случаях возникает необходимость в чем-нибудь более экзотическом, к примеру — в файловом сервере. В стандартных прошивках таких возможностей может и не быть. Но, поскольку ПО абсолютного большинства современных роутеров для домашнего использования (исключая, быть может, Huawei, где используется ОС собственной разработки) основано на ядре Linux, а некоторые фирмы в свое время даже открыли часть исходников, не исключено, что для твоего роутера существуют и кастомные прошивки, в одной из которых может найтись столь желанная возможность — как знать? А если даже и не найдется, то при некоторых усилиях ты можешь эту возможность добавить самостоятельно.
WARNING
Будь внимателен! Неправильная прошивка роутера может превратить его в бесполезный кусок железа и пластмассы.
На данный момент наиболее популярными прошивками считаются следующие:
Разумеется, в списке упомянуты не все прошивки, но их настолько много, что всех и не упомнишь. Дальше я буду рассматривать роутер TP-LINK TL-WDR4300 и прошивку OpenWRT, как наиболее гибкую.
Прошивка TP-LINK TL-WDR4300 из «родного» firmware
Хакер #176. Анонимность в интернете
Установка и начальная конфигурация OpenWRT
Но вот ты прошил роутер и при этом умудрился его не окирпичить. Заходи по Telnet (адрес по умолчанию 192.168.1.1) и настраивай WAN. У меня он довольно долго не подключался, и пришлось разбираться с этим вопросом. Оказалось, что некоторые провайдеры (в частности, ТТК, к которому я подключен), кроме проверки по MAC-адресу, требуют еще и совпадения с этим MAC-адресом ClientID. В итоге я использовал следующие команды (здесь и далее, чтобы не путаться, где именно исполнять команды — на компе или на роутере, роутер будет обозначаться как openwrt#):
Вернемся к командной строке. Что делают первые три команды, в общем-то, ясно: первая устанавливает протокол (возможно выбрать статический IP, PPP, PPPoE, L2TP и еще несколько менее используемых вариантов), вторая устанавливает флаг broadcast в пакете dhcp, третья устанавливает MAC-адрес для интерфейса. Четвертая команда устанавливает поле ClientID в пакете dhcp (option 61) равным MAC-адресу. Последние две команды используются для сохранения изменений и перезапуска сети.
После этого (и после обязательной проверки работоспособности) я бы посоветовал поставить веб-интерфейс, так как базовые настройки с ним реально проще рулить. Для OpenWRT таковых существует как минимум две. Поставим LuCI — де-факто стандартный веб-интерфейс:
И ставим пароль root.
Замечу, что после установки пароля ты уже не сможешь использовать Telnet, только SSH. Теперь зайди в веб-интерфейс и настрой необходимые тебе параметры.
В общем-то, на этом настройку роутера можно и закончить. Однако я не нахожу особого смысла перешивать роутер, если ты не будешь использовать дополнительные возможности прошивки. Поэтому идем дальше…
Веб-интерфейс OpenWRT
Создание extroot
Extroot необходим для того, чтобы у роутера было больше свободного места, — разумеется, за счет подключения внешнего накопителя, такого как флешка. Существует два типа создания extroot — перемещая на накопитель только оверлей и перемещая корень целиком. Сказать по правде, во втором варианте смысла мало — оверлей в роутере в любом случае используется, поэтому будем разбирать первый метод. Но и у него есть две версии. Поскольку я рассматриваю наиболее свежую стабильную версию OpenWRT, то и способ тоже будет соответствовать. На более старых ревизиях он, однако, может не работать. Ставим пакеты:
Запиши текущий вывод команды mount — он тебе еще пригодится в дальнейшем.
После этого подготовь и подмонтируй флешку (ее ты можешь отформатировать в ext3 как на настольном Linux, так и в самом OpenWRT) и клонируй на нее текущий оверлей:
После этого перезагрузись. Если тебе необходимо вернуть все обратно, ты находишь в ранее записанном выводе команды mount оригинальное устройство с оверлеем, монтируешь его и ставишь в файле etc/config/fstab на смонтированном старом оверлее option enabled в 0.
Редактирование файла /etc/config/fstab для включения extroot
Качаем торренты и настраиваем Samba
Раз уж роутер практически не выключается и места для установки стороннего ПО в нем теперь достаточно, грех не использовать его в качестве загрузчика торрентов. Но сперва нужно настроить файлообмен. Поскольку сеть у меня гетерогенная, выбор пал на Samba.
В задачи статьи не входит детальное описание настройки Samba, а с веб-интерфейсом ты способен разобраться и сам. Несколько замечаний, однако, стоит сделать. Во-первых, на вкладке Edit template вместо «security = user» стоит написать (хотя бы для начала) «security = share», во-вторых — дай гостевой доступ к расшаренным папкам, в-третьих — смени владельца расшариваемого каталога на nobody и, наконец, не забудь запустить саму службу:
Теперь перейдем к настройке торрент-клиента. В качестве его будет выступать transmission — не в последнюю очередь из-за того, что он поддерживает веб-интерфейс. Установка его стандартна:
Рассмотрим наиболее важные опции файла конфигурации /etc/config/transmission :
После этого ставим его в автозапуск и стартуем.
Заходим в веб-интерфейс, по умолчанию находящийся на порту 9091, грузим торрент-файл и наслаждаемся.
ФС, используемые в роутерах
Из-за особенностей (и, как правило, малого объема) флеш-памяти, в основном и применяемой в роутерах, для них не подходят ФС для настольных компьютеров. Поэтому кратко опишу различия двух основных файловых систем, в них используемых.
В случае OpenWrt эти две ФС разнесены по разным mtd-разделам и монтируются хитрым образом. Сперва SquashFS монтируется в /rom, а JFFS2 в /overlay. Затем с помощью overlayfs эти две ФС объединяются в одну и при попытке изменения файла в SquashFS изменяет его в JFFS3, обеспечивая таким образом поддержку не только чтения/записи, но и возможность загрузки в безопасном режиме для восстановительных работ.
Краткий обзор DD-WRT
Чтобы включить доступ к optware (дополнительному ПО), придется повозиться. Замечу, что в некоторых версиях прошивки есть раздел JFFS2, а в некоторых нет, так что лучше для этой цели использовать флешку. DD-WRT подходит тому, кто хочет быстро получить доступ к отдельным функциям, которые в большинстве роутеров отсутствуют, но не желает заморачиваться с установкой дополнительного ПО. В общем-то, его возможности покрывают процентов 90 пользователей альтернативных прошивок. Те же, у кого потребности слишком специфичны или кто желает получить больший контроль над роутером, вполне могут разобраться и с другими прошивками.
Веб-интерфейс DD-WRT
Настройка DLNA-сервера
В принципе, после этого minidlna можно уже запускать, предварительно скопировав медиафайлы в нужные папки.
Однако есть небольшой нюанс. Захотел ты добавить музыку или видео, скопировал — а на плеере она не появилась. Дело здесь в том, что по умолчанию minidlna использует inotify, который по загадочным причинам в нем не работает. Чтобы обновить список, необходимо остановить запущенный демон и произвести ручное сканирование, набрав следующую команду:
Сборка своего собственного образа OpenWRT
Если тебя по какой-то причине не устраивает стандартный образ OpenWRT, то можно собрать свой, для чего необходимо получить тулчейн и OpenWRT Buildroot. Прежде всего установим соответствующие пакеты:
Собирать мы будем текущую нестабильную версию OpenWRT и материалы (feeds). Скачаем их.
После этого проверим зависимости — мало ли, вдруг какой-нибудь необходимый для сборки пакет не установлен.
Сборка необходимых инструментов
Если все нормально, можем конфигурировать образ. Для чего вводим
И выбираем, точно так же, как и при конфигурации ядра, нужные тебе вещи. Единственное отличие от «ядерного» menuconfig — звездочка означает, что объект будет встроен в образ, а M — что будет доступен в виде пакета ipk, который позже можно будет установить отдельно. Сильно увлекаться, однако, не советую — помни о том, что места на внутренней флеш-памяти не просто мало, а очень мало.
В основном процесс конфигурирования включает в себя следующие шаги:
Выбор опций при сборке кастомной прошивки
Учти, что если ты потом сделаешь очистку, то конфиг ядра не очистится. Для его очистки набери
После всего этого можешь смело набирать команду
для сборки образа. Это займет длительное время, по истечении которого в каталоге bin/ появятся файлы образа.
Существует несколько путей для того, чтобы залить прошивку. Самый легкий из них — через веб-интерфейс, и описывать его я смысла не вижу. Второй способ — использовать утилиту scp на хостовом компьютере вкупе с mtd на роутере для залития образа и его прошивки. Поскольку сейчас стоит уже OpenWRT, то можно прошивать как factory-, так и sysupgrade-образ. В моем случае команды были такими:
Вторая команда шьет (write) свежескачанную прошивку в раздел, именуемый firmware, и вслед за этим роутер перезагружается (-r). В случае обновления OpenWRT со стабильной версии до текущей я бы советовал не восстанавливать сохраненную конфигурацию, а настроить все заново — у меня по каким-то причинам старые конфиги не подошли к свежескомпилированной версии.
Копирование прошивки в роутер
Безопасность альтернативных прошивок
В плане безопасности со стороны всяческих атак на сервисы из интернета роутеры нынче защищены по умолчанию. Тем не менее расслабляться не следует. Опишем несколько возможных векторов атак на роутеры с альтернативной прошивкой.
В общем-то, некоторыми из этих потенциальных уязвимостей страдают и стоковые прошивки роутеров. Тем не менее разработчикам альтернативных прошивок стоит озаботиться данным вопросом — думается, что подобные цели могут стать наиболее вкусными для разработчиков малвари из-за их слабой защищенности.
Всевозможная документация по OpenWrt: wiki.openwrt.org/doc/start
Заключение
Альтернативные прошивки дают большую свободу для пользователей. Некоторые из них, такие как DD-WRT, Tomato, прошивка от Олега, заточены под нужды большинства — в них есть поддержка NAS, VPN, есть принт-серверы… Другие же (Open/LibreWRT) содержат минимально необходимые возможности, но при этом позволяют их расширять и затачивать под свои нужды. Возможно, прочитав эту статью, ты захочешь стать одним из разработчиков прошивок, благо область довольно новая и толком до конца не освоенная. Дерзай.