SKORI WEBLAPJA
Mikrotik Routerek és Beállításuk

Manapság aki Internetet használ, annak elõbb-utóbb szüksége lesz egy router-re is, vagy már használ is ilyen eszközt, elsõdlegesen azért, hogy több eszközön is használni tudja az Internet elérését, vezetékes vagy éppen wifi kapcsolatot használva. Jelenleg (2018-ban) sokféle otthoni célra ajánlott típus kapható, több gyártó kínálatából, a teljesség igénye nélkül: ASUS, TP-Link, Tenda, D-Link, stb...
De akkor hogy jön a képbe a Mikrotik és miért? Ha egy mondatban akarnék válaszolni, akkor azért mert jók, de kevesen ismerik. Bõvebben pedig: A Mikrotik routerei régebben inkább a professzionális felhasználást célozták meg (jellemzõen pl. Internet-szolgáltatók is használják a saját hálózatukban), de az utóbbi években olyan eszközeik is megjelentek, amelyek akár otthoni felhasználásra alkalmasak, ár/teljesítmény szempontjából igen kedvezõek, de ugyanazokkal a professzionális szolgáltatásokkal is fel vannak szerelve, mint a profi eszközök!
A történet ott kezdõdik, hogy néhány éve a munkahelyemen szóltak, hogy be kellene állítani néhány routert. Ok. pikk-pakk megoldjuk, mi az nekem - gondoltam én - aztán megláttam a Mikrotik menüjét, ami legalább 10x annyi menüpontból és almenübõl áll, mint egy sima soho routeré. Szóval volt egy kis meglepõdés, utána viszont inkább kihívássá vált a dolog, és ahogy teltek a napok, és minél jobban megismertem a RouterOS (a Mikrotik routereken futó, linux alapú operációs rendszer) logikáját, annál jobban tetszett. Akiben van egy kis technikai érzék, az hamar meg tudja szeretni. Akiben meg nincs - nos gondolom az már rájött, hogy ez a cikk nem neki fog szólni.
Kb. 3éve a lakóhelyemre is eljutott a szélessávú Internet elérés lehetõsége, ami optikai kábeles csatlakozású, és jelenleg gigabites letöltési sávszélességet tesz lehetõvé. Sok felhasználó ekkor jött rá, hogy az otthoni routere ehhez bizony kevés, és az abban levõ processzor ereje 200...300 Mbps (Megabit per szekundum) sebességnél már elfogy, és esélye sincs a gigabites Internet kihasználására. Természetesen a routerek gyártói a soho kategóriában is reagáltak az új igényekre, és kaphatók gigabites Internet használatára is alkalmas típusok, azonban ezek az olcsó átlag kategóriához képest kb. 3x annyiba kerülnek (2018-ban kb. 30eFt-ról beszélhetünk). A Mikrotik ilyen teljesítményû routerei 1...2 éve még megfizethetetlenek voltak az otthoni felhasználóknak, azonban azóta több új, és olcsó típus is megjelent a kínálatban, amelyek árban versenyképesek a soho kategóriás routerekkel, szolgáltatásban, konfigurálhatóságban azonban messze felülmúlják azokat. Ezek közül kiemelném a Mikrotik hAPac^2 fantázianevû típust, amelyet jelenleg 20eFt alatt lehet megkapni, 4 magos mikroprocesszor dolgozik benne (4x 710MHz-en mûködik), 128Mb (némelyikben 256Mb) RAM-al van felszerelve, valamint hardveres titkosítást támogató modullal. Fel van szerelve még 2.4GHz-es és 5GHz-es wifivel is. Széleskörû konfigurálhatóságára jellemzõ pl. egyszerre akár több wifi hálózatot tud szórni, minden ethernet port funkciója külön konfigurálható, tehát nincs kikötve, hogy az 1-es port a WAN a többi pedig a LAN port, bármelyik lehet bármi. A soho routerektõl eltérõen, nincs szükség minden egyes módosítás után a router újraindítására, amikor beállítunk vagy módosítunk valamit, az pillanatokon belül végrehajtódik ill aktualizálódik. VPN kliensként, szerverként is tud mûködni akár egyszerre is. Kezel VLAN-okat, sokféle extra protokollt, és rengeteg egyéb ügyes/hasznos dolgot - amiben most nem mennék bele. Viszont sokan azért félnek ilyen routert vásárolni otthonra, mert attól tartanak, hogy nem fogják tudni megfelelõen beállítani. Nos ez valóban nem teljese alaptalan, de az alábbiakban ehhez szeretném megadni a kezdõ lökést azzal, hogy megpróbálom bemutatni, hogyan is konfiguráljunk be egy ilyen routert, elsõ körben kb. ugyanolyan funkciókra, mint amire egy bármilyen soho kategóriás routert használnánk. Majd ezen továbblépve jöhetne: vendég-hálózat kialakítása, VPN, IP kamerák stb... (ahogy és amire éppen lesz energiám)
Tehát tegyük fel, hogy jelen cikk kedves olvasója rászánta magát és vásárolt egy Mikrotik routert, de a sok menüpont láttán kicsit megijedt, vagy csak elakadt a beállításban, netán egyik sem, és csak kíváncsiságból olvassa még mindig ezt a cikket. Amikor egy új Mikrotik a routert üzembe helyezünk, akkor azon van egy gyári alapértelmezett konfiguráció beállítva. A router menüjében pedig szerepel egy Quick Setup menüpont, ami feltehetõleg azzal a céllal került bele, hogy azok a felhasználók, akik eddig csak a szokásos soho routerek menüjét piszkálgatták, azért boldogulni tudjanak ezzel a routerrel. Nos ez a cikk nem nekik fog szólni, hanem azoknak, akik ennél egy picit többet akarnak, és/vagy netán érteni is akarják, amit csinálnak.
A Mikrotik routerek sokféleképpen kezelhetõk ill. konfigurálhatók, a (soho routereknél is) szokásos webfelület mellett, pl. akár szöveges terminál parancsokkal, vagy egy erre a célra készült kis Windows alatt futó programmal is elvégezhetõk a beállítások. Ez utóbbi használata a legkényelmesebb és a legcélszerûbb.

Tehát az elsõ lépések:
- Töltsük le a Mikrotik weboldaláról a Winbox.exe programot
Akik nem windows-t használnak, azoknak sem kell lemondaniuk errõl a programról. Linux, és OS X, alatt is jól mûködik, amennyiben a wine (windows környezet emulátor) telepítve van.

- Állítsunk be fix IP címet azon a PC-n, amin a Mikrotik konfigurálását fogjuk végezni, pl. IP address: 192.168.5.18 Netmask: 255.255.255.0 Gateway: 192.168.5.1 DNS: 8.8.8.8
Ez e lépés kihagyható, ha van mûködõ hálózatunk, és a Mikrotik csak a teljes bekonfigurálása után lesz élesben felhasználva. Azonban ha a Mikrotik lesz "élesben" konfigurálva, akkor célszerû, ha a PC-nek nem kell a még nem létezõ DHCP szerverre várakoznia (mivel azt még nem állítottuk be).

- Kössük össze egy UTP kábellel a PC-t és a router valamelyik LAN portját. Várjunk kb. 30 másodpercet, amíg a router bebootol. (Aki mûködõ hálózatba köti be a mikrotiket a konfigurálás céljából az egy szabad switch porta is kötheti.)

- Indítsuk el a winbox-ot, és próbáljuk elérni vele a routert. A winbox IP cím és MAC address alapján is tud kapcsolódni. Elsõ körben ez utóbbival próbálkozzunk (a Neighbors fület kiválasztva felsorolja az elérhetõ MAC addresseket). Egy új router esetben a felhasználónév: admin, és nincs jelszó.

Ha sikerült belépni, akkor elsõ lépésként töröljük a gyári konfigurációt, hogy "tiszta lappal" kezdhessünk neki a beállításoknak.
/system reset-configuration no-defaults=yes skip-backup=yes
Várjuk meg, amíg a router újraindul, és csatlakozzunk újra a winbox-al. Az újra csatlakozás, most csak MAC address alapon fog menni, mivel a routernek (konfiguráció híján) ilyenkor még nincs IP címe! A kép felett megadtam egy szöveges parancssort, amivel ugyanezt érnénk el, ha egy terminál ablakba begépelnénk, mint amit a képen szereplõ menübõl. Ennek a logikáját is érdemes lesz késõbb megérteni, mert Mikrotikkel foglakozó Internet oldalakon gyakran csak ilyen formában adják meg a parancsokat.

