Konfiguracja MikroTik – Część 39: Automatyzacja zarządzania siecią MikroTik za pomocą API i skryptów Python
Konfiguracja MikroTik – Część 39: Automatyzacja zarządzania siecią MikroTik za pomocą API i skryptów Python
W dzisiejszym świecie sieciowym, automatyzacja zadań jest kluczem do efektywnego zarządzania i skalowania infrastruktury. Routery MikroTik oferują bogate możliwości integracji przez API, co pozwala na tworzenie własnych narzędzi zarządzających oraz automatyzujących rutynowe czynności. W tej części serii przedstawimy, jak krok po kroku zautomatyzować zarządzanie MikroTikiem z użyciem API oraz języka Python.
1. Dlaczego automatyzacja jest tak ważna?
Zarządzanie wieloma urządzeniami ręcznie szybko staje się niewydajne i podatne na błędy ludzkie. Automatyzacja pozwala:
- Zmniejszyć ryzyko błędów konfiguracji
- Skrócić czas reakcji na incydenty
- Skalować zarządzanie wieloma urządzeniami
- Zintegrować sieć z systemami monitoringu i raportowania
2. MikroTik API – co to jest?
API MikroTik to interfejs, który umożliwia zdalną komunikację z routerem na poziomie konsoli, ale w sposób programowy. Dzięki niemu możemy wykonywać polecenia, pobierać dane oraz zmieniać konfigurację bez konieczności ręcznego logowania się do urządzenia.

3. Narzędzia do pracy z MikroTik API w Python
Najpopularniejszą biblioteką do integracji z MikroTik API jest librouteros. Pozwala ona na wygodne wysyłanie komend i odbieranie odpowiedzi.
Instalacja:
pip install librouteros
4. Przykładowy skrypt do pobierania listy interfejsów
from librouteros import connect
def get_interfaces(ip, username, password):
api = connect(username=username, password=password, host=ip)
interfaces = api('/interface/print')
for interface in interfaces:
print(f"Name: {interface.get('name')}, Status: {interface.get('running')}")
if __name__ == "__main__":
get_interfaces('192.168.88.1', 'admin', 'password')
Ten prosty skrypt łączy się z routerem i wypisuje dostępne interfejsy wraz z ich stanem.
5. Automatyczne tworzenie reguł firewall
Za pomocą API możemy również w prosty sposób dodawać lub usuwać reguły firewall, np. aby szybko zablokować podejrzany adres IP:
def block_ip(ip, username, password, target_ip):
api = connect(username=username, password=password, host=ip)
api('/ip/firewall/address-list/add', address=target_ip, list='blocked')
print(f'IP {target_ip} dodane do listy blokowanych.')
if __name__ == "__main__":
block_ip('192.168.88.1', 'admin', 'password', '203.0.113.45')
6. Automatyzacja backupów konfiguracji
Regularne backupy to podstawa bezpieczeństwa. Skrypt do zdalnego tworzenia kopii i pobierania jej z routera:
def backup_config(ip, username, password):
api = connect(username=username, password=password, host=ip)
backup_name = 'backup_' + datetime.now().strftime('%Y%m%d_%H%M%S') + '.backup'
api('/system/backup/save', name=backup_name)
print(f'Backup {backup_name} został utworzony.')
if __name__ == "__main__":
backup_config('192.168.88.1', 'admin', 'password')
7. Integracja z systemami SIEM i monitoringu
Dzięki API możliwe jest automatyczne przesyłanie ważnych logów i statusów urządzenia do systemów SIEM (Security Information and Event Management) czy dedykowanych dashboardów monitorujących.
8. Bezpieczeństwo i najlepsze praktyki
Podczas automatyzacji należy pamiętać o:
- Bezpiecznym przechowywaniu danych dostępowych (np. w zmiennych środowiskowych)
- Ograniczaniu dostępu API wyłącznie do zaufanych adresów IP
- Regularnej aktualizacji oprogramowania routerów i narzędzi API
Podsumowanie
Automatyzacja z wykorzystaniem MikroTik API i Pythona to potężne narzędzie, które pozwala podnieść efektywność zarządzania siecią, minimalizować błędy i integrować sieć z innymi systemami. Opanowanie tych technik stawia administratora o krok przed typową, ręczną konfiguracją i przygotowuje na potrzeby nowoczesnych, rozproszonych środowisk sieciowych.






