Використовуємо OpenWRT — пакети в рутерах ZyXel Keenetic на прикладі OpenVPN

image

Не так давно компанія ZyXel з допомогою модуля відкритих пакетів підтримала OPKG — пакети з популярної ОС OpenWRT, призначеної для домашніх маршрутизаторів. Це означає, що частина з них тепер можна ставити на ZyXel Keenetic. У цій статті я опишу процес включення пакета, налаштування репозиторію Entware з тисячами пакетів, а також налаштування рутера як клієнта OpenVPN.



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

Першим ділом йдемо в налаштування рутера, і там в оновленнях встановлюємо, обравши потрібні опції, компоненти Open support Package, 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.2 h-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/
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.