Elõször kezdjük a LAN oldal beállításával. Hozzunk létre egy bridge-t a LAN oldal számára. Tetszõleges nevet adhatunk neki, de maradhat a default bridge1 név is. Minden beállítása lehet default. Ezután rendeljük hozzá a LAN oldali IP címet:
/interface bridge add name=bridge1
/ip address add address=192.168.5.1/24 interface=bridge1
Ha az IP címet kiegészítem a /24 végzõdéssel akkor azzal a netmask-ot is megadtam. Tehát az IP elsõ 24bit-je a hálózati cím, és a maradék 8 bit a helyi cím, ami egyenértékû a 255.255.255.0 netmask megadásával. Emiatt a menüben Network mezõt sem muszáj kitöltenem. A következõ lépés a LAN portok (ether 2, ether3, ether4 és ether5) hozzáadása a bridge-hez:
/interface bridge port add bridge=bridge1 interface=ether2
/interface bridge port add bridge=bridge1 interface=ether3
A képen látható beállítást tehát meg kell ismételni, hogy mindegyik LAN portot hozzáadjuk a bridge-hez. Amikor éppen azt a portot adjuk a bridge-hez, amelyikbe a konfigurálást végzõ PC csatlakozik, akkor elõfordulhat hogy a winbox kapcsolat megszakad. Ettõl nem kell megijedni, nyugodtan újra lehet csatlakozni. Mivel ilyenkor már van IP címe is a routernek, nem csak MAC address, hanem IP alapján is lehet csatlakozni.
Ezután létre kell hozni egy DHCP szervert, ami a LAN oldalon (bridge1 -en) az IP címeket fogja kiosztani. Ehez szükség lesz egy címtartomány megadására:
/ip pool add name=dhcp-pool1 ranges=192.168.5.100-192.168.5.250
A DHCP szerver beállításaira:
/ip dhcp-server add address-pool=dhcp-pool1 authoritative=after-2sec-delay disabled=no interface=bridge1 lease-time=3d10m name=server1
A hálózati címek beállítására:
/ip dhcp-server network add address=192.168.5.0/24 dns-server=192.168.5.1,8.8.8.8 gateway=192.168.5.1 netmask=24
Ezután a DHCP szerver a dhcp-pool1 IP tartományból fog IP címeket kiosztani, a network fülön megadott DNS és Gateway adatokkal.
Most jöhet a DNS szerverek beállítása. Az internetszolgáltató DHCP szervere dinamikusan kiosztja a DNS szervereinek is a címét, ezért nekünk nem muszáj ezt az alábbi menüben megadni, de van rá lehetõségünk. Ami érdekes beállítás itt, hogy az Allow Remote Request elé betesszük-e a pipát vagy sem. Ha igen akkor a routerünk kiszolgálja a DNS kéréseket is, ha nem akkor a klienseknek a DNS kéréseket közvetlenül a szolgáltató szerverérõl kell kérnie (vagy a google szerverérõl: 8.8.8.8-as IP-n) Mivel az elõzõ (DHCP network) beállításnál megadtuk a routerünk LAN címét is DNS szerverként így tegyük be a pipát. Avagy a a DHCP network beállításnál ezt vegyük ki, és más DNS szervert adjuk meg (pl. a google másik szervere 8.8.4.4). A DNS-t szeretik hekkelni az Internet felõl, ezért ha a routerünk DNS szerverként is mûködik, akkor ennek az elérését az Internet felõl érdemes lesz tiltani a tûzfalban.
/ip dns set allow-remote-requests=yes servers=8.8.8.8,8.8.4.4
Mielõtt a WAN oldalt is beállítanánk és bármit csatlakoztatnák érdemes egy kicsit a biztonsággal is foglakozni, nehogy egybõl szét is hekkeljék a routert, amikor az internetre csatlakozunk vele. Tehát elõször állítsunk be jelszót a belépéshez:
/user set admin name=admin
/user set admin password=ideirdazadminjelszot
Korlátozzuk a router elérését a LAN IP tartományára, kapcsoljuk ki azokat a szolgáltatásokat, amiket egyelõre nem használunk (api, ftp, telnet, ssh, stb...) csak a www és a winbox maradjon. A saját routeremen a www elérés portját lecserétem az eredei 80-as portról a 8000-es portra.
/ip service
set telnet disabled=yes
set ftp disabled=yes
set www address=192.168.0.0/16 port=8000
set ssh disabled=yes
set api disabled=yes
set winbox address=192.168.0.0/16
set api-ssl disabled=yes
Ezután hozzunk létre egy listát a LAN portokról,...
/interface list add name=LAN
/interface list member
add interface=ether2 list=LAN
add interface=ether3 list=LAN
add interface=ether4 list=LAN
add interface=ether5 list=LAN
add interface=wlan1 list=LAN
... és korlátozzuk a MAC address alapján történõ elérést is a LAN portokra:
/tool mac-server set allowed-interface-list=LAN
/tool mac-server mac-winbox set allowed-interface-list=LAN

