OpenVPN установка и настройка под Zyxel Keenetic Giga

Материал из AlexNook
Перейти к навигацииПерейти к поиску

Подразумевается, что у вас уже есть роутер кинетик с настроеной Linux, доступом по SSH, а так же системой пакетов OPKG. Суть заключается в установке OpenVPN на кинетике, который в свою очередь будет выполнить роль клиента и будет подключаться к серверу OpenVPN авторизуясь по ключу и сертификату.

Статья была написана по материалам форума Zyxmon, а так же Wiki проекта ZyxMon на google code. Так же я обращался к статье на 3DNews.

Установка и настройка OpenVPN на Keenetic

Устанавливаем нужный пакет из репозитария

opkg install openvpn-openssl

Затем создаём конфиг, который обеспечит нам подключение Keenetic'а к нашему удалённому VPN серверу, обеспечив авторизацию по ключу и сертификату. Подразумевается, что у вас ключ и сертификаты уже сгенерированны, а удалённый сервер VPN работает.

cd /media/DISK_A1/system/etc/openvpn
touch openvpn.conf
vi openvpn.conf
File: /media/DISK_A1/system/etc/openvpn/openvpn.conf
client
dev tun
proto tcp
#enforce server certificate verification by clients
remote-cert-tls server
remote VPN.SERVER.EXAMPLE.COM 1194
resolv-retry infinite
nobind

persist-key
persist-tun

ca /media/DISK_A1/system/etc/openvpn/key/ca.crt
cert /media/DISK_A1/system/etc/openvpn/key/client.crt
key /media/DISK_A1/system/etc/openvpn/key/client.key

comp-lzo

Под себя нужно заменить строчку с именем сервера и портом, который он слушает - remote VPN.SERVER.EXAMPLE.COM 1194

Так же в этой же папке /media/DISK_A1/system/etc/openvpn/ создаём папку key с ключами и сертификатами клиента, чтобы мы могли подключиться к впн серверу и создать туннель.

mkdir key

Собственно что за файлы и где они лежат видно из openvpn конфига.

  • ca.crt
  • client.crt
  • client.key

Запускаем openvpn, что создаст туннель до нашего сервера.

/media/DISK_A1/system/etc/init.d/K11openvpn start

Если всё пройдёт успешно, то создастся интерфейс tun, где ifconfig выдаст примерно следующее:

File: ifconfig
tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:10.8.XXX.XXX  P-t-P:10.8.XXX.YYY  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Настройка соединения с Keenetic'ом по SSH через VPN туннель

Теперь у нас уже есть туннель, который поднимает сам кинетик, обращаясь к OpenVPN серверу, который уже работает где-то в сети. Нам хотелось бы как-то опробовать это. Можно для начала попинговать с сервера наш кинетик, а так же наоборот - с кинетика VPN сервер. Но ping это конечно хорошо, но хотелось бы чуть большего =) а для чего нужно открыть возможность соединяться по ssh из вне (по нашему vpn туннелю), то есть в фаерволе откроем 22й порт, для чего выполним в консоли

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

и попробуем теперь ssh соединение с сервера по туннелю к кинетику - всё должно работать.

Теперь есть резон добавить это правило в папку правил Firewall (netfilter), чтобы оно запускалось автоматом. Для чего создаём файлик для этого правила

touch /media/DISK_A1/system/etc/firewall.d/fw.sh

Далее правим его

vi /media/DISK_A1/system/etc/firewall.d/fw.sh

добавляя нужное правило. После чего он должен выглядеть как

File: /media/DISK_A1/system/etc/firewall.d/fw.sh
#!/bin/sh
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

Теперь даём права на исполнение

chmod a+x fw.sh
Note: Кстати глобально форвардинг пакетов у нас активируется при старте openvpn. В файле /media/DISK_A1/system/etc/init.d/K11openvpn есть строчка
        # Make sure IP forwarding is enabled
        echo 1 > /proc/sys/net/ipv4/ip_forward