Автоматизоване резервне копіювання маршрутизаторів MikroTik

Перегляди: 826

Суть скрипта в тому, що, якщо у вас є 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, для цього ви можете завантажити його з офіційного сайту, або скористатися мої скриптом який все зробить за вас, розглянемо для початку підготовку без мого скрипта.

  1. Завантажуємо Python (https://www.python./ftp/python/2.7.13/python-2.7.13.msi
  2. При встановленні Pythonобов'язково встановіть галочку поруч з AddPython.exe to Path
  3. Після встановленняPythonвідкрийте командний рядок від імені Адміністратора і виконайте дві команди (установка модулів, читай вище)

- pip install paramiko

- pip install pyyaml

  1. Далі створіть папку на диску C: під ім'ям  MikroBack, і перемістіть туди всі файли з архіву (https://drive.google.com/a/osi.in.ua/file/d/0B8GteDVNkTRddElWU0stNGI5NTA/view?usp=sharing)
  2. Після цього внесіть під себе файл config.conf, ip_list.txt
  3. Тепер ви сміливо можете запускати файл backup.py і спостерігати за резервування даних вашого маршрутизатора.

Розглянемо скрипт, який все вищеперелічене робить за вас:

(https://drive.google.com/open?id=0B8GteDVNkTRdQ003aWszV084bDQ)

-       Відключити на 5-10 хв антивірус, так як він SFX (всі не люблять SFX)

-       Чекати 5-10 мин

-       Вуаля, скрипт розгорнув себе на диск C: і доданий в Планувальник завдань, який буде виконуватися кожен день о 8:00 AM

-       Відредагуйте під себе файл config.conf, ip_list.txtв папці C:\MikroBack

Що робить скрипт під час установки, все теж що ми описували раніше, скрипт OpenSource, відкривайте, редагуйте …

На цьому все )

Для реалізації завдання було взято ресурс:
https://github.com/0x566164696D/mt_backup_ng

Found a typo? Please select it and press Ctrl + Enter.