2024. április 13., szombat

Gyorskeresés

Mikrotik hAP ax³

Írta: | Kulcsszavak: mikrotik . adguard . container . wireguard . vpn

[ ÚJ BEJEGYZÉS ]

Hálózati fejlesztésként beruháztam egy lentebb látható Mikrotik hAP ax³-ra kíváncsiságból, mivel pár érdekeset tartogat szerintem mindenki számára a szolgáltatásai listája a Mikrotik eszközöknek, számomra a legvonzóbbak a container futtatás illetve a WireGuard támogatás volt.

Fizikai mivoltát tekintve minőségi érzés fogja el az embert, mert nem egy recsegős műanyag dobozt kap a kezébe az ember, formás is, hogy ne kelljen elrejteni, illetve talán praktikus is a perforáció rajta alul-felül, amin keresztül tud szellőzni, mert azért fog termelni némi hőt (nem vészes).
Ami a leggagyibb érzetet az antennák adják, kicsit olyan, mintha bármelyik pillanatban képesek lennének porrá törni.

Az alapokra nem szeretnék kitérni (egyébként is mi vagyunk a legnagyobb technikusok, akik valaha éltek), talán csak arra hívnám fel mindenki figyelmét, hogy:

- használjuk bátran a WinBox-ot
- reset esetén előfordulhat, hogy zero config-os lesz az eszközünk, ekkor MAC alapú kapcsolódást tudunk kezdeményezni az eszközzel (WinBox), vagy esetleg, ha van kéznél másik DHCP szerver, akkor IP-n keresztül is, ugyanis ilyenkor a router-nek még saját IP-je sem lesz
- ha vissza szeretnénk rakni a default config-ot, akkor menüből kezdeményezzünk egy reset-et anélkül, hogy bármelyik opciót is benyomnánk, így biztosan olyan állapotba kerül az eszköz, ahogyan az kijött a gyárból

WiFi

Ugyan tényleg nem akarok belemenni a hétköznapi dolgokba (bár Mikrotik-kel mintha semmi nem lenne az), de a WiFi kapcsán fontos kiemelni, hogy vezeték nélküli teljesítményért senki ne vegyen Mikrotik-et. A 7-es RouterOS-sel már legalább az megváltozik, hogy nem maguk írják a WiFi driver-eket, de ettől még nem lesz acélos a dolog, érezhetően gyengébb a hatósugara, mint az AX86U-nak, amit használtam, vagy épp a UPC ConnectBox-nak.
Kicsit sikerült javítani a helyzeten azzal (korrekt csatorna kiválasztása mellett), hogy:

- átállítottam a adó teljesítményt (TX power) 20 dBi-re (27-re is lehetne, ha jól láttam a használt 100-as csatornával)
- megadtam az antenna gain-t (nyereséget), ami 6 dBi

Magával a sebességgel, illetve az alapvető stabilitással nincs gond.

Pár alap információ

Lentebbi dolgokhoz esetleg jól jöhetnek, ha ezek ismertek:
- RouterOS verzió: 7.13.3
- hálózatom: 192.168.2.0/24
-router-em IP-je: 192.168.2.1

Container - AdGuard

A váltás illetve a kísérletezés egyik célja az volt, hogy kipróbáljam a Mikrotik container futtatási képességét, mert ez kimondottan kényelmessé teheti a reklámok blokkolását DNS alapon anélkül, hogy egy plusz PC/Pi/egyéb kellene.

AdGuard-ot már használtam, így ez volt az alany is, Mikrotik oldalán van teljes leírás PiHole-hoz egyébként, de a kettő végül is teljesen hasonló, de vágjunk is bele.

Amire szükség lesz az egy USB-s drive (bármilyen), System > Disks alatt tudjuk formázni is ext4-re. Amire érdemes figyelni, az egy hiba valahol a RouterOS-ben, mert előfordul, hogy pl. egy USB 3.0-ás meghajtót kétszer is listáz, ebben az esetben azt fogjuk tapasztalni, hogy usb1 hol usb2 alatt találjuk a fájljainkat, így, ha a következőt látjuk magunk előtt, inkább keressünk egy másik meghajtót (USB 2-est vagy olyat, amit csak egyszer listáz):

