02 07.2015

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)


  • Masz w firmie router MikroTik i szukasz specjalisty, który może przejąć nad nim opiekę? Chętnie zajmiemy się tym już od 50 zł netto miesięcznie. Napisz na adres pomoc@fajne.it lub zadzwoń na numer 603 252 633, aby porozmawiać o szczegółach.



    Pracujesz z urządzeniami Cisco? Na nich również da się skonfigurować backup w analogiczny sposób (ale pod warunkiem, że Twoja wersja systemu IOS obsługuje dostęp przez SSH: IOS w wersji przynajmniej 12.1 lub CatOS z modułem K9). I nimi również możemy się zaopiekować.




    Tomasz Klim
    Administrator serwerów i baz danych, specjalista w zakresie bezpieczeństwa, architekt IT, przedsiębiorca. Ponad 15 lat w branży IT. Pracował dla największych i najbardziej wymagających firm, jak Grupa Allegro czy Wikia. Obecnie zajmuje się doradztwem dla klientów Fajne.IT, a w wolnych chwilach pisze artykuły. Chętnie podejmuje się ciekawych zleceń.


Wzbudziliśmy Twoje zainteresowanie?

Szukasz pomocy IT? formularz kontaktowy