Vegyünk fel egy tûzfal szabályt, ami a DNS külsõ elérését letiltja.
/ip firewall filter add action=drop chain=input dst-port=53 protocol=udp src-address=!192.168.0.0/16
Tehát ez egy input filter lesz, ami nem vonatkozik a LAN címekre ( ! 192.168.0.0./16) , az 53-as UDP porton jövõ kéréseket (külsõ DNS kérések) eldobja (action=drop) Késõbb ezt kicserélhetjük ill. kiválthatjuk szélesebb hatókörû, és szigorúbb tûzfal szabállyal, de kezdetben ennyi is elég lesz ahhoz hogy ne hekkeljék szét egybõl a routert.
Ha idáig sikerült eljutni, akkor beállíthajuk a WAN oldalt, azaz az Internet elérésünket. A leggyakoribb a pppoe kapcsolat, felhasználónévvel és jelszóval,. Tehát megadjuk a felhasználónevet, a jelszót, és hogy melyik interfészen akaruk ezt a kapcsolatot létrehozni:
/interface pppoe-client add add-default-route=yes disabled=no interface=ether1 keepalive-timeout=disabled \
name=pppoe-digi password=idekellajelszo use-peer-dns=yes user=idekellausername
Még egyszerûbb ha simán UTP kábelen kapunk dinamikus IP címet, ilyenkor csak meg kellé adni, hogy a WAN portunk (jelen esetben az ether1) legyenDHCP kliens, azaz kérjen magának IP címet:
/ip dhcp-client add interface=ether1
Ezután be kell állítani a címfordítást (NAT-olást) hogy a LAN oldali eszközök elérjék az internetet. Tehát megadjuk, hogy címfordítást akarunk végezni, milyen címtartományt akarunk kiszolgálni, és melyik interfészen keresztül érjük el az internetet. (ha nem pppoe kapcsolatot állítunk be akkor az out interfész ether1 lesz)
/ip firewall nat add action=masquerade chain=srcnat out-interface=pppoe-digi src-address=192.168.5.0/24
PPPOE kapcsolat esetén a sima ethernet kapcsolathoz képest 60 bájttal kisebb TCP csomagok férnek át (a pppoe fejléc miatt), ezért ha némelyik Internet oldal nem érhetõ el a LAN oldalon, akkor szükség lehet a maximális csomagméret megváltoztatására. Mivel az ethernet porton a maximális csomagméret (MTU) alaphelyzetben 1500bájt, ezért itt 1440 bájtot állítunk be.
add action=change-mss chain=forward new-mss=1440 out-interface=pppoe-digi passthrough=yes protocol=tcp tcp-flags=syn tcp-mss=!0-1440
Ha idáig sikerült eljutni (és én sem rontottam el a leírást sehol) akkor a routerünk a LAN portjain már lehet internetezni, most jön a wifi beállítása. Elõször létre kell hoznunk egy security profil-t, amiben a jelszót és a titkosítás módját adjuk meg. A profil neve: gabor, a titkosítás: WPA2-PSK AES, a jelszó meg sok csillag :).
/interface wireless security-profiles add authentication-types=wpa2-psk mode=dynamic-keys name=gabor wpa2-pre-shared-key=wifijelszo
Ezután beállíthatjuk a wifi interfészt. Most a wlan1-et (2.4GHz) állítjuk be, a wlan2 beállítása kb.ugyanilyen, de 5GHz-en használjunk auto frekvenciabeállítást. Tehát meg kell adni az SSID-t a protokollt (802.11), a csatornát ill. frekvenciát, és az üzemmódot (AP-bridge):
/interface wireless set [ find default-name=wlan1 ] band=2ghz-b/g/n channel-width=20mhz disabled=no frequency=2462 \
mode=ap-bridge security-profile=gabor ssid=ideirdazssidt wireless-protocol=802.11 wps-mode=disabled
Ezután hogy mindezt használni is tudjuk, a wlan1 interfészt be kell tenni a bridge1-be. Errõl nem teszek be képet, vissza lehet lapozni a bridge beállításához.
/interface bridge port add bridge=bridge1 interface=wlan1

Az elérhetõ sebesség növelése érdekében a mikrotik routrekben van egy lehetõség az adatcsomagok gyorsabb kezelésére. Ez a funkció a fasttrack ill. fastpath. Lényegében egy olyan tûzfal szabályról van szó, ami bizonyos csomagok esetében lehetõvé teszi, hogy a csomagok átugorják a csomagkezelõ sor egy részét. Pl. a már felépült kapcsolatok csomagjait, amiket a tûzfal, a kapcsolat felépülésekor már átengedett, nem muszáj újra végigfuttatni a tûzfalon. Ezek a csomagok a queue-t is átugorják, tehát a fasttrack bekapcsolásakor nem fog mûködni pl. a sávszélesség korlát. Cserébe viszont növekszik a router sebessége és drasztikusan csökken az adott sebességhez tartozó processzor terhelés. Ha mondjuk vendég hálózatot is szeretnék mûködtetni, amin sávszélesség korlát is van, akkor egy olyan trükkhöz folyamodhatunk, hogy a fasttrack-ot csak a fõ hálózatunk IP tartományára állítjuk be, a többi csomag megy a maga útján. Így gyors marad a router, de a vendéghálón is mûködhet a sebesség korlátozás. Ehez az alábbi 2db szabályt kell felvenni a túzfalba. Lehetõleg csak olyan szabályokkat rakjuk be ezek elé, ahol szükség van rá, hogy azokat egyik csomag se ugroja át (nálam ez az elsõ két helyen van).
/ip firewall filter
add action=fasttrack-connection chain=forward connection-state=established,related dst-address=192.168.5.0/24
add action=accept chain=forward connection-state=established,related
Ehez már nem teszek be újabb képet. A winboxban egy terminál ablakot nyitva bemásolhatók a parancsok, és végre is hajtódnak. Illetve a menüben, a parancs alapján is meg lehet találni a megfelelõ menüpontokat: IP menü - firewall - filter fül, + gomb az új szabály felvételéhez. A felugró ablakban keressük meg a további paramétereket és állítsuk be.

