Kísérletezzünk!
Kezdő lépésünk legyen a tűzfal szűrő szabályait tovább bővíteni.
Eddig mind az IP / Firewall / Filter, mind az IP / Firewall / NAT alatt egyetlen szabályunk van, így a történet eddig relatív egyszerű. A további csomagszűrő szabály hozzáadása előtt némi magyarázat jön.
A RouterOS jellegét tekintve egy klasszikus SPI tűzfallal rendelkezik. Minden szabályt, amikkel a csomagokat dolgozza fel, adott sorrendben próbálja értelmezni. Minden szabály kap egy sorszámot, és a kisebbtől a nagyobb felé haladva nézi meg, hogy illeszkedik-e rá a feldolgozandó csomag. Amint egyezést talált, a többi szabályt átlépi. Ha egyetlen szabály sem illett a csomagra? Nem alkalmazza rá egyiket sem, cserébe átment a teljes listán.
Ezek a műveletek nem ingyenesek, erőforrásba kerülnek természetesen. Minél rövidebb, átgondoltabb a listánk, annál hamarabb kerülnek feldolgozásra a csomagok, végeredményben pedig annál nagyobb lesz az eszköz áteresztő képessége. Kivételek - mint mindenhol - itt is vannak: például ha valami okból kifolyólag a szabályrendszer bizonyos pontjáig elérkező csomagokat logolni szeretnénk, arra külön szabályt beszúrva, a logolás menete nem akasztja meg a csomag további feldolgozását.
Szemléltetem pillanatokon belül a példa routeren, úgy kevésbé lesz nyers, jobban érthető lesz. A változatosság kedvéért parancssoros módon fogom izgatni a tűzfal szabályokat. Windows alól én a PuTTY klienst használom, de bármilyen SSH / Telnet kliens tökéletesen megfelel a célnak.
6.x ROS verziótól kezdve van egy alap help az elérhető utasításokat illetően, már közvetlenül a belépéskor. Sokan, sokszor mondták már sok mindenre, hogy tényleg annyira egyszerű, mint egy faék. Nem tudom ezek a kijelentések százalékos arányban mennyire voltak igazak, de jelen esetben bátran vállalom: ez ennél egyszerűbb nem is lehetne:
.. egy szinttel fentebb
/ gyökérszintre
? parancs listázás
TAB parancs kiegészítés
Körülbelül ennyi. Tényleg. Amint beléptünk a routerünkbe, máris kezdhetjük püfölni a billentyűzetet.
/ip firewall filter
add action=accept chain=input connection-state=established disabled=no
add action=accept chain=input connection-state=related disabled=no
add action=log chain=input disabled=no log-prefix=FIREWALL
add action=drop chain=input connection-state=invalid disabled=no
add action=drop chain=input disabled=no
Ha már az IP / Firewall / Filters menüben vagyunk, egy print utasítással kérjük le pontosan, hogy milyen szűrők is vannak akkor most aktiválva.
[admin@MikroTik] /ip firewall filter> print
Flags: X - disabled, I - invalid, D - dynamic
0 chain=input action=accept in-interface=LAN-WIFI
1 chain=input action=accept connection-state=established
2 chain=input action=accept connection-state=related
3 chain=input action=log log-prefix="FIREWALL"
4 chain=input action=drop connection-state=invalid
5 chain=input action=drop
0 - A 0. szabályt már az internet eléréséhez beállítottuk. Eredményeképp bármi, ami a LAN-WiFi felől érkezik, szabad utat kap.
1 - Minden csomag, ami nem illett rá a 0. szabályra, ráfut az első szabályra. Itt befelé fogadjuk a már létesített kapcsolat részeként érkező csomagokat.
2 - Abban az esetben, ha az első két szabály nem volt alkalmazható a csomagunkra, de egy már meglévő TCP kapcsolathoz kapcsolódik a csomag, szintén zöld utat kap.
3 - Ami eddig eljutott feldolgozatlan csomag, mostantól megjelenik a logunkban. Miért jó ez nekünk? Minden szabály ami ezt követi, már eldobálja a csomagokat.
4 - Ha a connection tracking alatt nincs bejegyzés a forrásra / célállomásra, automatikusan invalid státuszt kap és eldobjuk.
5 - Az utolsó szabály pedig eldob MINDENT. Csupa nagybetűvel. Minden csomag, ami ideáig elérkezett, számunkra lényegtelen, és kukázzuk.
Térjünk vissza a szabályok sorrendjének kérdéséhez. A próba kedvéért éljünk az alábbi parancs lehetőségével:
move 5 destination=0
Ezzel az utolsó szabályt rakjuk be az első pozícióba, a többi eggyel hátrébb sorolódik automatikusan. Minden csomag ezzel a szabállyal kezdi az ismerkedését a routeren belül. Ami külön válogatás nélkül el is dobja MINDET, kérésünk szerint.
Mivel parancssorból izgatjuk a rendszert, nos, meg is szakadt a kapcsolat. Nincs internet. Nincs webes felület. Pingelni se tudjuk a routert. Egyetlen esélyünk eme badarságot veszteségek nélkül korrigálni, ha a WinBox segítségét kérjük, ami továbbra is képes layer2 szinten elérni az eszközünk, megkerülve ezzel a tűzfalat.
Megkerüljük a tűzfalat? Hát hogy van ez? Pontosabb az a megfogalmazás, hogy a tűzfal már layer3 szinten lép életbe, amikor már TCP/IP szinten folyik a kommunikáció. Fizikai címzést használva hatástalan.
Tallózzuk ki az eszközt WinBoxból, MAC címre kattintva lépjünk be és az IP / Firewall / Filter alatt drag-and-drop jelleggel húzzuk a 0. szabályt a legaljára. A WinBoxból ne lépjünk még ki, de a nagy izgalmakra való tekintettel rakjunk be valami zenét a YouTube-ról, ami immáron megint elérhető. Azután irány vissza a parancssor.
A cikk még nem ért véget, kérlek, lapozz!