OpenVPN установка и настройка под Zyxel Keenetic Giga
Подразумевается, что у вас уже есть роутер кинетик с настроеной Linux, доступом по SSH, а так же системой пакетов OPKG. Суть заключается в установке OpenVPN на кинетике, который в свою очередь будет выполнить роль клиента и будет подключаться к серверу OpenVPN авторизуясь по ключу и сертификату.
Статья была написана по материалам форума Zyxmon, а так же Wiki проекта ZyxMon на google code. Так же я обращался к статье на 3DNews.
Установка и настройка OpenVPN на Keenetic
Устанавливаем нужный пакет из репозитария
Затем создаём конфиг, который обеспечит нам подключение Keenetic'а к нашему удалённому VPN серверу, обеспечив авторизацию по ключу и сертификату. Подразумевается, что у вас ключ и сертификаты уже сгенерированны, а удалённый сервер VPN работает.
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 с ключами и сертификатами клиента, чтобы мы могли подключиться к впн серверу и создать туннель (проходить авторизацию).
Собственно что за файлы и где они лежат видно из openvpn конфига.
- ca.crt
- client.crt
- client.key
Запускаем openvpn, что создаст туннель до нашего сервера.
Если всё пройдёт успешно, то создастся интерфейс tun, где 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й порт, для чего выполним в консоли
и попробуем теперь ssh соединение с сервера по туннелю к кинетику - всё должно работать.
Теперь есть резон добавить это правило в папку правил Firewall (netfilter), чтобы оно запускалось автоматом. Для чего создаём файлик для этого правила
Далее правим его
добавляя нужное правило. После чего он должен выглядеть как
#!/bin/sh
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
Теперь даём права на исполнение
# Make sure IP forwarding is enabled echo 1 > /proc/sys/net/ipv4/ip_forward
Автоматический старт OpenVPN вместе с Linux на Keenetic
Теперь нужно сделать так, чтобы VPN поднимался каждый раз автоматом сам: