Для настройки OpenVPN с поддержкой kill switch на роутере, необходимо установить прошивку LEDE или OpenWRT.  О том как установить прошивку LEDE, или OpenWRT смотрите инструкцию в интернете.

Зайдите на 192.168.1.1 через SSH и выполните команду установки OpenVPN клиента:

# opkg update

# opkg install openvpn-openssl

Вы также можете установить luci-компонент конфигурации openvpn, но он не является обязательным:
# opkg install install luci-app-openvpn
Вы также можете создать образ прошивки с помощью openvpn.

Хорошее руководство по общей настройке клиента OpenVPN вы можете найти на странице https://github.com/jlund/streisand/wiki/Setting-an-OpenWrt-Router-as-OpenVPN-Client Мы будем следить за ней с изменениями, специфичными для VPN Monster.

После установки OpenVPN вы можете выполнить автозапуск при запуске маршрутизатора:

# /etc/init.d/openvpn enable

Если у Вас еще нет лицензии VPN Monster, вы можете получить его в том числе и бесплатно.

Если у вас уже есть код активации VPN Monster, зайдите в личный кабинет по адресу: https://vpnmonster.ru/login/   и загрузите архив файлов конфигурации.

Этот архив содержит файлы конфигурации OpenVPN с расширением «ovpn». Имя файла с расширением «ovpn» в архиве определяет страну и протокол. Например, рассмотрите файл «VPN_ <your_code> _Austria.ovpn». Это файл конфигурации TCP, файл конфигурации UDP содержит завершающее слово «udp». Мы будем использовать этот файл, например, другие файлы обрабатываются аналогично.
Скопируйте файл «VPN_ <your_code> _Austria.ovpn» с программами pscp или WinSCP в Windows, команду scp в Linux в / etc / openvpn / папку файловой системы маршрутизатора. В случае проблем с копией вы должны принудительно использовать точно протокол scp (он также может использовать sftp).

Конфигурация OpenVPN с использованием файла «VPN_ <your_code> _Austria.ovpn» может быть реализована двумя способами.
1) Измените расширение файла «ovpn» на «conf». В этом случае OpenVPN найдет его автоматически по расширению.
2) Укажите имя файла в / etc / config / openvpn. Вы можете использовать uci:

# uci set openvpn.vpnmonster=openvpn
# uci set openvpn.vpnmonster.enabled=’1′
# uci set openvpn.vpnmonster.config=’/etc/openvpn/VPN_<your_code>_Austria.ovpn’
# uci commit openvpn

Файл / etc / config / openvpn должен содержать следующие прилагаемые строки:

config openvpn ‘vpnmonster’
option enabled ‘1’
option config ‘/etc/openvpn/VPN_<your_code>_Austria.ovpn’

You can also change extension of the file «ovpn» to «conf», and specify it in the file /etc/config/openvpn, in this case OpenVPN will start with this configuration file just once, but with warning.

Создайте новый сетевой интерфейс:

# uci set network.vpnmonstertun=interface
# uci set network.vpnmonstertun.proto=’none’
# uci set network.vpnmonstertun.ifname=’tun0′
# uci commit network
Файл / etc / config / network должен содержать следующие прилагаемые строки:
config interface ‘vpnmonstertun’
option proto ‘none’
option ifname ‘tun0′

Создайте новую зону брандмауэра и добавьте правило пересылки из локальной сети в VPN:

# uci add firewall zone
# uci set [email protected][-1].name=’vpnfirewall’
# uci set [email protected][-1].input=’REJECT’
# uci set [email protected][-1].output=’ACCEPT’
# uci set [email protected][-1].forward=’REJECT’
# uci set [email protected][-1].masq=’1′
# uci set [email protected][-1].mtu_fix=’1′
# uci add_list [email protected][-1].network=’vpnmonstertun’
# uci add firewall forwarding
# uci set [email protected][-1].src=’lan’
# uci set [email protected][-1].dest=’vpnfirewall’
# uci commit firewall

Файл / etc / config / firewall должен содержать следующие прилагаемые строки:
зона конфигурации

option name ‘vpnfirewall’
option input ‘REJECT’
option output ‘ACCEPT’
option forward ‘REJECT’
option masq ‘1’
option mtu_fix ‘1’
list network ‘vpnmonstertun’

config forwarding
option src ‘lan’
option dest ‘vpnfirewall’

Теперь мы должны настроить DNS-серверы. Самый простой подход — использовать общедоступный DNS для WAN-интерфейса маршрутизатора. Вы можете добавить OpenDNS:

# uci set network.wan.peerdns=’0′
# uci del network.wan.dns
# uci add_list network.wan.dns=’208.67.222.222′
# uci add_list network.wan.dns=’208.67.220.220′
# uci commit

Файл / etc / config / network должен содержать раздел «wan» со следующими строками (добавлены три нижние строки):
config интерфейс «wan»

option ifname ‘eth0.2’
option force_link ‘1’
option proto ‘dhcp’
option peerdns ‘0’
list dns ‘208.67.222.222’
list dns ‘208.67.220.220’

Вы также можете добавить Google DNS:

# uci set network.wan.peerdns=’0′
# uci del network.wan.dns
# uci add_list network.wan.dns=’8.8.8.8′
# uci add_list network.wan.dns=’8.8.4.4′
# uci commit

Приложенные строки должны быть похожими на предыдущие.

Чтобы предотвратить утечку трафика вне VPN-туннеля, вы должны удалить правило пересылки с lan на wan. В конфигурации по умолчанию существует одно правило пересылки, поэтому команда:

# uci del [email protected][0]

Вы также можете установить опцию «masquerading» на «0» для зоны wan, она идет после зоны lan, поэтому команда:

# uci set [email protected][1].masq=0

После настройки вы должны зафиксировать изменения:

# uci commit firewall

Вы также можете отключить переадресацию не к определенному интерфейсу, изменив файл /etc/firewall.user:

# This file is interpreted as shell script.
# Put your custom iptables rules here, they will
# be executed with each firewall (re-)start.

# Internal uci firewall chains are flushed and recreated on reload, so
# put custom rules into the root chains e.g. INPUT or FORWARD or into the
# special user chains, e.g. input_wan_rule or postrouting_lan_rule.
if (! iptables -C forwarding_lan_rule ! -o tun+ -j REJECT); then
iptables -I forwarding_lan_rule ! -o tun+ -j REJECT
fi

Кроме того, вы можете выполнить следующие шаги. Добавьте строки в файл /etc/firewall.user:

if (! ip a s tun0 up) && (! iptables -C forwarding_rule -j REJECT); then
iptables -I forwarding_rule -j REJECT
fi

Create the file 99-prevent-leak in the folder /etc/hotplug.d/iface/ with following content:
#!/bin/sh
if [ «$ACTION» = ifup ] && (ip a s tun0 up) && (iptables -C forwarding_rule -j REJECT); then
iptables -D forwarding_rule -j REJECT
fi
if [ «$ACTION» = ifdown ] && (! ip a s tun0 up) && (! iptables -C forwarding_rule -j REJECT); then
iptables -I forwarding_rule -j REJECT
fi

После настройки маршрутизатора перезагрузки по команде

# reboot

и проверьте свой IP-адрес на странице https: //ipper.ru/ и убедитесь, что вы подключены.