Zautomatyzowane skrypty Bash i Python do integracji z MikroTik – praktyczny przewodnik
Sieci komputerowe

Zautomatyzowane skrypty Bash i Python do integracji z MikroTik – praktyczny przewodnik

🧠 Zautomatyzowane skrypty Bash i Python do integracji z MikroTik – praktyczny przewodnik

W nowoczesnych środowiskach sieciowych automatyzacja odgrywa kluczową rolę w zwiększaniu wydajności, skracaniu czasu reakcji i minimalizacji błędów administracyjnych. Choć MikroTik oferuje potężne narzędzie WinBox oraz dostęp przez interfejs WWW, prawdziwa siła tkwi w automatyzacji poprzez CLI, API i zewnętrzne skrypty.

W tym artykule przedstawiamy szczegółowe scenariusze integracji MikroTik z narzędziami zewnętrznymi przy pomocy skryptów Bash i Python. Skupimy się zarówno na prostych automatyzacjach, jak i bardziej zaawansowanych integracjach z systemami monitoringu, bezpieczeństwa i DevOps.


🎯 Dlaczego warto automatyzować MikroTik?

  • Spójność konfiguracji – powtarzalność i brak błędów ludzkich
  • Reakcja w czasie rzeczywistym – np. na incydenty bezpieczeństwa lub przeciążenia
  • Integracja z systemami zewnętrznymi – SIEM, monitoring, ITSM, SOAR
  • Skalowalność – zarządzanie dziesiątkami lub setkami urządzeń jednocześnie

📦 Narzędzia i metody dostępu

Przed rozpoczęciem pisania skryptów warto znać dostępne metody komunikacji z MikroTik:

Metoda Opis Wsparcie w skryptach
SSH Bezpośrednie połączenie do CLI ✅ Bash, ✅ Python
MikroTik API Binarny protokół komunikacyjny RouterOS ❌ Bash, ✅ Python
REST API Nowy interfejs HTTP w nowszych RouterOS ✅ Bash, ✅ Python
Telnet Legacy, niewskazane dla produkcji 🔶 Bash, 🔶 Python
CLI scripting Skrypty lokalne uruchamiane z terminala ✅ RouterOS
Czytaj  Konfiguracja MikroTik – Część 36: Automatyzacja zarządzania adresacją IP i DHCP z wykorzystaniem skryptów

🛠️ SCENARIUSZ 1: Automatyczne dodawanie adresu do blacklisty przez skrypt Bash (SSH)

Cel: Wykryto nieautoryzowane połączenie z serwera – automatyczne zablokowanie IP na MikroTik.

Skrypt (bash):

#!/bin/bash

IP_TO_BLOCK="$1"
ROUTER_IP="192.168.88.1"
USERNAME="admin"
PASSWORD="twoje_haslo"

sshpass -p "$PASSWORD" ssh -o StrictHostKeyChecking=no $USERNAME@$ROUTER_IP <<EOF
/ip firewall address-list add address=$IP_TO_BLOCK list=blacklist timeout=1d comment="Zablokowane przez skrypt"
EOF

Użycie:

./block_ip.sh 185.23.123.55

Wymaga sshpass. Można go zintegrować z cronem, SIEM lub innym systemem.

Zautomatyzowane skrypty Bash i Python do integracji z MikroTik – praktyczny przewodnik
Zautomatyzowane skrypty Bash i Python do integracji z MikroTik – praktyczny przewodnik

🧪 SCENARIUSZ 2: Sprawdzenie zużycia CPU i wysłanie alertu do systemu monitoringu

Cel: Codziennie sprawdź stan CPU i powiadom, jeśli przekracza 80%.

Skrypt (bash):

#!/bin/bash

THRESHOLD=80
CPU_USAGE=$(ssh admin@192.168.88.1 "/system resource print" | grep 'cpu-load' | awk '{print $2}')

if [ "$CPU_USAGE" -gt "$THRESHOLD" ]; then
  curl -X POST -H "Content-Type: application/json" \
    -d "{\"alert\": \"High CPU on MikroTik: ${CPU_USAGE}%\"}" \
    http://monitoring.local/api/alerts
fi

🐍 SCENARIUSZ 3: Zdalna konfiguracja NAT przez Python + API

Cel: Zautomatyzowana konfiguracja reguły NAT (np. port forwarding).

Skrypt (Python):

from librouteros import connect

api = connect(username='admin', password='haslo', host='192.168.88.1')

firewall_nat = api.path("ip", "firewall", "nat")

rule = {
    "chain": "dstnat",
    "protocol": "tcp",
    "dst-port": "2222",
    "action": "dst-nat",
    "to-addresses": "192.168.88.100",
    "to-ports": "22"
}

