Небольшой пример подключения к маршрутизатору 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.