Linux и Zyxel Keenetic Giga - начальная настройка

Материал из AlexNook
Перейти к: навигация, поиск

Статья рассматривает как получить доступ к linux системе на Zyxel Keenetic Giga с возможностью ставить пакеты из репозитария с помощью системы opkg, как настроить ssh демон dropbear.

Статья была написана по материалам форума Zyxmon, а так же Wiki проекта ZyxMon на google code.

Подготовка USB носителя для установки программ на Keenetic

Подразумевается, что у вас есть linux система - десктоп, где собственно и будем вести данную работу. Вставляем в USB флшеку и начинаем.

Флешка должна иметь раздел linux ID 83 и быть отформатированна в файловую систему с поддержкой ссылок.

Выполняем fdisk и смотрим, что есть у флешки "из коробки"

fdisk /dev/uba

Далее привожу вывод консоли fdisk'а

File: fdisk /dev/uba
  1. Command (m for help): p
  2.  
  3. Disk /dev/uba: 4008 MB, 4008706048 bytes
  4. 2 heads, 63 sectors/track, 62138 cylinders, total 7829504 sectors
  5. Units = sectors of 1 * 512 = 512 bytes
  6. Sector size (logical/physical): 512 bytes / 512 bytes
  7. I/O size (minimum/optimal): 512 bytes / 512 bytes
  8. Disk identifier: 0x00d2200d
  9.  
  10.    Device Boot      Start         End      Blocks   Id  System
  11. /dev/uba1   *          64     7829503     3914720    b  W95 FAT32

Далее удаляем раздел, который был на флешке при её покупке и смотрим, что получилось

File: fdisk /dev/uba
  1. Command (m for help): d
  2. Selected partition 1
  3.  
  4. Command (m for help): p
  5.  
  6. Disk /dev/uba: 4008 MB, 4008706048 bytes
  7. 2 heads, 63 sectors/track, 62138 cylinders, total 7829504 sectors
  8. Units = sectors of 1 * 512 = 512 bytes
  9. Sector size (logical/physical): 512 bytes / 512 bytes
  10. I/O size (minimum/optimal): 512 bytes / 512 bytes
  11. Disk identifier: 0x00d2200d
  12.  
  13.    Device Boot      Start         End      Blocks   Id  System

Создаём новый первичный раздел, смотрим что получилось и записываем всё в таблицу разделов

File: fdisk /dev/uba
  1. Command (m for help): n
  2. Command action
  3.    e   extended
  4.    p   primary partition (1-4)
  5. p
  6. Partition number (1-4, default 1): 1
  7. First sector (2048-7829503, default 2048):
  8. Using default value 2048
  9. Last sector, +sectors or +size{K,M,G} (2048-7829503, default 7829503):
  10. Using default value 7829503
  11. Command (m for help): p
  12.  
  13. Disk /dev/uba: 4008 MB, 4008706048 bytes
  14. 2 heads, 63 sectors/track, 62138 cylinders, total 7829504 sectors
  15. Units = sectors of 1 * 512 = 512 bytes
  16. Sector size (logical/physical): 512 bytes / 512 bytes
  17. I/O size (minimum/optimal): 512 bytes / 512 bytes
  18. Disk identifier: 0x00d2200d
  19.  
  20.    Device Boot      Start         End      Blocks   Id  System
  21. /dev/uba1            2048     7829503     3913728   83  Linux
  22.  
  23. Command (m for help): w
  24. The partition table has been altered!
  25.  
  26. Calling ioctl() to re-read partition table.
  27. Syncing disks.

Далее форматируем созданный раздел в журналируемую EXT3. Лучше было бы конечно отформатировать в EXT2 - так мы меньше будем делать операций записи, что сбережёт флешку, но кинетик почему-то её не распознал нормально в EXT2. Точнее флешку и файловую систему увидел, но автоматом запускать скрипт установки не стал :( (возможно я где-то что-то и упустил).

mke2fs -j /dev/uba1

Далее создаём временную папку и монтируем туда флешку для того, чтобы записать файл ext_init, который выполнит всю настройку за нас. Огромное спасибо ребятам, которые всё это сделали для нас.

mkdir ~/usb
mount /dev/uba1 -t ext3 ~/usb/

Далее качаем архив (у меня прошивка новая, поэтому я качаю ext_init.sh-r2)

cd ~/usb
wget http://zyxel-keenetic-packages.googlecode.com/files/ext_init.sh-r2.tar.gz

После чего распаковываем архив

tar -xvf ext_init.sh-r2.tar.gz

удаляем его (он нам не нужен уже)

rm ext_init.sh-r2.tar.gz

У меня sh скриптик уже был с правами на исполнение, но если это не так, то даём их

chmod a+x ext_init.sh

Создаём необходимые директории и перемещаем туда наш скрипт

mkdir -p ./system/bin
mv ext_init.sh system/bin/

Отмонтируем флешку

cd ~
umount -t ext3 /dev/uba1

Удаляем временную папку.

rm -r ~/usb/

Флешка готова! Далее подключаем флешку к кинетику и включаем кинетик в розетку =)

Первоначальные настройки и поднятие SSH DropBear на Keenetic

Подключаем флешку (интернет должен уже работать на кинетике иначе он не обновит список пакетов из репозитария). Далее нужно подождать автоматических действий, пока в журнале (в веб конфигураторе "система-журнал") не появится текст

File: Веб конфигуратор > система > журнал
  1. dropbear[4261]    Running in background

После автоматических действий продолжаем установку. Для этого подключаемся к кинетику по ssh с пользователем root и паролем zyxel.

ssh root@192.168.0.1

После чего в консоли выполняем:

/media/DISK_A1/system/root # finish_install.sh

Далее меняем пароль пользователя root (Пароль от веб-морды кинетика это совсем другое - там используется обычная веб-аутентификация, а тут имеется в виду пользователь системы linux - root).

passwd

Советую всем использовать авторизацию при соединении по ssh по методу публичный-приватный ключи. Для этого нужно в /media/DISK_A1/system/etc/dropbear/authorized_keys кинуть ваш публичный ключ, а далее отключить аутентификацию по паролю. Для чего открыть init скрипт ssh демона dropbear и добавить в него опцию -s при запуске

vi /media/DISK_A1/system/etc/init.d/S10dropbear

В функцию запуска демона добавляем параметр -s

File: /media/DISK_A1/system/etc/init.d/S10dropbear
  1. start() {
  2.         $DROPBEAR -s -d $DSS -r $RSA
  3. }

После чего перемонтируем флешку (кнопка хардварная на кинетике отключает её после чего её нужно руками передёрнуть) и теперь зайти на кинетик можно только по ключам. Рекомундую так же ключ защитить с помощью PassPhrase.

Далее можем поставить любимые программы, но лучше стараться обходиться минимумом - всё таки это минисервер, где ресурсов не так уж и много.


Ссылки