Konfiguracja MikroTik – Część 46: Bezpieczne tunelowanie zdalnego dostępu przy użyciu WireGuard i centralnej autoryzacji
Konfiguracja MikroTik – Część 46: Bezpieczne tunelowanie zdalnego dostępu przy użyciu WireGuard i centralnej autoryzacji
🎯 Wprowadzenie
Zdalny dostęp do infrastruktury to dzisiaj konieczność — zarówno dla administratorów, pracowników, jak i urządzeń automatyki przemysłowej (OT). Zaufanie do starszych technologii, takich jak PPTP czy L2TP z PSK, drastycznie spadło z powodu luk bezpieczeństwa i braku nowoczesnych mechanizmów kryptograficznych. WireGuard jest nowoczesnym, bezpiecznym i bardzo szybkim protokołem VPN, który może być doskonale zaimplementowany również na MikroTik RouterOS (od wersji 7+). W tej części omówimy kompleksowe wdrożenie z centralną autoryzacją, polityką dostępu i monitorowaniem tuneli.

🧰 Co będziemy konfigurować?
- WireGuard jako serwer VPN na MikroTik
- Autoryzacja użytkowników przez RADIUS z wykorzystaniem certyfikatów (EAP-TLS)
- Dynamiczne przydzielanie polityk dostępu
- Kontrola i inspekcja ruchu w tunelach VPN
- Automatyzacja zarządzania dostępem
🚀 Dlaczego WireGuard?
WireGuard jest oparty na nowoczesnych prymitywach kryptograficznych (ChaCha20, Curve25519, Poly1305), ma mały kod źródłowy, jest szybki, prosty i natywnie wspierany przez wiele systemów (Linux, Windows, Android, MikroTik). Co ważne, ma bardzo niskie opóźnienia i świetnie sprawdza się w środowiskach IoT/Edge/Cloud.
🏗️ Konfiguracja serwera WireGuard na MikroTik
1. Generowanie kluczy
/interface/wireguard/peers/add allowed-address=0.0.0.0/0 interface=wg0 public-key=CLIENT_PUB_KEY
/interface/wireguard/add listen-port=51820 name=wg0 private-key=SERVER_PRIV_KEY
/ip/address/add address=10.10.10.1/24 interface=wg0
Uwaga: Klucze można wygenerować offline w
wg genkey+wg pubkey, a następnie dodać je do MikroTik przez CLI lub interfejs WebFig/WinBox.
2. Routing i NAT
/ip/firewall/nat
add chain=srcnat src-address=10.10.10.0/24 out-interface=ether1 action=masquerade
👥 Dodanie klientów zdalnych (peerów)
Każdy klient musi mieć:
- Własny klucz prywatny
- Klucz publiczny serwera
- Zakres adresacji w VPN
/interface/wireguard/peers/add interface=wg0 public-key="..." allowed-address=10.10.10.2/32
🔐 Autoryzacja z FreeRADIUS + EAP-TLS
Jeśli chcesz centralnie zarządzać użytkownikami tunelu, FreeRADIUS może wymuszać warunki dostępu (policy enforcement) na podstawie:
- Certyfikatów (EAP-TLS)
- MAC address
- Login/Hasło (EAP-MSCHAPv2)
- Dynamicznych atrybutów (np. Tunnel-Private-Group-ID)
MikroTik nie obsługuje pełnego EAP dla WireGuard, ale możesz zastosować rozwiązania typu proxy — np. pośredni serwer WireGuard z hookiem RADIUS i automatyczną konfiguracją peerów w MikroTik przez REST API.
🛡️ Dynamiczne ACL – Mikrosegmentacja ruchu VPN
Każdy peer może mieć przypisaną inną politykę firewall, a MikroTik pozwala na inspekcję ruchu wchodzącego z interfejsu wg0. Przykładowo:
/ip/firewall/filter
add chain=forward in-interface=wg0 src-address=10.10.10.2 dst-address=!192.168.0.0/16 action=drop
Lub:
add chain=forward in-interface=wg0 src-address=10.10.10.3 protocol=tcp dst-port=3389 action=accept
📊 Monitorowanie tuneli WireGuard
1. Przez terminal:
/interface/wireguard/print stats
2. Przez SNMP, z użyciem np. Zabbix lub Prometheus + Node Exporter na hostach
3. Z wykorzystaniem API i własnego skryptu bash/python:
curl -k -u admin:haslo "https://mikrotik/api/wireguard/status"
🤖 Automatyzacja z Ansible/CI/CD
Przykład dodania nowego peera z YAML:
- name: Add WireGuard Peer
routeros_command:
commands:
- /interface/wireguard/peers/add interface=wg0 public-key={{ pubkey }} allowed-address={{ ip }}/32
Automatyzację można zintegrować z GitLab CI, gdzie zatwierdzenie MR w repo dodaje klienta VPN do MikroTika.
🧠 Case study: Dostęp do zasobów OT w oddziale
W jednej z polskich firm produkcyjnych zastosowano MikroTik + WireGuard do zabezpieczenia dostępu do systemów SCADA z centrali. Każdy klient (technolog) miał indywidualny certyfikat, przypisany adres i ograniczoną politykę (np. tylko dostęp do portu 502 Modbus TCP). Dostęp był logowany i analizowany w ELK stacku + Grafana Loki.
🧩 Integracja z Tailscale (opcjonalnie)
Tailscale, działający na WireGuard, może również być zainstalowany na serwerze pośrednim, który komunikuje się z MikroTikiem jako peer — umożliwia to bardzo szybkie rozszerzenie sieci VPN bez konfigurowania IPsec czy routingu ręcznie.
✅ Podsumowanie
WireGuard w MikroTik to potężna i bezpieczna alternatywa dla klasycznych VPN, idealna do zdalnego dostępu, tunelowania ruchu między oddziałami lub dostępu awaryjnego. Dzięki integracji z FreeRADIUS, automatyzacją i firewallingiem, można zbudować rozwiązanie klasy enterprise na bardzo przystępnym sprzęcie. Konfiguracja nie jest skomplikowana, a stabilność i wydajność – wyjątkowa.