További tûzfal szabályok:

Dobjuk el az invalid csomagokat:
/ip firewall filter add chain=input connection-state=invalid action=drop comment="Invalid csomagok eldob"
/ip firewall filter add chain=forward connection-state=invalid action=drop comment="Invalid csomagok eldob" 
Az Estabilished csomagok átengedése:
/ip firewall filter add chain=input connection-state=established action=accept comment="Established connections" 
A LAN IP tartományba esõ forráscímû csomagok átengedése, kivéve ha az Internet interfésze felõl jön
/ip firewall filter add chain=input src-address=192.168.0.0/24 action=accept in-interface=!pppoe-digi 

A mikrotik router tud úgynevezett IP cím listákat létrehozni és tárolni. Hatékony védelmet tudunk készíteni ezt felhasználva, úgy hogy létrehozunk pl. egy feketeklistát. A feketelistára azokat az IP címeket tesszük fel, megfelelõ tûzfal szabályokkal, amelyek számunkra nem kívánatos módon próbálnak kapcsolódni a routerünkhöz. Tehát pl. ha az 53-as porton jönnek udp kérések (DNS) akkor a forrás IP címét feltesszük a feketelistára, kivéve ha a LAN oldalról érkezik a kérés. A feketelistán levõ IP címeket egy újabb szabállyal blokkoljuk. Így "aki" felkerül a feketelistára annak az össze csomagját eldobjuk, azokat is amelyek az egyébként esetleg nyitott portokra érkeznének, így egy magadott ideig "láthatatlanok" lesznek a router szolgáltatásai az adott IP címû forrás számára. Nézzük, hogy is megy ez:
Port szkennelõk feketelistára rakása:
/ip firewall filter add action=add-src-to-address-list address-list=blacklist address-list-timeout=1d10m \
chain=input comment="port scanners" protocol=tcp psd=21,3s,3,1
Akik nemkívánatos portokon próbálnak bejönni (felsoroljuk a TCP majd a kövektekõ szabályban az udp portokat) Ezek a szabályok elég széleskörûek, ezért nem biztos, hogy mindenkinek egy-az-egyben jók, érdemes a portok listáját a saját igényeinkre szabni:
/ip firewall filter add action=add-src-to-address-list address-list=blacklist address-list-timeout=6h \
chain=input dst-port=20-1023,8000,8080,8192 protocol=tcp src-address=!192.168.0.0/16

/ip firewall filter add action=add-src-to-address-list address-list=blacklist address-list-timeout=6h \
chain=input dst-port=20-122,124-499,501-1023,8000,8080,8192 protocol=udp src-address=!192.168.0.0/16
Itt természetesen több olyan további szabályt is létrehozhatunk ami alapján feketelistára kerülhet egy IP cím (lásd késõbb). Végül jöhet a feketelistán levõk blokkolása:
ip firewall filter add action=drop chain=input comment="drop blacklist" src-address-list=blacklist
ip firewall filter add action=drop chain=forward comment="drop blacklist" src-address-list=blacklist
A feketelistára feltehetünk néhány fix IP címet, ami normál esetben nem lehetne a hálózatban, de hibás beállítás, vagy hackelés miatt kaphatunk ilyen csomagokat.
/ip firewall address-list add address=0.0.0.0/8 list=blacklist
/ip firewall address-list add address=127.0.0.0/8 list=blacklist
/ip firewall address-list add address=224.0.0.0/3 list=blacklist
Természetesen ha akad olyan álladó támadó akinek már ismerjük az IP címét (IP címeit vagy IP tartományát), akkor azt is feltehetjük idõlimit nélkül a feketelistára. A többi szabály néhány órás idõlimittel rakta csak feketelistára az adott címeket, mivel ezek nagy része dinamikus IP cím, tehát a támadó IP címe is változik, és a tárolt cím egy idõ után esetleg már másvalakihez tartozhat.

Most jöjjön néhány egyszerû, de hasznos beállítás.
Állítsuk be az dátumot és az idõt egy idõszerver alapján, így a log bejelgyzések, minden idõzített esemény helyes dátummal idõpontal fog szerepelni:
/system clock set time-zone-name=Europe/Budapest
/system ntp client set enabled=yes primary-ntp=148.6.0.1 secondary-ntp=52.178.161.41
A két IP cím a time.kfki.hu és a time.windows.com címe, a megadott domain nevet a mikrotik kicseréli IP címekre.
A mikrotik routerhez alapból jár DynDNS szolgáltatás, használjuk!
/ip cloud set ddns-enabled=yes update-time=no
Ezt beállítva a gyáriszám.mynetname.net név lesz a routerünk publikus (Internet oldali) IP címéhez hozzárendelve.

