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.