Bardzo istotnym aspektem przy konfigurowaniu urządzeń sieciowych wszelakiej maści jest temat kopii zapasowej. Często zapomina się o kopii a gdy przychodzi co do czego pada słynne „i jak to było”. W tym artykule pokaże jak wykonać backup konfiguracji MikroTik’a i wysłać go mailem lub na serwer FTP.
Artykuł został przygotowany przy użyciu systemu RouterOS w wersji 6.42.1 (current).
W systemie RouterOS mamy 2 możliwości kopii konfiguracji:
- backup – czyli kopia do pliku binarnego (szyfrowanego lub nie). W tym przypadku kopii podlega wszystko łączenie z nazwami i hasłami użytkowników routera. Kopia z tego pliku może być odtworzona wyłączenie na identycznym modelu i wersji sofware/firware. Po wgraniu w teorii mamy gotowy router do działania.
- export – czyli kopia do pliku tekstowego (jawnym tekstem), plik to w zasadzie konfiguracja sprowadzone do komend terminala z tym że informacje o użytkownikach routera nie zostaną skopiowane. Export jest łatwiej przenosić pomiędzy urządzeniami jednak trzeba zwrócić uwagę na np. nazwy portów, ich ilość, itp.
Backup
Aby wykonać backup konfiguracji wejdźmy w winbox’ie w Files i kliknijmy w przycisk Backup.
W oknie które się nam pojawi wpisujemy:
- Name – jest to nazwa pliku do której doklejone zostanie „.backup”, jeśli jej nie wpiemy wartość uzupełni się automatycznie wg wzorca „nazwa_urządzenia-data-godzina.backup”,
- Password- hasło którym chcemy zaszyfrować plik,
- Don’t Encrypt – jeżeli jest zaznaczone plik nie zostanie zaszyfrowany.
W przypadku pustego pola Password i nie zaznaczonego Don’t Encrypt plik zostanie zaszyfrowany hasłem użytkownika który go tworzy. Jeśli użytkownik tworzący plik na puste hasło plik nie będzie zaszyfrowany.
Po wykonaniu plik będzie widoczny w oknie Files.
Aby przywrócić system z takiej kopii należy najpierw wrzucić plik na router (w przypadku winbox na systemie windows działa przeciąganie), zaznaczyć go i kliknąć Restore.
Jeżeli plik jest zaszyfrowany wpisujemy hasło (nie jest to konieczne jeżeli jesteśmy zalogowani na koncie użytkownika który ma takie same hasło jak użyte do szyfrowania pliku).
Export
Aby wykonać export konfiguracji wchodzimy w winbox’ie w New Terminal.
Polecenie export jest o tyle fajne że możemy wykonać zrzut określonej gałęzi konfiguracji (i wszystkich poniżej).
Przykład – zaraz otwarciu terminala nie weszliśmy do żadnej „gałęzi” i polecenie export zwróci nam całą konfiguracja urządzenia:
[admin@MikroTik] > export /interface bridge add fast-forward=no name=bridge1 /interface wireless set [ find default-name=wlan1 ] ssid=MikroTik /interface wireless security-profiles set [ find default=yes ] supplicant-identity=MikroTik /ip address add address=10.10.10.1/24 interface=ether1 network=10.10.10.0 /system routerboard settings set silent-boot=no [admin@MikroTik] >
Natomiast gdy wpiszemy „/ip address” przechodząc tym samym do konfiguracji adresów IP i wykonamy polecenie export dostajemy informację tylko o adresach IP:
[admin@MikroTik] > [admin@MikroTik] > ip address [admin@MikroTik] /ip address> export /ip address add address=10.10.10.1/24 interface=ether1 network=10.10.10.0 [admin@MikroTik] /ip address>
Eksport konfiguracji to jedno a użycie jej jako sensowny rodzaj kopii (mam na myśli kopię do pliku) to drugie.
Zatem aby export wykonał nam się do pliku wydajemy komendę:
export terse file="nazwa_pliku" - do nazwy doklejone zostanie ".rsc"
parametr „terse” jest opcjonalny ale wprowadzi porządek w pliku tym że każda linijka będzie bezwzględna czyli będzie tak:
[admin@MikroTik] > export terse /interface bridge add fast-forward=no name=bridge1 /interface wireless set [ find default-name=wlan1 ] ssid=MikroTik /ip address add address=10.10.10.1/24 interface=ether1 network=10.10.10.0 /ip address add address=10.10.20.1/24 interface=ether2 network=10.10.20.0 /system routerboard settings set silent-boot=no
zamiast:
[admin@MikroTik] > export /interface bridge add fast-forward=no name=bridge1 /interface wireless set [ find default-name=wlan1 ] ssid=MikroTik /ip address add address=10.10.10.1/24 interface=ether1 network=10.10.10.0 add address=10.10.20.1/24 interface=ether2 network=10.10.20.0 /system routerboard settings set silent-boot=no
Również ciekawą opcją polecenia export jest użycie parametru „hide-sensitive”. Powoduje on ukrycie wszystkich haseł w konfiguracji.
Aby wykonać import czyli przywrócić router z pliku export wykonujemy komendę:
[admin@MikroTik] > import nazwa_pliku.rsc Script file loaded and executed successfully
Temat wykonywania kopii zapasowej mamy już za sobą.
Przejdźmy zatem do tego jak ją wysłać w bezpieczne miejsce.
Wysyłanie kopii na adres mailowy
Na początku musimy skonfigurować e-mail na MikroTik’u w tym celu wchodzimy w Tools->Email.
W oknie wpisujemy dane serwera SMTP przez który chcemy wysłać pocztę.
Dane te można znaleźć w Internecie w przypadku popularnych dostawców poczty (np. Gmail) lub u swojego usługodawcy.
Testowy adres e-mail można wysłać komendą:
[admin@MikroTik] > tool e-mail send to=adres_docelowy@costam.com subject="Tytul maila" body="Tresc testowego maila"
Automatyczne wygenerowanie i wysłanie pliku najlepiej wykonać skryptem.
Skrypt umieszczany go w System->Script i nadajemy uprawnienia read, write, policy, test, sensitive.
/log info message="backup script started"; :local date "$[/system clock get date]"; :local subject "[BACKUP] MikroTik $[/system identity get name] backup $date"; :local filename ""; :for i from=0 to=([:len $date] - 1) do={ :local char [:pick $date $i]; :if ($char = "/") do={ :set $char "-"; } :set filename ($filename.$char); } /system backup save name=$filename; :delay 5s; :set filename ($filename.".backup"); /tool e-mail send file="$filename" to="adres_docelowy@change.me" subject="$subject"; :delay 5s; /file remove $filename; /log info message="backup script finished";
Wysłanie kopii na serwer FTP
W tym przypadku z przyczyn wiadomych nie musimy martwić się konfiguracją e-mail wystarczy tylko taki skrypt (uprawnienia takie same jak w skrypcie z wysyłką przez email). Odpowiednie dane ustawiamy w zmiennych na górze skryptu.
# Konfiguracja :local server ""; :local username ""; :local password ""; # Skrypt /log info message="backup script started"; :local date "$[/system clock get date]"; :local filename ""; :for i from=0 to=([:len $date] - 1) do={ :local char [:pick $date $i]; :if ($char = "/") do={ :set $char "-"; } :set filename ($filename.$char); } :set filename ("$[/system identity get name]-".$filename); /system backup save name=$filename; :delay 5s; :set filename ($filename.".backup"); /tool fetch mode=ftp upload=yes user="$username" password="$password" src-path="$filename" dst-path="$filename" address="$server"; :delay 5s; /file remove $filename; /log info message="backup script finished";
Zaplanowanie wysyłki kopii
Na sam koniec musimy stworzyć zadanie w systemie które będzie wykonywało kopię co określony czas.
W tym celi wchodzimy w System->Scheduler i ustawiamy czas w którym ma się wykonać skrypt.
Uprawnienia zalecam ustawić takie same jak skryptu czyli: read, write, policy, test i sensitive.
Polecenie to:
/system script run nazwa_skryptu