2.7 KiB
2.7 KiB
WireGuard road-warrior na MikroTiku (router-hosted)
Nastaveno 2026-06-18 podle runbooku wireguard-mikrotik-runbook.md.
Router
- MikrotikFirewall (hEX, RouterOS 7.19.6), LAN IP
192.168.1.2, SSH port 22. - WAN =
pppoe-out1, veřejná IP78.80.38.51(PPPoE, bere se jako statická).
DŮLEŽITÉ — proč port 51821, ne 51820
Na routeru už běží jiná WireGuard VPN na Unraidu (192.168.1.76): NAT rule
„WireGuard to Unraid" DST-NATuje příchozí UDP 51820 na Unraid. Proto tahle
nová, na routeru hostovaná VPN běží na UDP 51821 (51820 by se nikdy
nedostalo k routeru). Existující Unraid VPN ani tunel 10.253.0.0/24 nejsou dotčené.
Parametry této VPN
| WG rozhraní | wg-vpn, listen-port 51821 |
| Server public key | CGGFHYR83W8IuTB46cJ49IuL/tL3w4yu3o0hQh0Cxwo= |
| Tunelová síť | 10.10.10.0/24, router 10.10.10.1 |
| Klienti | 10.10.10.2 (client2), .3 (client3), .4 (client4) |
| Endpoint | 78.80.38.51:51821 |
| Split tunel | AllowedIPs = 192.168.1.0/24 (jen LAN přes VPN) |
| DNS klientů | 192.168.1.2 (router) |
Přidané firewall pravidla (jen accept, nic nemazáno/nepřeřazeno)
- input: accept udp dst-port 51821 in-interface=pppoe-out1 „WireGuard in (router)"
- input: accept in-interface=wg-vpn „WG -> router (DNS/ping)" (DNS a ping na router z tunelu)
- forward: accept in-interface=wg-vpn „WG -> LAN"
Všechna vložena PŘED příslušné
dropv daném chainu. NAT hairpin nepřidán — LAN hosti mají router jako default gw, návratová cesta funguje.
Skripty
rosrun.py— spouští RouterOS příkazy přes SSH. Creds z env:ROS_HOST/ROS_PORT/ROS_USER/ROS_PASS. Pozn.: v Git Bash nutnéMSYS_NO_PATHCONV=1a příkazy přes stdin (ne--cmd, mangluje/...).gen_clients.py— generuje klíče (wg.exe) +.conf+ QR PNG dowg-clients/, a_peers_add.rsc.
Klientské konfigurace
wg-clients/clientN.conf (import na notebook) + wg-clients/clientN.png (QR pro mobilní app).
Obsahují privátní klíče — po rozdání na zařízení smaž, ať neleží zbytečně.
Test (jen zvenku, ne z LAN!)
Telefon na mobilních datech → naskenuj QR → ověř ping 192.168.1.2. Z LAN to
handshake neudělá (accept je vázán na in-interface=pppoe-out1, hairpin pro 51821 není).
Rollback
/interface wireguard peers remove [find interface=wg-vpn]
/ip firewall filter remove [find comment="WG -> LAN"]
/ip firewall filter remove [find comment="WG -> router (DNS/ping)"]
/ip firewall filter remove [find comment="WireGuard in (router)"]
/ip address remove [find interface=wg-vpn]
/interface wireguard remove [find name=wg-vpn]