Mikrotik, SSH скрипты в Windows

Небольшой пример подключения к маршрутизатору Mikrotik по протоколу SSH и добавления сайта в список для работы с файрволлом.

По сути это максимально простой пример batch скрипта для Windows который запускает программу kitty, дает ей команду на соединение с маршрутизатором Mikrotik по протоколу SSH, на котором после подключения выполняет заданные инструкции командной строки, сам скрипт может быть оптимизирован и может использоваться фактически для абсолютно любой настройки или управления маршрутизатором.

KITTY — Ответвление от PuTTY, клиент, написанный для операционной системы Windows, поддерживающий подключения по протоколам: Telnet, SSH, Последовательный порт и т.д. доработанный и улучшенный, в том числе этот клиент позволяет выполнять команды на удалённом устройстве после установки связи с ним в автоматическом режиме. Скачать можно на официальном сайте — http://www.9bis.net/kitty/ или в конце данной статьи будет также закреплен файл.

Непосредственно сам скрипт выглядит вот так:

@echo off
chcp 1251
set /p Input=Адрес сайта:
"D:\kitty_portable.exe" -ssh admin@192.168.0.1 -pw ПаРоЛь123 -cmd "ip firewall address-list add list="list_name" address="%Input%" \n quit"

Для того что бы собственно этот текст стал скриптом, достаточно открыть текстовый редактор, например приложение Windows — «Блокнот», скопировать скрипт, внести в него изменения о которых ниже и сохранить под любым понравившимся вам именем. После чего необходимо в операционной системе включить отображение расширений файлов если оно у Вас не включено (в окне с файлом нажать в меню «Вид» и установить галочку напротив «Расширения имен файлов». В Windows 10 это будет выглядеть вот так:

После чего изменить имя файла например с «script.txt» на «script.bat», что бы система начала считать этот файл именно скриптом, а не просто текстовым документом.

Далее по строкам:

@echo off

Указывает системе что необходимо отключить отображение текста системных сообщений в процессе работы скрипта.

chcp 1251

Смена кодовой страницы для корректного отображения кириллицы в окне командной строки, если у Вас весь текст в скрипте не использует кириллицу, то можно эту строку убрать.

set /p Input=Адрес сайта:

Объявление локальной переменной и присвоение ей имени «Input», ключ «/p» указывает на то что значение переменной должен указать пользователь. При выполнении данной строки скрипта в окне командной строки появится надпись «Адрес сайта:» после чего скрипт будет ожидать от пользователя ввода адреса (например «hostingru.net») и подтверждения нажатием кнопки Enter.

"D:\kitty_portable.exe" -ssh admin@192.168.0.1 -pw ПаРоЛь123 -cmd "ip firewall address-list add list="list_name" address="%Input%" \n quit"

Последняя строка это собственно запуск сторонней программы, которая расположена по адресу «D:\kitty_portable.exe» (для корректности в пути адрес к программе лучше указывать в кавычках) и указание на необходимые действия, ключ -ssh указывает на протокол который нам необходимо использовать, после ключа пишем имя пользователя и адрес маршрутизатора в формате «имя_пользователя@адрес» без кавычек, -pw передает пароль, -cmd запускает выполнение указанной команды на удалённом устройстве после установки подключения. По умолчанию пауза перед выполнением команды установлена 2 секунды, можно изменить в файле конфигурации kitty.ini который создается после первого запуска программы в той же директории, параметр отвечающий за задержку в секундах «initdelay=2.0», там же можно установить задержку перед выполнением каждой строки в команде «commanddelay=0.1».

В данном примере, команда которую отправляет Kitty на удалённое устройство:

ip firewall address-list add list="list_name" address="%Input%" \n quit

это уже исключительно для командной строки маршрутизатора mikrotik. Данная строка добавляет в список адресов с именем «list_name» в файрволле адрес который получила переменная «Input» от пользователя, символ «\n» обозначает окончание строки команды, после него идёт следующая команда для маршрутизатора «quit» которая завершает сеанс связи с роутером и закрывает окно kitty, после чего выполнение скрипта также завершается и окно командной строки закрывается.

Собственно пожалуй это максимально примитивный пример возможности использования программы Kitty и командной строки для удалённого управления маршрутизаторами на примере mikrotik. Скрипты для самих маршрутизаторов можно загружать из отдельных файлов. Чем-то напоминает утилиту expect в Linux.

Author: Ameteus

Добавить комментарий