В новой прошивке, которая помогла мне отказаться от флешки и установить OpenVPN в память кинетика я благодарен Zyxmon и его форуму по маршрутизаторам Zyxel keenetic.
В общем напишу как я все настроил, может интересно будет кому, да и я не забуду что и как было :)
Приступим!
1. Берем наш кинетик и обновляем его до последней версии официальной прошивкой (на момент написания статьи - это V1.00(BFW.4.4)D0 30-мая-2012 01:01 )
2. Далее по инструкции с форума многоуважаемого Zyxmon допиливаем роутер. (Описывать установку я не буду, полное описание есть на форуме).
3. Установим OpenVPN и настроим его как я уже описывал ранее в статье "Голь на выдумки хитра или как получить доступ к серверу с USB модемом от МТС" при настройке vpn клиента на DIR-620.
4. Краткая инструкция по установке приложений во внутреннюю память кинетика (оригинал тут):
$ cd /media/DISK_A1/system/tmp/
$ wget http://keenetic.zyxmon.org/files/storage/storage.tar.gz
--2012-02-04 10:31:04-- http://keenetic.zyxmon.org/files/storage/storage.tar.gz
Resolving keenetic.zyxmon.org... 217.174.105.180
Connecting to keenetic.zyxmon.org|217.174.105.180|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 194274 (190K) [application/octet-stream]
Saving to: `storage.tar.gz'
....
/media/DISK_A1/system/tmp$ tar -xzf storage.tar.gz -C /
/media/DISK_A1/system/tmp$ dropbearkey -t rsa -f /storage/system/etc/dropbear/dropbear_rsa_host_key
Will output 1024 bit rsa secret key to '/storage/system/etc/dropbear/dropbear_rsa_host_key'
Generating key, this may take a while...
Public key portion is:
ssh-rsa
.....
media/DISK_A1/system/tmp$ dropbearkey -t dss -f /storage/system/etc/dropbear/dropbear_dss_host_key
Will output 1024 bit dss secret key to '/storage/system/etc/dropbear/dropbear_dss_host_key'
Generating key, this may take a while...
....
rm storage.tar.gz
flash set EXTINIT_FROM_STORAGE_ENABLED 1
Извлекаем usb накопитель, перегружаемся. Заходим по ssh (нестандартный порт 1022, пароль zyxel), меняем пароль. Если хотим, чтобы dropbear слушал на стандартном порту 22, редактируем /storage/system/etc/init.d/S10dropbear
Комментарии по установке на русском.
1. Переходим в папку /media/DISK_A1/system/tmp/
2. Скачиваем архив.
3. Распаковываем.
4. Генерим rsa и dss ключи для dropbear.
5. Удаляем архив.
6. Включаем загрузку скриптов из storage.
5. Теперь нам необходимо перенести уже установленный openvpn с флеш накопителя во внутреннюю память keenetic.
tun.ko я скопировал в /storage/system/lib/tun.ko
static.key я поместил в /storage/system/var/static.key
openvpn.conf я поместил в /storage/system/etc/openvpn/openvpn.conf
теперь необходимо отредактировать скрипт запуска openvpn
vi /storage/system/etc/init.d/S11openvpn
редактируем пути к нашим файлам которые мы переместили в /storage/system/...
незабываем добавить в конце разделов start (как на скрине выше):
iptables –A INPUT -p udp --dport 2001 -j ACCEPT
route add -net 192.168.0.0 netmask 255.255.255.0 gw 10.0.1.1
и stop:
iptables –D INPUT -p udp --dport 2001 -j ACCEPT
Так же создадим группу правил для брандмауэра:
vi /storage/system/etc/firewall.d/fw.sh
с содержанием:
#!/bin/sh
iptables -I FORWARD 1 --source 10.0.1.0/24 -j ACCEPT
iptables -I FORWARD -i br0 -o tun0 -j ACCEPT
iptables -I FORWARD -i tun0 -o br0 -j ACCEPT
iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE
iptables -t filter -A INPUT -i lo -j ACCEPT
После сохранения делаем файл запускаемым и тут же выполняем его:
chmod +x /storage/system/etc/firewall.d/fw.sh
/storage/system/etc/firewall.d/fw.sh
Содержание openvpn.conf у меня такое:
remote xxx.yyy.zzz.nnn
proto udp
port 2001
dev tun0
secret /storage/system/var/static.key
verb 3
comp-lzo
keepalive 15 60
persist-key
persist-tun
tun-mtu 1380
mssfix 1300
ifconfig 10.0.1.2 10.0.1.1
Собственно теперь запускаем демон openvpn:
/storage/system/etc/init.d # /storage/system/etc/init.d/S11openvpn restart
Killing OpenVPN processes....success
Unloading OpenVPN kernel modules...
Loading OpenVPN kernel modules:
Starting OpenVPN in daemon mode....success
/storage/system/etc/init.d #
Проверяем журнал роутера:
OpenVPN 2.2.2 mipsel-openwrt-linux [SSL] [LZO2] [EPOLL] built on Apr 18 2012
Все готово!
В итоге при такой настройке роутера мы можем отказаться от usb флеш накопителя, тем самым избежать некоторое кол-во сбоев при его работе, так как иногда он глючил и в системе появлялся дополнительный диск B1 и роутер переставал отвечать по ssh, что лечилось только перезагрузкой роутера.