Az illetéktelen hozzáférés és a szerverek feltörése komoly fenyegetés, ezért a hálózati biztonság részeként falat kell megvalósítanod. Az Iptables szabályok használata alapvető tudás, amely csökkenti a kockázatokat az Linux rendszereken. Ez az útmutató megismertet a tűzfal alapfogalmaival, például az iptables szabályok megjelenítésével és eltávolításával Ubuntu, amely segít egyszerű parancsok futtatásában. Mielőtt az iptables szabályok listázásáról vagy törlésérről beszélnénk, beszéljünk arról, hogy mik azok az iptables szabályok és miért használjuk őket.
- Mi az Iptables?
- Teljes útmutató az Iptables-hez az Ubuntu-ben
- Hogyan lehet iptables szabályokat eltávolítani?
- Hogyan lehet az összes szabályt kiüríteni, az összes láncot törölni és mindent elfogadni?
- Hogyan állíthatom be az iptables-t az Ubuntu-ben?
- Miben különbözik az iptables a firewalld-től?
- Végső gondolatok: iptables szabályok megjelenítése
- Gyakran Ismételt Kérdések
Mi az Iptables?
Az iptables egy parancssoros tűzfal, amely engedélyezi vagy blokkolja a forgalmat házirend-láncok. Amikor a rendszeren kapcsolatok próbálnak létesülni, az iptables megkeresi a listában a rá illő szabályt, és ezzel megbízható segítséget nyújt a hálózati biztonsághoz. Ha nem talál semmit az adott kapcsolatra, az alapértelmezett műveletre vált.
Az iptables szinte minden esetben előre telepítve van Linux disztribúció. A következő paranccsal frissítheted vagy telepítheted:
sudo apt-get install iptables
Miért használunk Iptables-t?
Parancssoros tűzfalként az iptables lehetővé teszi a rendszergazdáknak a beérkező és kimenő forgalom kezelését konfigurálható táblaszabályok segítségével. Az iptables táblákból állnak, amelyek láncokat tartalmaznak, és ezek a láncok beépített vagy felhasználó által definiált szabályokból állnak.
Ahogy az előző részben említettük, az iptables alapvető szerepet játszik a legtöbb Linux rendszer hálózati biztonságában. Ez a cikk főként az iptables összes szabályának listázásával foglalkozik, olyan fogalmak segítségével, mint az iptables megjelenítése és iptables szabályok törlése.
Pontosabban ez a cikk az iptables alapvető feladatainak egy részét tárgyalja, hogy megmutatja, hogyan kell szabályokat listázni, csomagokat és bájtszámlálókat törölni, iptables szabályt eltávolítani, láncokat kiüríteni, és az összes lánc törlésé valamint az összes forgalom elfogadása.
Teljes útmutató az Iptables-hez az Ubuntu-ben
Az iptables szabályok megjelenítése előtt tartsd szem előtt, hogy Linux szerverrel kell rendelkezned az iptables parancs telepített verzióival. Ezeken a követelményeken kívül lényeges, hogy sudo jogosultságod legyen. A tűzfallal való munka során vigyázz, hogy ne zárj ki magad a szerverről azáltal, hogy blokkolod az SSH forgalmat (port: 22, alapértelmezés szerint). Ha a tűzfal beállításai miatt elveszíted a hozzáférést, lehetséges, hogy egy out-of-band konzolon keresztül kell csatlakoznia a szerverhez a javításhoz.
Olvasd el még: Az SSH port módosítása az Linux-ben | Lépésről lépésre útmutató az SSH porthoz
Szabályok listázása specifikáció alapján
Megtekintheted az aktív iptables szabályaidat táblázatban vagy mint a szabály specifikációinak listája. Szinte mindkét módszer ugyanazokat az információkat más-más formátumban szolgáltatja. Az aktív iptables összes szabályának listázásához specifikáció szerint az iptables parancsot a -S opció:
sudo iptables -S
Ennek az iptables megjelenítési szabályok parancsnak a futtatása után az alábbi kimenethez hasonló eredményt fogsz látni:

Egy adott lánc listázása
Ha az iptables megjelenítésének kimenetét egy adott láncra, például INPUT, OUTPUT vagy TCPszeretnéd korlátozni, akkor közvetlenül a -S opció után megadhatod a lánc nevét. Például az alábbi iptables megjelenítési parancs segít az TCP láncban meghatározni:
sudo iptables -S TCP