Ha el szeretnénk érni pl. a mikriotik USB-be bedugott pendrájvot, azt megtehetnénk pl. FTP-vel, de akár a hálózatban windows fájlmegosztásként (samba) is elérhetjük:
/ip smb set allow-guests=no comment=Mikrotik domain=Mukacsoport enabled=yes interfaces=bridge1
/ip smb shares set [ find default=yes ] disabled=yes
/ip smb shares add directory=/ name=Mikrotik
/ip smb users add name=idekellazusername  password=idekellapassword read-only=yes

Soho routerek esetében is gyakran van szükség port forward-ra (némelyik router "virtual server"-nek hívja), a mikrotik menüjében az a dst-nat. Néhány példa:
/ip firewall nat add action=dst-nat chain=dstnat dst-port=57030-57039 in-interface=pppoe-digi protocol=tcp to-addresses=192.168.5.33 to-ports=57030-57039
/ip firewall nat add action=dst-nat chain=dstnat dst-port=57030-57039 in-interface=pppoe-digi protocol=udp to-addresses=192.168.9.33 to-ports=57030-57039
/ip firewall nat add action=dst-nat chain=dstnat dst-port=9002 in-interface=pppoe-digi protocol=tcp to-addresses=192.168.5.9 to-ports=9002
Természetesen ezeket a beállításokat kényelmesen elvégezhetjük a winbox menüjében is.

VPN azaz Virtual Private Network, magyarul pedig virtuális magánhálózat. Ok, mi is ez, és miért jó nekünk ha beállítjuk? Nos arról van szó, hogy két internetre is csatlakozó hálózat (vagy egy hálózat és egy számítógép) között létrehozunk egy titkosított alagutat, az interneten keresztül. Ezen az alagúton keresztül a két hálózat biztonságosan összekapcsolható, megoszthatnak ill. használhatnak közös erõforrásokat. Tipikus példa munkahelyi hálózat elérése az otthoni számítógéprõl. Ezt a lehetõséget már a Windows 2000-be is beépítették, és manapság gyakorlatilag az összes PC-s operációs rendszer, okos/mobil telefonok, és tabletek operációsrendszere is támogatja. VPN használatával távolról és biztonságosan elérhetjük az otthoni hálózatunkat, úgy hogy nem kell portokat kinyitnunk a routeren, mert amikor csatlakozunk a VPN-hez akkor a számítógépünk a helyi LAN része lesz. Elérhetjük az otthoni IP kamerát, nyomtatót, NAS-t. Akkor is hasznát vehetjük, ha egy oplyan weboldalt vagy szolgûáltatást akarunk használni az interneten, ami a jelenlegi tartózkodási helyünkön nem érhetõ el, az otthoni internet kapcsolaton keresztül viszont igen. Amikor a VPN kapcsolat aktív, akkor az internetet is az otthoni hálózaton keresztül érjük el, és minden internetes oldal, vagy szolgáltatás az othoni internet-elérésünk IP címét látja. Olyankor is hasznos lehet a VPN, ha egy nyilvános, akár jelszóval sem védett wifi hálózatra kapcsolódva csatlakozunk az internethez. Ilyenkor egy titkosított VPN kapcsolat segítségével, az otthoni hálózatunkon keresztül akár a bankunk weblapján is intézhetjük az ügyeinket, anélkül hogy a nyílt wifi hálózatot kihasználva lehallgatnának és megszereznék az adatainkat. Nem szép dolog, de akár a munkhelyünkön hatályos szûréseket is megkerülhetjük VPN használatával (pl. van ahol tiltják a facebook, vagy mondjuk a pornóoldalak elérését). Persze ezt senkinek sem ajánlom, mert esetleg valamilyen retorzió érheti emiatt (jogosan). De ezen felül az oldal olvasójának fantáziájára bízom, hogy ez mi mindenre lehet jó még. Wikipédia - VPN Természetesen azért mint minden titkosítás, ez sem ad 100%-os védelmet, kellõ erõforrás ráfordításával bizonyára minden feltörhetõ, ezért ezzel nem árt tisztában lenni. Azonban ilyen erõforrásai egy átlag hackernek valószínûleg nincsenek, akinek meg vannak, az nem ami adatinkra kíváncsi.