firewall_nat.add(**rule)
print("Reguła NAT dodana.")

Wymaga biblioteki librouteros:

pip install librouteros

🌐 SCENARIUSZ 4: Masowe wdrożenie reguł firewall do wielu MikroTików

Cel: Skrypt Python, który iteruje przez listę routerów i wgrywa zestaw reguł.

Przykład (Python):

import paramiko

routers = [
    {"ip": "192.168.1.1", "user": "admin", "pass": "pass1"},
    {"ip": "192.168.2.1", "user": "admin", "pass": "pass2"},
]

commands = [
    '/ip firewall filter add chain=input protocol=tcp dst-port=22 action=drop comment="blok ssh"',
    '/ip firewall filter add chain=input protocol=tcp dst-port=80 action=accept comment="http"',
]

for router in routers:
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect(router['ip'], username=router['user'], password=router['pass'])

    for cmd in commands:
        stdin, stdout, stderr = ssh.exec_command(cmd)
        print(stdout.read().decode())

    ssh.close()

🚨 SCENARIUSZ 5: Automatyczne backupy konfiguracji MikroTik

Skrypt (bash):

#!/bin/bash

ROUTER_IP="192.168.88.1"
USER="admin"
PASS="haslo"
DATE=$(date +%Y%m%d_%H%M)

sshpass -p "$PASS" ssh $USER@$ROUTER_IP "/system backup save name=backup_$DATE"
/usr/bin/scp $USER@$ROUTER_IP:backup_$DATE.backup /mnt/backups/

Dodatkowo można wysyłać pliki backupu na serwer FTP, SFTP, do AWS S3 itp.


🔐 SCENARIUSZ 6: Integracja z systemem SIEM (Wazuh, Splunk, ELK)

Możesz wysyłać logi MikroTik do sysloga zewnętrznego i monitorować je w czasie rzeczywistym, a skrypt wykrycia anomalii może:

  • zablokować IP
  • wysłać dane do SOAR
  • zrestartować interfejs
  • zmodyfikować konfigurację
Czytaj  Automatyzacja zarządzania usługami Windows za pomocą PowerShell: Uruchamianie, zatrzymywanie i restartowanie usług

Integracja skryptów pozwala na pełne zautomatyzowanie procesów bezpieczeństwa i reakcji – w czasie rzeczywistym.


🧠 Rekomendacje bezpieczeństwa

  • Zawsze szyfruj hasła (np. użyj keyring, vault, gpg)
  • Ogranicz dostęp do kluczy SSH
  • Zastosuj rate limiting i whitelisty IP
  • Używaj readonly API tokens (w RouterOS 7+)
  • Monitoruj logi dostępu do MikroTik

🏁 Podsumowanie

Automatyzacja MikroTik przy użyciu Bash i Pythona to realna szansa na zwiększenie bezpieczeństwa, przyspieszenie zarządzania i uproszczenie integracji z infrastrukturą DevOps i SOC. Wdrożenie takich rozwiązań umożliwia nie tylko szybszą reakcję na problemy, ale także efektywne zarządzanie dużymi środowiskami sieciowymi.

Z odpowiednio zaprojektowanym zestawem skryptów, MikroTik staje się nie tylko routerem – ale inteligentnym i samodzielnym elementem architektury bezpieczeństwa i dostępności sieci.

 

Polecane wpisy
Co robić w przypadku ataku ransomware? – Kompleksowy poradnik
Co robić w przypadku ataku ransomware? – Kompleksowy poradnik

Co robić w przypadku ataku ransomware? – Kompleksowy poradnik Wstęp Ataki ransomware stanowią jedno z najgroźniejszych zagrożeń cybernetycznych. Cyberprzestępcy szyfrują Czytaj dalej

Strategie odzyskiwania danych po ataku ransomware bez płacenia okupu
Strategie odzyskiwania danych po ataku ransomware bez płacenia okupu

🛠️ Strategie odzyskiwania danych po ataku ransomware bez płacenia okupu 🔐 Narzędzia do odzyskiwania, współpraca z organami ścigania ❗ Dlaczego Czytaj dalej

Marek "Netbe" Lampart Inżynier informatyki Marek Lampart to doświadczony inżynier informatyki z ponad 25-letnim stażem w zawodzie. Specjalizuje się w systemach Windows i Linux, bezpieczeństwie IT, cyberbezpieczeństwie, administracji serwerami oraz diagnostyce i optymalizacji systemów. Na netbe.pl publikuje praktyczne poradniki, analizy i instrukcje krok po kroku, pomagając administratorom, specjalistom IT oraz zaawansowanym użytkownikom rozwiązywać realne problemy techniczne.