Функция Protected Routerboot в RouterOS, обновление загрузчика RouterBOOT (Factory Firmware) на устаревших устройствах Mikrotik

Почти 2 года назад в одном из обновлений загрузчика и RouterOS, для устройств Mikrotik была добавлена функция «Protected Routerboot». Спрятан этот параметр в подменю System — Routerboard — Settings.
Активация Protected Routerboot блокирует загрузчик, после чего изменения в него могут быть внесены только из меню RouterOS. В режиме Protected Routerboot, устройство будет игнорировать команды из консоли, кнопку сброса (reset) и режим Netinstall, поэтому будьте внимательны при включении данной опции. Получить доступ к устройству можно будет только зная пароль администратора.
Единственный вариант восстановления доступа к устройству — полное переформатирование памяти, для чего требуется удерживать кнопку сброса в пределах заданных интервалов. По-умолчанию, это не менее 20 сек и не более 10 минут.
Хотите научиться работать с MikroTik? В этом поможет углубленный курс по администрированию MikroTik. Получите демо-доступ к этому курсу бесплатно.
За минимальное время удержания отвечает параметр reformat-hold-button (5−300 сек), за верхний предел — reformat-hold-button-max (5−600 сек). Изменив эти параметры, вы можете создать уникальный метод полного аппаратного сброса, который будет известен только вам, например, удержание кнопки сброса и её отпускание в промежутке между 90 и 110 секундами.
Задаются все эти параметры из командной строки, например:

/system routerboard settings set protected-routerboot=enabled
Интервал в 5 секунд устанавливать не рекомендуется, т.к. вы можете попросту не попасть в интервал. Не говоря уже о интервалах в 1−2 секунды.
Указанный метод восстановления на официальном Mikrotik wiki имеет пометку «EXTREMELY DANGEROUS», т. е. «чрезвычайно опасно». Иными словами, прибегать к данному методу восстановления можно только тогда, когда получить доступ к устройству иным путем не удается. Обязательно используйте источник бесперебойного питания, поскольку во времяданной процедуры будет выполнено полное переформатирование флеш-памяти. На некоторых устройствах процесс форматирования может занять до 5 минут. После форматирования потребуется восстановление RouterOS при помощи Netinstall.
Вы, наверное, задаетесь вопросом, зачем нужен Protected Routerboot?
Все просто, существует множество корпоративных конфигураций, для которых важно сохранить конфиденциальные данные — в памяти устройства могут храниться сертификаты, резервные бекапы, текстовые файлы конфигураций и т. д. Если такое устройство будет украдено, злоумышленник не сможет его использовать без пароля администратора и возможности сброса. А если злоумышленнику и удастся выполнить сброс, при этом будет полностью отформатирована внутренняя память устройства.
И все бы хорошо, но данная функция поддерживается только начиная с версии RouterBOOT 3.24+ и RouterOS 6.33+. С обновлением RouterOS вопросов не возникает, а вот с RouterBOOT не все так просто.
Очень многие старые устройства работают с Factory Firmware версии ниже 3.24, например, один из моих RB951Ui-2HnD использовал версию 3.08. Обновить RouterBOOT так просто у вас не получится.
Для того, чтобы обновить RouterBOOT, используются специальные DPK-файлы, найти которые можно на официальном вики. Обратите внимание, что для каждой платформы используется свой файл:

  • MIPSBE
  • SMIPS
  • MMIPS
  • TILE
Предупреждение
Данная инструкция основана на личном опыте и информации с официального форума Mikrotik. Всё, что описано далее вы делаете на свой страх и риск! Неправильные действия и/или ошибки в процессе обновления могут повлечь выход оборудования из строя.
Во-первых, не выполняйте удаленное обновление программного обеспечения, т.к. в редких случаях может потребоваться принудительная физическая перезагрузка устройства.
Во-вторых, не обновляйте RouterBOOT без явной на то необходимости, а также в случаях, когда версия Factory Firmware в вашем устройстве новее той, ссылки на которые прилагаются в этой публикации.
В-третьих, обязательно делайте бэкап или выгрузку конфигурации на внешний носитель информации до любых манипуляций.
Подготовка
Для того, чтобы выполнить обновление загрузчика на старых платформах, потребуется пройти небольшой квест. Вся проблема состоит в том, что обновление загрузчика поддерживается на версии RouterOS ниже 6.41, т.е. на предыдущих версиях 6.40 (current) и 6.40.7 (bugfix).
Перед любыми действиями делаем резервную выгрузку конфигурации, например:

/export file=R2.rsc
После чего созданный файл сохраняем на внешний диск (ПК, флешку, куда угодно).
Теперь нам необходимо скачать все требуемые файлы.
Одного понижения RouterOS будет недостаточно, дополнительно потребуется понизить версию Current Firmware. Для этого требуется специальный FWF-файл. Найти файлы можно на официальном форуме Mikrotik по ссылке выше. Для удобства ниже я собрал для вас прямые ссылки на файлы для всех поддерживаемых платформ.
Tilera

  • TILE
MMIPS
  • mt7621L