A mikrotik routerunk többféle VPN protokollt ismer és kezel, tud VPN szerver és VPN kliensként is mûködni, akár egyszerre, és több alagúton keresztül is. A legkönnyebb a PPTP VPN, és az L2TP VPN beállítása. Elõször nézzük, hogy állíthatjuk be PPTP VPN szervernek a mikrotik routerünket.
Szükség lesz egy helyi IP tartományra a VPN kapcsolatok számára (errõl korábban már tettem be képernyõ képet):
/ip pool add name=vpn-pool ranges=192.168.12.2-192.168.12.10
Létrehozunk egy profilt:
/ppp profile add name=gabor use-encryption=required only-one=no change-tcp-mss=yes local-address=192.168.12.1 remote-address=vpn-pool
Ezután már csak a felhasználónév és jelszó párost kell megadni (a fenti képernyõ kép szerinti secret fület kiválasztva), vagy paracssorból:
/ppp secret add name=pptp_vpn_felhaszaloneve password=pptp_vpn_jelszava profile=gabor
Ha nem adjuk meg hogy melyik szolgáltatáshoz adtuk meg a név/jelszó párost, akkor késõbb ugyanezt használhatjuk az L2TP VPN-nél is.
Már csak annyi a dolgunk, hogy bekapcsoljuk a PPTP VPN szervert:
/interface pptp-server server set default-profile=gabor enabled=yes max-mru=1460 max-mtu=1460
Amennyiben korábban már bekapocsltuk az /IP cloud menüpontban a DynDNS-t, akkor az ott szereplõ néven is lehet kapcsolódni a routerünkhöz, és a VPN kapcsolaton keresztül elérhetjük az otthoni helyi hálózatunkat. Ha azt szeretnénk, hogy ezen a kapcsolaton keresztül, az interbnet is elérhetõ legyen, tehát, hogy a VPN-re csatlakozó kliens a mi IP címünkön keresztül is el tudja érni az internetet, a VPN korábban felvett címtartománya számára is be kell állítani a címfordítást:
/ip firewall nat add action=masquerade chain=srcnat comment=VPN src-address=192.168.12.0/24

Sokat gondolkoztam azon, hogyan lehetne a VPN kapcsolat biztonságát fokozni. Pl. hogy egy hacker ne tudja különbözõ belépési jelszavakat próbálgatva akár automatizált módszerrel, napokon-heteken keresztül (brute-force attack) feltörni a VPN-t használva a hálózatunkat. Olyan megoldásra gondoltam, hogy a csatlakozás kezdetétõl mondjuk csak 90 másodperc legyen a megfelelõ jelszóval belépni, ha ez alatt az idõ alatt nem sikerül a kliensnek a megfelelõ jelszóval belépnie, akkor a tûzfal feketelistára teszi az IP címét, és egy kellõen hosszú ideig nem lesz lehetõsége sem csatlakozni.

Nézzük mire jutottam (akinek jobb ötlete van ennél, szóljon!). A PPTP VPN a 1723-as TCP portot használja. A tûzfalban létrehozok két címlistát, nevezzük az egyiket "vpnlogin"-nak a másikat "vpn1"-nek. Amikor a TCP 1723-as portra érkezik egy csomag akkor:
- 1. tûzfal-szabály felteszi a forrás IP-t a vpnlogin listára 90 másodpercre, ha nincs rajta a vpn1 listán
- 2. tûzfal-szabály felteszi a forrás IP-t a vpn1 listára 1 órára, ha nincs rajta a vpn1 listán
- 3. tûzfal-szabály felteszi a forrás IP-t a feketelistára 6 órára, ha nincs rajta a vpnlogin listán. (a feketelistán levõk pedig a korábban felvett szabályok alapján blokkolva lesznek)
Hogy is mûködik ez ? Amikor megérkezik az elsõ csomag, akkor a címe még egyik listán sincs rajta, tehát az IP felkerül a elõször vpnlogin majd a vpn1 listára is. Mivel az IP a vpnlogin listán rajta van, így nem kerül fel a feketelistára. Amikor letellik a 90 másodperc, akkor a vpnlogin listáról lekerül az IP, de a vpn1 listán még fent van. A következõ, azonos IP-jû csomag forráscíme nem tud újra felkerülni a vpnlogin listára, mert még közel 1 órányi ideig fent van a vpn1 listán. Mivel az IP nincs rajta a vpnlogin listán ezért felkerül a feketelistára. Viszont amennyiben az elsõ 90 másodpercben létrejön a VPN kapcsolat, akkor lefut egy kis script (amit nekem kellett megírni) ez annyit csinál, hogy a vpnlogin, és a vpn1 listában, az élõ VPN kapcsolatokhoz tartozó IP címek timeoutját másfél órára cseréli. Így az élõ VPN kapcsolatok címei ennyi ideig nem kerülnek fel a feketelistára. Azért, hogy az élõ kapcsolatok másfél óra múlva se szakadjanak meg, ezt a scriptet óránként egyszer lefuttatja a router, így az élõ kapcsolatok idõlimitje mindíg meghosszabítódik. A már nem élõ kapcsolatok IP címe pedig legkésõbb 1:30 múlva lekerül a listákról.


Folyt. köv. a tûzfal szabályokkal és a script-el. Addig is, aki tud jobb megoldást, írja meg nekem legyen szives.
Tehát a 3db tûzfal szabály:
/ip firewall filter
add action=add-src-to-address-list address-list=vpnlogin address-list-timeout=1m30s chain=input comment=\
    "PPTP - 1,5 min - vpnlogin list" connection-state=new dst-port=1723 protocol=tcp src-address-list=!vpn1
