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

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



image

Создано по мотивам абы как структурированных данных на http://forums.zyxmon.org/ и http://forum.keenetic.net/
Поделиться с друзьями
-->

Комментарии (5)


  1. gudvinr
    26.07.2016 01:18
    +2

    Вместо openssl версии можно использовать openvpn-polarssl. Не знаю насчёт более ранних версий, но по крайней мере в 15.05 он есть.
    Может быть, для кинетиков это не актуально, но polarssl в 4 раза меньше места отнимает. И более-менее современные и популярные алгоритмы поддерживает.


  1. zyxmon
    26.07.2016 11:42

    Ну вообще говоря, Entware не равно OpenWRT, хотя за основу и взяты пакеты OpenWRT. Так что заголовок пубикации неверный.
    OpenWRT пакеты можно поставить только на прошивки OpenWRT, а у кинетиков своя прошивка.

    Проект Entware и был разработан для установки на самые разные прошивки и устройства. Он основан на других основополагающих принципах. Если коротко — то об этом тут написал недавно — http://forums.zyxmon.org/viewtopic.php?p=15528#p15528


    1. crypby
      26.07.2016 12:25

      Подкорректировал заголовок, спасибо.


  1. RolexStrider
    26.07.2016 12:15

    Я правильно понял, что текущая NDMSv2 поддерживает OPKG, в том числе и на первых, «белых» Keenetic?


  1. zyxmon
    26.07.2016 12:28

    Для белых моделей нужно установить прошивку из файла — http://files.keenopt.ru/firmware/
    Список компонентов фиксирован, не изменить.