728 x 90

Automatyzacja backupu routera MikroTik

Automatyzacja backupu routera MikroTik

MikroTik to łotewski producent świetnego systemu operacyjnego dla routerów MikroTik RouterOS, działającego na routerach RouterBOARD, oraz na komputerach PC. RouterOS wzorowany jest na systemie Cisco IOS i podobnie jak on, umożliwia pełne zarządzanie routerem z linii poleceń (w tym za pośrednictwem skryptów automatyzujących różne czynności).

W tym artykule pokażemy, w jaki sposób wykonać rozwiązanie do automatycznego backupu konfiguracji routera. Oprócz samego routera, potrzebna będzie jeszcze maszyna z systemem Linux (dowolnego typu).

Konfiguracja dostępu SSH

Przede wszystkim musisz włączyć dostęp SSH, który standardowo, w zależności od wersji systemu, może być wyłączony.

Warto też już na samym początku przenieść usługi na niestandardowe porty. W takim wypadku jednak poza włączeniem danej usługi, należy również dodać dla niej odpowiednią regułę firewalla (patrz poniższy przykład).

W efekcie próba połączenia się z routerem powinna zakończyć się pytaniem o akceptację klucza SSH (należy odpowiedzieć twierdząco):

tomek@sauron:/home/tomek# ssh -p 10022 admin@router.firma.pl
The authenticity of host '[router.firma.pl]:10022 ([1.2.3.4]:10022)’ can’t be established.
DSA key fingerprint is 12:34:56:78:9a:bc:de:f0:0f:ed:cb:a9:87:65:43:21.
Are you sure you want to continue connecting (yes/no)?

Klucz SSH

Sam dostęp SSH ma jedną wadę: każde logowanie wymaga podania hasła. Aby móc cokolwiek zautomatyzować, musisz mieć dostęp bez hasła, a zatem uwierzytelnienie musi się odbywać w oparciu o klucz zapisany w pliku.

Wygenerujmy więc taki klucz:

tomek@sauron:/home/tomek# ssh-keygen -t dsa -f id_backup_mikrotik

W efekcie wygenerują się 2 pliki: id_backup_mikrotik i id_backup_mikrotik.pub – ten pierwszy to Twój klucz prywatny i powinieneś go chronić przez poznaniem przez osoby trzecie. Ten drugi to klucz publiczny, który musimy skopiować na router:

tomek@sauron:/home/tomek# scp -P 10022 id_backup_mikrotik.pub admin@router.firma.pl:

Następnie trzeba się zalogować na router przez SSH (ostatni raz z podaniem hasła):

tomek@sauron:/home/tomek# ssh -p 10022 admin@router.firma.pl

Ostatnim etapem jest instalacja klucza na routerze:

[admin@router] > user ssh-keys import public-key-file=id_backup_mikrotik.pub user=admin

Od tego momentu dostęp do routera nie wymaga podawania hasła:

tomek@sauron:/home/tomek# ssh -i id_backup_mikrotik -p 10022 admin@router.firma.pl

Automatyzacja

Oto przykładowy skrypt, który można dopisać do pliku /etc/crontab w celu cyklicznego uruchamiania:

#!/bin/sh
 
backup_mikrotik() {
    mt_host=$1
    mt_port=$2
    target_file=”mikrotik-$mt_host”
    ssh -i /home/tomek/id_backup_mikrotik -p $mt_port admin@$mt_host \
        export >/backup/$target_file.txt
}
 
backup_mikrotik router.local 22
backup_mikrotik router.firma1.pl 10022
backup_mikrotik router.firma2.pl 10022

Powyższy skrypt to uproszczona wersja skryptu, który sami stosujemy do świadczenia naszych usług. Pełna wersja obsługuje dodatkowo:

  • szyfrowanie asymetryczne gotowych backupów
  • wersjonowanie
  • alerty na wypadek różnych problemów
  • użycie katalogu tymczasowego (aby w razie zerwania łączności nie tworzyć pustego pliku w katalogu docelowym – aby mechanizm wersjonowania brał pod uwagę tylko prawidłowe backupy)

Pełną wersję już niedługo będziesz mógł kupić w naszym sklepie.