add action=add-src-to-address-list address-list=vpn1 address-list-timeout=59m chain=input comment=\
    "PPTP - 59min - vpn1 list" connection-state=new dst-port=1723 protocol=tcp src-address-list=!vpn1
add action=add-src-to-address-list address-list=blacklist address-list-timeout=5h59m chain=input comment=\
    "PPTP - 5:59 - blakcklist" connection-state=new dst-port=1723 protocol=tcp src-address-list=!vpnlogin
Most pedig jöjjön az említett script. Ezt a System/Script menüben vegyük fel. A scriptet két helyrõl kell indítani, egyrészt a PPP/Profiles menüben az "On Up" részhetz adjuk hozzá, hogy minden új VPN kapcsolat esetén lefusson, illetve a System/Scheduler menüben is állítsuk be, hogy óránkét lefusson.
#az élõ VPN kapcsolatok engedélyét hosszabbítja meg a tuzfal vpnlogin listában
:delay 2
foreach i in=[ppp active find ] do={
  local ipaddr [ppp active get value-name=caller $i];
  /ip firewall address-list set [find address=$ipaddr list="vpnlogin"] timeout=01:30:01
  /ip firewall address-list set [find address=$ipaddr list="vpn1"] timeout=01:30:00
}
Ennyi elég is ahhoz, hogy a PPTP VPN kapcsolódás biztonságát egy kicsit növeljük. A fenti script mûködik L2TP+ipsec VPN esetében is, de mivel az a PPTP-tõl eltérõen nem TCP hanem UDP protokollt használ, így a 1701, 500, és a 4500 -as portokra is fel kell venni a megfelelõ tûzfalszabályokat. Íme:
/ip firewall filter
add action=add-src-to-address-list address-list=vpnlogin address-list-timeout=1m30s chain=input comment=\
    "L2TP - 1,5 min - vpnlogin list" dst-port=500,1701,4500 protocol=udp src-address-list=!vpn1
add action=add-src-to-address-list address-list=vpn1 address-list-timeout=59m chain=input comment=\
    "L2TP - 59min - vpn1 list" dst-port=500,1701,4500 protocol=udp src-address-list=!vpn1
add action=add-src-to-address-list address-list=blacklist address-list-timeout=5h59m chain=input comment=\
    "L2TP - 5:59 - blakcklist" dst-port=500,1701,4500 protocol=udp src-address-list=!vpnlogin

Jöjjön az L2TP+ipsec beálllítása is. A VPN-pool, /ppp profile , és a /ppp secret beálításokat már felvettük a PPTP VPN esetében, ezeket nem kell újra felvenni, egy-az egyben jó lesz az L2TP-hez is. Mindössze egyetlen további beállításra lesz szükség. Meg kell adni egy ipsec megosztott kulcsot (gyakorlatilag vehetjük úgy, hogy még egy jelszó), és be kell kapcsolni az L2TP szervert:
/interface l2tp-server server set authentication=mschap1,mschap2 default-profile=gabor enabled=yes ipsec-secret=ideird_az_ipsec_kulcsot use-ipsec=required
Ezek után sejthetõ, hogy ha mondjuk SSPT VPN-t szeretnénk, akkor azt is elég bekapcsolni a fenti megfelelõ menüpontban. Az SSTP VPN-t kipróbáltam két mikrotik között, mert az elõbbiekkel szemben megvan az az elõnye, hogy szabadon állítható az a port amelyen a kommunikáció zajlik, így egy közbensõ tûzfallal egyszerûen nem blokkolható. Ez így is van, de egyrészt az elõzõ két VPN megoldásnál sokkal lassúbb volt, másrészt win7 operációs rendszerrel nem sikerült kapcsolódni hozzá, míg a PPTP-hez és az L2TP+ipsec VPN-hez igen.
Az L2TP-t használhatjuk ipsec nélkül is (bár ezesetben windows klienssel nem tudunk rá kapcsolódni), ugyanakkor több internet oldalon olvastam, hogy ilyenkor gyakorlatilag titkosítatlanul mennek át az adatok. Ha olyan adatokról van szó, ahol ez nem probléma, akkor így elviekben kisebb processzorterhelés mellett oldható meg a feladat. Annak idején kipróbáltam, mikrotik-mikrotik között az L2TP-t (ipsec nélkül) majd a státuszt megnézve azt láttam, hogy ilyenkor is használt egy 128bites titkosítást, tehát azért mégsem titkosítás nélkül, és pláne nem bárki számára olvasható formában mennek át az adatok.




Késõbb folytatom még néhány érdekes dologgal...

Skori
@2018.aug.
A tévedés, elgépelés, stb, jogát (is) fenntartom :)