Én egy 2008-ban vásárolt 2.0-ás meghajtóra tértem át, így már rendben van a dolog:

Container támogatása extra csomagként érhető el, ezt le kell tölteni a router-hez megfelelő verzióban a Mikrotik oldaláról, feltölteni az eszközre (Files-on keresztül), majd újraindítani, hogy települjön a csomag.
Ezek után még pluszban engedélyezni kell a container támogatást, ennek biztonsági okai vannak, irány a Terminal:

/system/device-mode/update container=yes

A parancs kiadása után meg kell nyomnunk egy hardveres gombot a router-en, ennek következtében újra is fog indulni, ne lepődjünk meg.

Miután újra beléptünk a router-be, csak a Terminal-ra lesz szükségünk, állítsuk be az alapokat, mint memória limit és forrás hub:

/container/config/set ram-high=200M

Már a pull directory is az USB meghajtóra kerül, nem a belső flash-re (ami kicsi és lassú):
/container/config/set registry-url=https://registry-1.docker.io tmpdir=usb1/pull

Először szükségünk lesz egy interface-re, amit a container fog használni:

/interface/veth/add name=veth1 address=172.17.0.2/24 gateway=172.17.0.1

Majd egy kapcsolódó hálózatra, amin keresztül elérhetővé is válik számunkra:

/interface/bridge/add name=containers
/ip/address/add address=172.17.0.1/24 interface=containers
/interface/bridge/port add bridge=containers interface=veth1

NAT-ot is be kell állítanunk, hogy elérhető legyen a külvilág:

/ip/firewall/nat/add chain=srcnat action=masquerade src-address=172.17.0.0/24

Következő lépésben állítsuk be a szükséges környezeti változókat és mount-okat, ami szükségünk lehet, esetemben:

/container/mounts/add name=adguard_work src=usb1/adguard/work dst=/opt/adguardhome/work
/container/mounts/add name=adguard_conf src=usb1/adguard/conf dst=/opt/adguardhome/conf

És jöhet is az image pull, illetve a container előkészítése:

/container/add remote-image=adguard/adguardhome:latest interface=veth1 root-dir=usb1/adguard/root mounts=adguard_work,adguard_conf hostname=adguard

Nekem erre a container-re állandóan szükségem lesz, így engedélyezni kell, hogy újraindítás után ez is induljon el:

/container/set 0 start-on-boot=yes

És akkor start:

/container/start 0

Ha minden jól ment, valami ilyesmit kell látnunk összesítve:

Ekkor maga az AdGuard már elérhető kívülről is a 172.17.0.2-es címen, de attól függően, ki mit hogyan szeret, be lehet állítani egy port forward-ot is a router címére, hogy elérjük a GUI-t:

add action=dst-nat chain=dstnat dst-address=192.168.2.1 dst-port=3000 protocol=tcp to-addresses=172.17.0.2 to-ports=3000

Innentől már csak azt kell megoldani, hogy a DNS feloldás megtörténjen, ezt megint, ki hogyan szeretné, én a kliensek felé leküldöm a container IP-jét az első helyen, de másodiknak meghagyom a router-ét, ami a szolgáltató által biztosított upstream DNS szerverekre támaszkodik, így abban az esetben, ha a container megállna, még mindig lesz internet, csak reklámokkal (ehhez természetesen szükséges az AdGuard helyes beállítása, hogy mindenképp adjon vissza találatot a semmibe).

Nem feltétlenül így a legszebb, hogy a container hálózat szabadon elérhető, de nekem megteszi, átlátható, követhető.

WireGuard

Következő megoldandó feladat 2 egymástól távoli hálózat összekötése VPN-nel. Eddig is volt egy félig meddig összehozott megoldás OpenVPN-nel, de az OVPN-t a Mikrotik nem igazán támogatja, valamit össze lehet vele hozni, de nem az igazi, szerencsére a WireGuard már megy vele natívan, amit támogat a másik hálózatban lévő Asus AX86U is.

Így néz ki a dolog:

Báránd (szerver): 192.618.1.0/24 - barand.vpn.server.hu DDNS beállítva előre a dinamikus public IP miatt
Budapest (kliens): 192.168.2.0/24