Amint korábban említettük, az iptables szabályok megjelenítésének van egy másik módja is: az iptables szabályokat szabálytáblázatként lehet megtekinteni. Nézzük meg ezt a technikát.
Szabályok listázása táblaként
Az iptables szabályok táblázat formájában történő megjelenítésére használt parancs segítségével különféle szabályokat lehet összehasonlítani. A következő iptables parancsot kell futtatnod a -L opció az összes aktív szabály táblázat formájában történő megjelenítéséhez:
sudo iptables -L
Ez a parancs az összes aktuális szabályt láncok szerint rendezve jeleníti meg. Lehetőség van a kimenetet egy adott lánc (INPUT, OUTPUT, TCP stb.) felé korlátozni; ehhez a lánc nevét közvetlenül a -L opcióval kell megadnod. Íme egy példa az iptables szabályok INPUT láncra történő korlátozására:
sudo iptables -L INPUT

A fenti kimenet első sora a lánc nevét (jelen esetben INPUT) és annak alapértelmezett szabályzatát (DROP) mutatja. A következő sor a táblázat egyes oszlopainak fejlécét és a lánc szabályait tartalmazza. Végigmegyünk rajtuk, hogy mindegyiket megismerd:
- Target: Ha egy csomag megfelel a szabálynak, a target meghatározza, hogy mit kell tenni vele. A csomag elfogadható, elutasítható, naplózható, vagy másik lánchoz továbbítható, ahol további szabályokkal összehasonlítható.
- prot: A protokoll (például TCP, udp, ICMP vagy all)
- opt: az IP opciók jelzése (ritkán használt)
- source: a forgalom forrás IP-címe/alhálózata
- destination: a forgalom cél IP-címe/alhálózata
A címke nélküli oszlop egy szabály opcióit sugallja, és a szabálynak az a része, amely az előző oszlopokban nem lett jelezve. Ez az információ bármi lehet, a forrás- és célportok közt a csomag kapcsolati állapotáig.
Olvasd el még: OpenVPN telepítése az VPS rendszerre – OpenVPN kliens beállítása 🔑
Hogyan lehet a csomagszámokat és összesített méretet megjeleníteni?
Az iptables szabályok listázásakor megjeleníthetjük az egyes iptables szabályoknak megfelelő csomagok számát és a csomagok összesített méretét bájtban; ez gyakran segít megérteni, mely szabályok egyeznek a csomagokkal. Ehhez a -L és -v opciót kell használnod együtt a ezt.
Íme egy példa, amelyben ismét az INPUT láncot fogjuk használni a -v opcióval:
sudo iptables -L INPUT -v

Figyelj rá, hogy a listánkon most még két további oszlop található pkts és bytesnevekkel. Megtanultuk az iptables összes szabály megjelenítésének különféle módszereit, és most már itt az ideje megtudni, hogyan lehet nullázni a csomagszámokat és az összesített méretet.
Hogyan lehet a csomagszámokat és összesített méretet alaphelyzetbe állítani?
A -Z opciót kell használnod, ha szeretnéd törölni vagy nullázni a szabályok csomagés byte számlálóit. Ezek a számláló rendszerindítás után is resetelődnek, ami hasznos, ha szeretnéd megtekinteni, hogy a szerver új forgalmat kap-e, amely megfelel a jelenlegi szabályaidnak.
Minden lánc és szabály számlálóit törölheted a -Z opció önmagában:
sudo iptables -Z
paranccsal. Egy adott lánc összes szabályának számlálóját a -Z opcióval és a lánc megadásával tudod eltávolítani. Például az alábbi paranccsal lehet az INPUT lánc számlálóit törölni:
sudo iptables -Z INPUT
Ha egy adott szabály számlálóit szeretnéd nullázni, pontosan meg kell jelölnöd a lánc nevét és a szabály számát. Például az alábbi paranccsal nullázhatod az INPUT lánc első szabályának számlálóit:
sudo iptables -Z INPUT 1
Az iptables összes szabály megjelenítésének parancsainak és a csomagés byte számlálók resetelésének módszereinek ismerete mellett hasznos tudni, hogyan lehet iptables szabályt eltávolítani.
Olvasd el még: PPTP VPN szerver telepítése VPS rendszerre
Hogyan lehet iptables szabályokat eltávolítani?
Több parancs is használható az Iptables szabályok eltávolítására, vagy akár egy lánc összes szabályának törlésére. Az alábbiakban ezeket a módszereket tárgyaljuk.
Szabályok eltávolítása specifikáció alapján
Az iptables szabályok eltávolításának egyik módja a szabály specifikációja. Ez lehetővé teszi az iptables parancs futtatását a -D opció és a szabály specifikáció segítségével. Ha ezzel a technikával szeretne szabályokat eltávolítani, segítségül felhasználhatja a szabályok listájának kimenetét, az iptables -S parancsot.
Például az érvénytelen bejövő csomagokat eldobó szabály (-A INPUT -m conntrack –ctstate INVALID -j DROP) törléséhez futtassa az alábbi parancsot:
sudo iptables -D INPUT -m conntrack --ctstate INVALID -j DROP
Figyelj rá, hogy a -A opciónak a szabály helyzetét jelzi a létrehozás időpontjában, és itt nem szabad szerepelnie.
Szabályok eltávolítása lánc és szám alapján
Az iptables szabályok eltávolításának másik módja a lánc és sorszám alapján történik. Írja be az alábbi parancsot egy szabály sorszámának kiválasztásához, a szabályok listázásához táblázat formátumban, és adja hozzá a –line-numbers opciót:
sudo iptables -L --line-numbers

