Используем пакеты на основе OpenWRT в рутерах ZyXel Keenetic

    image

    Не так давно компания ZyXel с помощью модуля открытых пакетов поддержала OPKG — пакеты из популярной ОС OpenWRT, предназначенной для домашних маршрутизаторов. Это значит, что часть из них теперь можно ставить на ZyXel Keenetic. В этой статье я опишу процесс включения пакета, настройки репозитория Entware с тысячами пакетов, а также настройки рутера как OpenVPN клиента.



    На данный момент проект обитает и обсуждается на этом форуме.
    Требования — любой кинетик с последней версией NDMSv2 и USB — портом, кроме моделей 4GII/III. Возможно, на некоторых устройствах для появления нужных компонентов потребуется перейти на бета-ветку прошивки.

    Первым делом идём в настройки рутера, и там в обновлениях устанавливаем, выбрав нужные опции, компоненты Open Package support, IPv6, а также все компоненты из секции USB storage. IPv6 нужен для корректной работы netfilter, когда будем загонять трафик в туннель. Также потребуется компонент FTP на устройстве, если файлы конфигурации будут загружаться не на флешку напрямую, а по сети.

    На флешке создать ext2/ext3 раздел с любой меткой на латинке (например, keendev), подключить к рутеру и на разделе с меткой keendev создать папку install.

    Далее в эту папку надо закинуть файл установки:

    — для Keenetic DSL, LTE, VOX — mips;

    — для остальных Keenetic`ов — mipsel;

    Потом на странице «Приложения > OPKG» поставить галку «Включить». Затем выбрать из списка нужный USB-носитель, в поле «Сценарий initrc:» вписать /opt/etc/init.d/rc.unslung и нажать «Применить».

    Если все сделали правильно, то в системном журнале через некоторое время появится строчка "… Установка Entware-Keenetic завершена!"

    Теперь можно зайти на кинетик по ssh, логин root, пароль zyxel.
    Пароль никак не связан с паролем кинетика. Меняется он, если необходимо, командой passwd.

    Первым делом обновим список пакетов: opkg update

    Установка пакетов происходит командой opkg install %commandname%

    Для работы OpenVPN — клиента необходимы следующие пакеты:

    Нужные пакеты
    dropbear — 2015.71-3
    findutils — 4.6.0-1
    iptables — 1.4.21-2
    ldconfig — 1.0.13-4
    libc — 1.0.13-4
    libgcc — 5.3.0-4
    liblzo — 2.09-1
    libndm — 1.0.22-1
    libopenssl — 1.0.2h-1
    libpthread — 1.0.13-4
    librt — 1.0.13-4
    libssp — 5.3.0-4
    libstdcpp — 5.3.0-4
    ndmq — 1.0.2-1
    openvpn-openssl — 2.3.10-1
    opt-ndmsv2 — 1.0-4
    terminfo — 6.0-1
    zlib — 1.2.8-1


    Узнать уже установленные можно с помощью opkg list-installed, неустановленные нужно доустановить, не указывая версию в конце, только имя пакета.

    В папку /opt/etc/openvpn необходимо создать файл openvpn.conf, в помощь touch и vi, примерно следующего формата:

    Пример формата файла конфигурации
    client
    dev tun
    fast-io
    persist-key
    persist-tun
    nobind
    remote %serverIP% %port%

    remote-random
    pull
    comp-lzo
    tls-client
    verify-x509-name Server name-prefix
    ns-cert-type server
    key-direction 1
    route-method exe
    route-delay 2
    tun-mtu 1500
    fragment 1300
    mssfix 1450
    verb 3
    cipher AES-256-CBC
    keysize 256
    auth SHA512
    sndbuf 524288
    rcvbuf 524288
    -----BEGIN CERTIFICATE-----
    %сертификат%
    -----END CERTIFICATE-----

    -----BEGIN RSA PRIVATE KEY-----
    %ключ rsa%
    -----END RSA PRIVATE KEY-----

    <tls-auth>
    #
    # 2048 bit OpenVPN static key
    #
    -----BEGIN OpenVPN Static key V1-----
    %ключ%
    -----END OpenVPN Static key V1-----
    </tls-auth>
    -----BEGIN CERTIFICATE-----
    %сертификат%
    -----END CERTIFICATE-----




    Если ваш провайдер OpenVPN даёт файл router.ovpn, его также можно использовать. Тогда в скрипте запуска /opt/etc/init.d/S20openvpn нужно его указать в строке:
    ARGS="--daemon --cd /opt/etc/openvpn --config router.ovpn"

    Для указания в скрипте iptables, какие интерфейсы нужно использовать, нужно их выяснить с помощью команды ifconfig.
    Ищем в списке интерфейс с inet addr, совпадающим с локальным адресом вашего рутера. Например, он будет br0.

    Теперь нужно прописать скрипт iptables в папке cd /opt/etc/ndm/netfilter.d. Назовём его openvpnfil.sh:

    Скрипт iptables
    #!/bin/sh

    [ "$table" != filter ] && exit 0
    iptables -I FORWARD -i br0 -o tun+ -j ACCEPT
    iptables -I FORWARD -i tun+ -o br0 -j ACCEPT
    iptables -t nat -A POSTROUTING -o tun+ -j MASQUERADE



    Теперь рутер надо перезагрузить.

    После перезагрузки идём опять по ssh и включаем OpenVPN, если он сам не включился при загрузке:

    /opt/etc/init.d/S20openvpn start

    В логах кинетика (уже в веб-конфигураторе) можно будет посмотреть, всё ли хорошо. Там же будет написано, где и в чём плохо, если что-то пойдёт не так.

    • +19
    • 52,8k
    • 5
    Поделиться публикацией
    Комментарии 5
      +2
      Вместо openssl версии можно использовать openvpn-polarssl. Не знаю насчёт более ранних версий, но по крайней мере в 15.05 он есть.
      Может быть, для кинетиков это не актуально, но polarssl в 4 раза меньше места отнимает. И более-менее современные и популярные алгоритмы поддерживает.
        0
        Ну вообще говоря, Entware не равно OpenWRT, хотя за основу и взяты пакеты OpenWRT. Так что заголовок пубикации неверный.
        OpenWRT пакеты можно поставить только на прошивки OpenWRT, а у кинетиков своя прошивка.

        Проект Entware и был разработан для установки на самые разные прошивки и устройства. Он основан на других основополагающих принципах. Если коротко — то об этом тут написал недавно — http://forums.zyxmon.org/viewtopic.php?p=15528#p15528
          0
          Подкорректировал заголовок, спасибо.
          0
          Я правильно понял, что текущая NDMSv2 поддерживает OPKG, в том числе и на первых, «белых» Keenetic?
            0
            Для белых моделей нужно установить прошивку из файла — http://files.keenopt.ru/firmware/
            Список компонентов фиксирован, не изменить.

            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

            Самое читаемое