Не так давно компанія 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
У логах кінетика (вже у веб-конфігураторі) можна буде подивитися, чи все добре. Там же буде написано, де і в чому погано, якщо щось піде не так.