Как включать и выключать VPN через скрипт почти мгновенно
Вступление
Host – устройство в сети
Policy – правила доступа для конкретных устройств
Роутер подключен к собственному серверу VPN по протоколу OpenVPN.
Переназначением политик (Policy) доступ предоставляется или нет любому устройству в сети.
Через Policy на роутере настроены два варианта – с использованием VPN
и без использования VPN для конкретного устройства.

Часто приходится включать и выключать доступ по VPN через web-интерфейс роутера.
Это довольно долгий путь. Авторизация, переходы в меню, перетаскивание мышью значка устройства в необходимую Policy. Затем обратный процесс.
Задача: Включать и выключать VPN через скрипт почти мгновенно.
Реализация
Получить доступ к управлению роутером можно с помощью Telnet через командную строку:
>telnet 192.168.1.1
Если Telnet не активирован, включаем его в настройках Windows.



После активации Telnet повторяем вход в командной строке.

Затем вводим имя пользователя и пароль, подключаемся к роутеру.
Можно создать отдельного пользователя с доступом к роутеру только по Telnet.

Чтобы узнать все возможные политики на роутере используем команду:>show ip policy


Description – пользовательское описание политики в роутере.
Теперь нужно узнать MAC адрес [xx:xx:xx:xx:xx:xx] нужного устройства в списке устройств роутера и затем использовать команду для включения нужной политики Policy[x] (Policy0,Policy1, Policy2, …) для этого устройства:
ip hotspot host [xx:xx:xx:xx:xx:xx] policy Policy[x]
Политика для конкретного устройства изменена.
Код скрипта
Скрипт можно создать с помощью встроенного в Windows языка сценариев VBScript .
Создаем новый текстовый файл, расширение изменяем на .vbs.
Открываем и редактируем команды в блокноте.
Сначала открываем экземпляр командной строки:Dim WshShell
Set WshShell = WScript.CreateObject ("WScript.Shell")
WshShell.run "cmd.exe"
Ждем некоторое время. Зависит от системы, можно увеличить время ожидания для надежности:
WScript.Sleep 500
Подключемся по Telnet. Ожидание:
WshShell.SendKeys "telnet 192.168.1.1"
WshShell.SendKeys ("{Enter}")
WScript.Sleep 2000
Передаем имя пользователя и пароль:
WshShell.SendKeys "[пользователь]"
WshShell.SendKeys ("{Enter}")
WScript.Sleep 100
WshShell.SendKeys "**********"
WshShell.SendKeys ("{Enter}")
WScript.Sleep 100
Меняем политику для конкретного устройства:
WshShell.SendKeys "ip hotspot host [xx:xx:xx:xx:xx:xx] policy Policy[x]"
WshShell.SendKeys ("{Enter}")
Сначала выходим из сеанса Telnet, затем выходим из сеанса командной строки:
WshShell.SendKeys "exit"
WshShell.SendKeys ("{Enter}")
WScript.Sleep 1000
WshShell.SendKeys "exit"
WshShell.SendKeys ("{Enter}")
WScript.Quit
Сохраняем файл и запускаем. Политика для устройства изменена. Чтобы вернуться к предыдущей политике или включить какую-то другую политику, нужно создать копию этого скрипта и изменить Policy[x] в коде.
Скрипты можно назначить на дополнительные кнопки клавиатуры и действие будет выполняться нажатием одной кнопки.
В зависимости от системы и настроек времени ожидания между командами, время выполнения скрипта составляет 3-4 секунды.
Leave a Reply