Автоматизация сборки прошивки OpenWRT с добавлением OpenVPN ключа и сертификатов

Предположим ситуацию, Вам нужно прошивать роутеры в больших количествах. У них должны быть определенные настройки конфигов, инвидуальный ключ OpenVPN и хостнейм.

Про стандартную сборку прошивок с помощью Image Builder можете почитать вот тут. Теперь сделаем добавление индивидуального ключа OpenVPN и хостнейм, который задаем при сборке. При этом при компиляции не нужно будет указывать все параметры, только модель роутера и его хостнейм.

Собственно скрипт на bash, я собирал и из под Ubuntu 14.04 и FreeBSD 9. Использовал Image Builder 14.07. Использовались роутеры только с архитектурой ar71xx. Должно работать и на других UNIX системах и последующих версиях OpenWRT:

Скрипт кладём в директорию где лежит ваш ImageBuilder. У меня эта директория /root/routers. Кастомные файлы лежат в  ./files.

Пройдемся по скрипту:

  • Начинается всё с создания ключа и сертификатов с именем хостнейма, переименовывания их в client* и перемещением в наш каталог с ImageBuilder
  • Записывается хостнейм, производится сборка и уже готовые файлы прошивки копируется в отдельную директорию в нашем каталоге, где лежит скрипт
  • Удалем ключи, файл system и получившуюся прошивку из каталога с ImageBuilder. Что бы не мешать последующим компиляциям
  • Конструкция find удаляет лишние прошивки, которые не factory
  • Rename меняет имена прошивок, добавляет им хостнейм

Сборка запускается (с sudo или из под root) командой: ./make_router_openwrt имя_роутера модель_роутера
Скомпилированная прошивка находится в */имя_роутера/ar71xx.

Вот результат для роутера Tp-Link TL-WR842ND c хостнеймом test1:

build openwrt + openvpn

Если вам нужно собирать разные конфигурации (отличающиеся пакеты, конфиги), можно добавить аргумент скрипта и конструкцию if - else. И так же создать каталог с ImageBuilder и другим /files. Если аргумент присутствует - собираем из другого места с другими пакетами.

Закладка Постоянная ссылка.

Отправить ответ

avatar
  Subscribe  
Notify of