Автоматизированное резервное копирование маршрутизаторов MikroTik
- Просмотров: 2794
Суть скрипта в том, что, если у вас имеется 50 + маршрутизаторов (хотя и до 50-ти это тоже полезно) вам не надо заходить и самостоятельно, вручную делать backupвашего маршрутизатора.
Для начала для того чтобы понимать, что это за зверь, и с чем его едят, давайте рассмотрим функции данного скрипта:
- - Соединение с аутентификацией по паролю и выполнение операций резервного копирования
- - Соединение с аутентификацией по ключу и выполнение операций резервного копирования
- - Создание backup
- - Выполнение команды по ssh
- - Получения файла по ssh
- - Проверка открыт ли порт
- - Проверяет есть ли файл, если нет, создает его
- - Проверяет существует ли каталог
- - Отправка отчета по почте
- - Формирует отчет по разнице в конфигурациях
Скрипт backup-ов написан на языке Python, взаимодействует, к сожалению, только с версией 2.7.x. Для полной, и комфортной работы скрипта требуются дополнительные модули Pythonтакие как:
- - Paramiko(модуль для работы с ssh в python)
- - PyYaml(для работы с данными, ввод/вывод)
Подготовка MikroTik
*Рассматриваемые действия выполняются непосредственно через WinBoxили же по протоколу SSH.
Как мы уже поняли наш скрипт обращается к каждому из маршрутизаторов по протоколу SSH(Secure Shell), по стандарту он имеет порт 22 TCP, мы рассмотрим вариант резервного копирования по Login/Password.
Для начала убедитесь, что у вас включен Сервис SSH, выполните в терминале MikroTikкоманду ipservice print, если данный сервис запущен, то вам остается добавить адреса, с которых разрешено создавать подключения по SSH, для этого выполните команду ip service set ssh address= (ваш ip or range).
После этого у вас появятся ваши адреса в строке SSH, во вкладке IP> Service.
Далее нам требуется пользователь с правами, который сможет подключаться и выполнять команды. Если у вас уже есть пользователь, который будет отвечать за это, то пропустите этот шаг, если нет, то выполните команду
user set password=password login
Последний шаг, это открытие порта SSHдля подключения в Firewall, ранее мы только сказали, что определенным адресам можно подключаться по этому протоколу, но нам же еще надо и разрешить делать это. Для этого мы должны написать правило в (IP> Firewall> Filter), или добавить через терминал командой :
ip firewall filter add chain=input dst-port=22 action=accept comment=Allow_SSH
Наверное, возник вопрос о том, что, “мы же светим этим портом на лево и на право!”, нет, для того чтобы предотвратить подключение с других адресов мы вписали истинные в IP> Servicesв строке SSH. Вы можете убедится в этом сами подключившись с другого IPадреса.
На этом подготовка маршрутизатора окончена.
Подготовка платформы для запуска скрипта
Первое что требуется это установить сам Python 2.7.x, для этого вы можете скачать его с официального сайта, или воспользоваться мои скриптом который все сделает за вас, рассмотрим для начала подготовку без моего скрипта.
- Скачиваем Python (https://www.python./ftp/python/2.7.13/python-2.7.13.msi)
- При установке Pythonобязательно установите галочку рядом с AddPython.exe to Path
- После установки Pythonоткройте командную строку от имени Администратора и выполните две команды (установка модулей, читай выше)
- pip install paramiko
- pip install pyyaml
- Далее создайте папку на диске C: под именем MikroBack, и переместите туда все файлы из архива (https://drive.google.com/a/osi.in.ua/file/d/0B8GteDVNkTRddElWU0stNGI5NTA/view?usp=sharing)
- После этого отредактируйте под себя файл config.conf, ip_list.txt
- Теперь вы смело можете запускать файл backup.py и наблюдать за резервирование данных вашего маршрутизатора.
Рассмотрим скрипт, который все вышеперечисленное делает за вас:
(
- - Отключить на 5-10 мин антивирус, так как он SFX (все не любят SFX)
- - Ждать 5-10 мин
- - Вуаля, скрипт развернул себя на диск C: и добавлен в Планировщик задач, который будет выполнятся каждый день в 8:00 AM
- - Отредактируйте под себя файл config.conf, ip_list.txt в папке C:\MikroBack
Что делает скрипт во время установки, все тоже что мы описывали ранее, скрипт OpenSource, открывайте, редактируйте…
На этом все )
Для реализации задачи был взят ресурс:
Оставить комментарий