Ezután minden iptables szabálynak van sorszáma, amelyet a num fejléc jelöl.
Ha tudod, melyik szabályt szeretnéd törölni, és ismered a lánc és sorszámát, akkor az iptables -D parancsot kell használnod a lánc és szabályszám megadásával. Például ha törölni szeretnéd az érvénytelen csomagokat eldobó bemeneti szabályt, láthatod, hogy az INPUT lánc 3. szabálya. Futtasd tehát ezt a parancsot:
sudo iptables -D INPUT 3
Hogyan lehet láncokat kiüríteni?
Van egy mód arra, hogy az Iptables összes szabályát eltávolítsd egy láncból, ezt lánc öblítésenak nevezzük. Az alábbiakban a különféle módszereket tárgyaljuk. Mielőtt továbbmennél, figyelj rá, hogy ne zárd ki magad a szerverről az SSH segítségével, amikor egy drop vagy deny alapértelmezett házirenddel rendelkező láncot mosol ki. Ha ezt teszed, előfordulhat, hogy a konzolon keresztül kell csatlakoznia a hozzáférés helyreállításához.
Egyetlen lánc kiürítése
Egy adott lánc kiürítéséhez, vagy másként fogalmazva, a lánc összes szabályának törléséhez a -F vagy az egyenértékű –flush opció és a kiválasztott lánc neve alapján használható. Tegyük fel, hogy az INPUT lánc összes szabályát szeretnéd eltávolítani. Mit lehet tenni? Nos, egyszerű: futtasd az alábbi parancsot:
sudo iptables -F INPUT
Összes lánc kiürítése
Az összes lánc eltávolításához vagy kiürítéséhez önmagában a -F vagy az ezzel egyenértékű –flush opciót használhatod:
sudo iptables -F
Hogyan lehet az összes szabályt kiüríteni, az összes láncot törölni és mindent elfogadni?
Ezen a ponton leírjuk, hogyan kell az összes tűzfal szabályt, táblázatot és láncot kiüríteni, valamint az összes hálózati forgalmat engedélyezni. Figyelj rá, hogy ez a folyamat gyakorlatilag letiltja a tűzfalat. Ezért csak akkor kövesd ezt a szakaszt, ha szeretnél elölről kezdeni a tűzfal konfigurálásod beállítását.
Először be kell állítanod az egyes beépített láncok alapértelmezett házirendjét az ACCEPT értékre. Ennek elsődleges oka, hogy biztosítsd, hogy nem zárod ki magad a szerverről az SSH segítségével:
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
Ezután ki kell ürítened a nat és mangle táblákat, összes láncot (-F), és töröld az összes nem alapértelmezett láncot (-X) így:
sudo iptables -t nat -F
sudo iptables -t mangle -F
sudo iptables -F
sudo iptables -X
Az előző parancsok futtatása után a tűzfal az összes hálózati forgalmat engedélyezi. Ha most felsorolod a szabályaidat, látni fogod, hogy nincs semmi; csak a három alapértelmezett lánc marad meg, mint az INPUT, FORWARD és OUTPUT lánc.
Hogyan állíthatom be az iptables-t az Ubuntu-ben?
Mint a tűzfal alapvető viselkedésénél, az iptables szabályok az egyes láncok felsorolt sorrendje alapján olvashatók, ami azt jelenti, hogy a szabályokat a helyes sorrendben kell beállítanod. Miután hozzáadod az új szabályokat, azok a szabálylista végéhez kerülnek. Új szabályokat egy adott listahelyzethez adhatsz hozzá az alábbi paranccsal történő beszúrásuk segítségével: iptables -I <index> -command. A <index> az a sorszám, amellyel a szabályt be szeretnéd szúrni ebben a parancsban. Az alábbi paranccsal megtudhatod, mely indexszámot kell megadnod:
sudo iptables -L --line-numbers
Az egyes szabálysorbeli szám a lánc pozícióját jelöli. Ha új szabályt szeretnél egy meglévő szabály fölé illeszteni, az adott szabály indexszámát kell használnod. Például ha a lánc tetejére akarsz új szabályt hozzáadni, az 1-es indexszámmal kell futtatnod a következő parancsot:
sudo iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT
Miben különbözik az iptables a firewalld-től?
Az iptables és a firewalld is praktikus eszközök a tűzfalak kezelésére Linux-rendszereken, kifejezetten csomagszűrésre (statikus szűrésre) tervezve. A csomagszűrés egy tűzfal-stratégia, amellyel a felhasználók szabályozhatják a hálózati hozzáférést a bejövő és kimenő információcsomagok kezelésével. Ezek átpasszolhatók vagy blokkolhatók az előre beállított tűzfal-szabályok alapján, amelyek a csomag forrását, célját, protokollját, portját és IP-címét határozzák meg. Ezek a szabályok nagyon hatékony biztonsági mechanizmust nyújtanak, így az információcsomagok szűrése kiváló védelem a helyi hálózaton kívülre irányított eszközök ellen (Local Area Network).
Fontos megjegyezni, hogy a firewalld eredetileg az iptables kezelésére és könnyebb használatára készült. Most, hogy ismerjük az iptables-t és a firewalld-t, hasonlítsuk össze részletesebben.
iptables vs firewalld: Rendszerkonfiguráció
A firewalld és az iptables eltérő konfigurációkat és alapértelmezett tárolási beállításokat használnak. Az iptables esetén minden módosítás azt jelenti, hogy ki kell üríteni a régi szabályokat és be kell olvasni az újakat, ezért a rendszernek újra kell indulnia. A firewalld használatával azonban a szabályok nem kerülnek újralétrehozásra; helyette az eltéréseket és módosításokat alkalmazza a meglévő szabályokra, így futás közben láthatod a hatásukat.
iptables vs firewalld: Felhasználói felület
A firewalld grafikus felhasználói felületet (GUI) használ. Az iptables viszont parancssoros felületet (CLI) alkalmaz, ami néhány felhasználó számára kihívást jelenthet a Linux-kernel tűzfal szabályainak elérésében, így a firewalld egyszerűbb megoldás. Fontos megjegyezni, hogy az iptables rövidebb válaszidővel rendelkezik, mivel csak rövid parancsokat használsz. Ezen kívül mindkettőnek megvan a saját felhasználási területe, ezért válaszd azt, amellyel jobban dolgozni szeretsz.
Végső gondolatok: iptables szabályok megjelenítése
Az iptables egy nagyon rugalmas tűzfal-segédprogram, amelyet kifejezetten Linux-rendszerekhez készítettek. Nem számít, hogy új Linux-felhasználó vagy tapasztalt rendszergazda vagy; vannak módok, amelyekben az iptables-szabályok hasznosak lehetnek számodra. Ez a cikk alapvetően az iptables-szabályok megjelenítésére és eltávolítására vonatkozó alapvető parancsokat mutat be, célja a Linux-rendszer képességeinek rövid áttekintése. Emellett használhatod a Linux VPS-hosztálási megoldásainkat ahhoz, hogy ebből a fantasztikus operációs rendszerből kihasználd a teljes lehetőséget. A Cloudzy-nál különféle KVM-alapú Linux-csomagokat kínálunk, amelyek többféle felhasználási esetre alkalmasak, mint például webtárhely, webalkalmazás telepítése, vagy kódok fejlesztési, tesztelési és automatizálási környezetének beállítása.
Gyakran Ismételt Kérdések
Hogyan listázhatom az összes Linux iptables szabályt specifikáció szerint?
Ha meg szeretnéd jeleníteni az összes jelenleg aktív iptables-szabályt specifikáció vagy funkció alapján, megteheted az iptables parancs alkalmazásával, követve az -S jelzõopcióval. Figyelj arra, hogy ebben az esetben a sudo kulcsszót használd:
sudo iptables -S
Hogyan törölhetek iptables szabályokat?
Egy adott lánc eltávolításához, amely törli a lánc összes szabályát, az -F vagy --flush opciót és a lánc nevét kell használnod. Tegyük fel, hogy az OUTPUT lánc összes szabályát szeretnénk törölni. Mit kell tenni? Nos, ezt a parancsot kell végrehajtanod:
sudo iptables -F OUTPUT
Hogyan működnek az iptables az Ubuntu-ben?
Az iptables tűzfal összehasonlítja a hálózati forgalmat egy sor szabállyal. Az iptables-szabályok meghatározzák a csomag azon jellemzőit, amelyek megfelelnek a szabálynak, és azt, milyen műveleteket kell végrehajtani, ha a csomagok megfelelnek. Persze, sok lehetőség van annak beállítására, hogy mely csomagok felelnek meg egy adott szabálynak.
Az iptables szabályok azonnal érvénybe lépnek? Miért?
Igen, az iptables-szabályok azonnal életbe lépnek, mert a szkript az INPUT és OUTPUT láncokhoz csatlakozik, és a szabályok hozzáadódnak a lánc végéhez.