Asus a VPN szerver, next-next-finish módon be lehet állítani, egy dologra figyeljünk, hogy ne maradjon ki a távoli hálózat az server oldali allowed listából, különben nem lesz működő routing-unk:

Routing:

A végén mutat nekünk egy QR kódot, de nekünk a részletek kellenek:

[Interface]
PrivateKey = PRIVATE_KEY
Address = 10.6.0.2/32
DNS = 10.6.0.1

[Peer]
PublicKey = PUBLIC_KEY
AllowedIPs = 0.0.0.0/0
Endpoint = barand.vpn.server.hu:44444
PersistentKeepalive = 25

Jöhet a Mikrotik oldalán a kliens beállítása, van gyári leírás is, nekem az annyira nem segített, de érdemes lehet megnézni.

Első lépésekben meg kell adni a WireGuard beállításait, a szerver oldalán kiköpött adatokat megadva tudjuk ezt összehozni, mindent onnét értelem szerűen használjunk fel:

/interface/wireguard/add name=barand-wg-client listen-port=44444 private-key="PRIVATE_KEY" comment="wg: barand"

/interface/wireguard/peers add interface=barand-wg-client public-key="PUBLIC_KEY" allowed-address=0.0.0.0/0 endpoint-address=barand.vpn.server.hu endpoint-port=44444 persistent-keepalive=25 comment="wg: barand"

/ip/address/add interface=barand-wg-client address=10.6.0.2/24 comment="wg: barand"

Szükségünk lesz egy route-ra, hogy elérjük a kliens oldaláról a szerveroldali hálózatot:

/ip/route add dst-address=192.168.1.0/24 gateway=barand-wg-client comment="wg: barand"

Következő lépésben vagy berakjuk a LAN listába a WireGuard interface-t, vagy tűzfalszabályokat állítunk; előbbi egyszerűbb, de nem feltétlenül akarja mindenki, hogy bármelyik kliens mázkáljon a túlvilágra, nekem az első opció végül is megteszi, mert szinte csak saját felhasználásra kell az egész:

/interface list member add interface=barand-wg-client list=LAN comment="wg: barand"

Utolsó mozdulat egy újabb NAT beállítása, enélkül nem fogjuk tudni elérni a távoli hálózatot, illetve semmi nem fog visszatalálni:

/ip firewall nat add action=masquerade chain=srcnat ipsec-policy=out,none out-interface=barand-wg-client comment="wg: barand"

Ha ezekkel végeztünk, el kell tudnunk élni a 192.168.1.0/24-es hálózatot a Mikrotik-es kliensünk keresztül bármelyik eszközről, ami a Mikrotik-en lóg:

Asus oldalról is megy szépen a távoli hálózat elérése:

Elképzelhetőnek tartom, hogy nem a legjobb beállításokkal megy ez most nekem, ha valakinek van valami tippje még, mit hogyan kellene, jelezze bátran, jelen pillanatban száguldanak a bitek rendesen.

Még van, amit be akarok állítani, például DDNS szolgáltatás, amit a Mikrotik csak script-en keresztül tud, amennyiben nem a gyártó saját megoldását akarjuk használni, szóval a kaland még nem fejeződött be.

Nagyjából egy hete használom az eszközt, eddig hibátlan.

Hozzászólások

(#1) Peter Kiss


Peter Kiss
senior tag
LOGOUT blog

Már csak a túloldalra is kell egy Mikrotik az Asus helyett. :DDD

(#2) [K2]

Hamarosan felszállok a Mikrotik vonatra, úgyhogy köszönöm ezt a cikket, ez a konténeres reklámblokkolás jó mókának ígérkezik :)

"Sum ergo cogito; cogito ergo dubito" - Jonathan Hepburn

(#3) [K2]

Napi jó hír: RouterOS 7.13.5 -ös verzión (x86-on futtatva) simán feldobtam a konténeresdit Winbox/Files-ból.
Restart után meg is jelent a menüpont Winbox-ban.

[ Szerkesztve ]

"Sum ergo cogito; cogito ergo dubito" - Jonathan Hepburn

További hozzászólások megtekintése...
Copyright © 2000-2024 PROHARDVER Informatikai Kft.