SMIPS
  • qca9531L
  • qca9531 (3.36.3)
MIPSBE
  • ar7100
  • ar7240
  • ar9330
  • ar9330L
  • ar9340
  • ar9340L
  • ar9344
  • ar9344L
  • qca8513
  • qca8513L
  • qca8719L
  • qca9531L
  • qca9550
  • qca9550L
ARM
  • al2
  • dx3230L
  • ipq8060
  • ipq4000L
PowerPC
  • mpc8323 (2.18)
  • mpc8343 (2.27)
  • mpc8548 (2.30)
  • amcc460 (3.10)
  • mpc8544 (3.24)
  • p1023 (3.24)
  • p2020 (3.24)
Не путайте, например, qca9344 и qca9344L, это разные платформы! Если в скобках не указана версия загрузчика, она имеет версию 3.41.

Первым делом смотрим параметры платформы, для того, чтобы скачать необходимые файлы.
В моем случае это Mikrotik RB750r2, архитектура MIPSBE (qca9531L). Рассмотрим на его примере процесс обновления загрузчика.
Для нашей платформы качаем файл qca9531L3.41.fwf — нужен он для понижения Current Firmware до версии 3.41.
Затем для платформы MIPSBE качаем файл protected_routerboot_v341_enable6_40_mipsbe.dpk, он нужен непосредственно для обновления Factory Firmware.
После чего из архива на официальном сайте скачиваем файл прошивки, в моем случае это routeros-mipsbe-6.40.npk. Попутно скачиваем и последнюю актуальную версию.

Последовательность обновления загрузчика RouterBOOT (Factory Firmware)

Бэкапы созданы, требуемые файлы загружены, приступаем к самому ответственному этапу – прошивке ПО. Первым делом заливаем файл прошивки routeros-mipsbe-6.40.npk в память устройства (раздел Files), затем заходим в System – Packages и нажимаем кнопку Downgrade. Во всплывающем окошке подтверждаем операцию, устройство будет перезагружено.
Ждем завершения обновления RouterOS, на это может потребовать до 2 минут. Далее заходим в Winbox и проверяем, изменилась ли версия RouterOS, она у нас должна понизиться до «приемлемой» версии 6.40 либо 6.40.7, в зависимости о того, какой файл вы заливали. Версии RouterOS 6.41 и выше не поддерживают обновление Factory Firmware, впрочем, попробовать вы можете, не исключено, что в новых версиях (>6.42.6) могут быть изменения.
После понижения ROS, закидываем в память устройства FWF-файл qca9531L3.41.fwf. В меню System — Routerboard в нижней строчке Upgrade Firmware должна отобразиться версия 3.41.
Нажимаем Upgrade, подтверждаем операцию и перезагружаемся. После перезагрузки снова заходим в подменю System — Routerboard и проверяем значение Current Firmware. Если вы проделали все верно, текущая версия должна понизиться и в поле Current Firmware отобразится версия 3.41.
На этом этапе мы выполнили 2 главные условия — наличие RouterOS 6.40 current (или 6.40.7 bugfix) и версии Current Firmware 3.41. Теперь можно приступать к обновлению непосредственно Factory Firmware при помощи DPK-файла.
Для этого закидываем в память устройства файл protected_routerboot_v341_enable6_40_mipsbe.dpk
Как и ранее, для установки пакета, перезагружаем устройство из подменю System — Reboot.
После перезагрузки устройства в подменю System — Routerboard проверяем версию Factory Firmware, она изменилась/понизилась на 3.41.
Заводская версия загрузчика обновлена. Теперь нам обязательно необходимо обновиться на последнюю версию RouterOS и затем выполнить повторное обновление Current Firmware, на этот раз уже до последней версии.
Заходим System — Packages и нажимаем Check for Updates для загрузки обновлений с официальных серверов Mikrotik.
Лично я бы вообще порекомендовал заранее запастись подходящим NPK-файлом и Netinstall, мало ли, всякое бывает. В конкретном примере это файл routeros-mipsbe-6.42.6.npk, актуальная версия для MIPSBE на момент написания.
После обновления версии RouterOS, не забудьте повторно обновить до последней версии Current Firmware, для чего потребуется еще одна перезагрузка устройства.
Казалось бы, все, но нет… в RouterOS начиная с 6.40 и заканчивая 6.42.6 было внесено достаточно большое количество изменений, поэтому ваша конфигурация могла быть повреждена/изменена в процессе всех предыдущих обновлений/манипуляций. По этой причине я рекомендую выполнить полный сброс командой System — Reset Configuration с параметрами «No Default Configuration» и «Do Not Backup».
После сброса заходим на устройство и заливаем в его память сохраненный файл конфигурации. В моем случае это R2.rsc.
Открываем New Terminal и выполняем команду

import file=R2.rsc
На этом процесс обновления Factory Firmware (RouterBOOT) и восстановления конфигурации завершен.
Хотите научиться работать с MikroTik? В этом поможет углубленный курс по администрированию MikroTik. Получите демо-доступ к этому курсу бесплатно.