Ez az útmutató bemutatja, hogyan konfigurálhatja és hogyan használhatja az iptables szabályokat egy Ubuntu rendszeren a hálózat biztonsága érdekében. Függetlenül attól, hogy kezdő Linux-felhasználó vagy tapasztalt rendszergazda, ebből az útmutatóból egy vagy olyan módon megtudhat valami hasznosat az iptables-ről.
Az Iptables előre telepítve van az Ubuntu és a legtöbb Debian alapú disztribúción. Az Ubuntu csomagolja a GUFW tűzfalat is, amely grafikus alternatíva az iptables használatához használható.
JEGYZET: Az iptables használatához és konfigurálásához sudo jogosultságokra lesz szükség a rendszeren. A következő oktatóanyagban többet megtudhat a sudo-ról.
Most, hogy tudod, mi az Iptables, merüljünk bele!
Az iptables használata az IPv4 forgalom kezeléséhez?
Az Iptables használatához az IPv4 hálózat- és forgalomkezeléshez meg kell ismernie a következőket:
Az Iptables parancs
Az Iptables számos lehetőséget kínál, amelyek lehetővé teszik az iptables-szabályok testreszabását és hangolását. Beszéljük meg ezeket a paramétereket, és nézzük meg, mit csinálnak.
JEGYZET: Konfigurálhat olyan szabályokat, amelyek egy adott részhalmazot kezelnek, az úgynevezett iptables láncokat.
Iptables paraméterek
Mielőtt elkezdenénk létrehozni és konfigurálni az iptables szabályokat, először ismerjük meg az iptables alapjait, például az általános szintaxist és az alapértelmezett argumentumokat.
Vegye figyelembe az alábbi parancsot:
sudo iptables -I BEMENET -s 192.168.0.24 -j DROPA fenti parancs megadja az iptables számára, hogy hozzon létre szabályt a láncban. A szabály eldobja az összes csomagot a 192-es IP-címről.168.0.24.
Vizsgáljuk meg a parancsot soronként, hogy jobban megértsük.
- Az első iptables parancs meghívja az iptables parancssori segédprogramot.
- A következő a -I argumentum a beszúráshoz. Az insertion argumentum hozzáad egy szabályt az iptables lánc elejére, és így magasabb prioritást kap. Szabály hozzáadásához a lánc meghatározott számához használja az -I argumentumot, majd azt a számot, amelyhez a szabályt rendelni kell.
- Az -s argumentum segít megadni a forrást. Ezért használjuk az -s argumentumot, amelyet az IP-cím követ.
- Az iptables -j paraméter megadja az ugrást egy adott célra. Ez az opció állítja be azt a műveletet, amelyet az Iptables elvégez, ha van egy megfelelő csomag. Az Iptables alapértelmezés szerint négy fő célpontot kínál, ezek: ACCEPT, DROP, LOG és REJECT.
Az Iptables olyan paraméterek széles választékát kínálja, amelyekkel különböző szabályokat konfigurálhat. Az iptables szabályok konfigurálásához használható különféle paraméterek a következők:
Iptables szabály paraméter | Leírás |
---|---|
-s -forrás | Adja meg a forrást, amely lehet cím, hosztnév vagy hálózati név. |
-p -protokoll | Megadja a csatlakozási protokollt; például TCP, UDP stb. |
-d -célzás | Megadja a rendeltetési helyet, amely lehet cím, hálózatnév vagy hosztnév. |
-j -ugrás | Beállítja az iptables által végrehajtandó műveletet, miután megtalálta a csomagot. |
-o -out-interfész | Beállítja azt az interfészt, amelyen keresztül az iptable elküldi a csomagot. |
-i -interfészen | Beállítja a hálózati csomagok létrehozásához használt interfészt. |
-c -set-számlálók | Lehetővé teszi az adminisztrátor számára, hogy a megadott bájt- és csomagszámlálókat beállítsa. |
-g -goto lánc | A paraméter megadja, hogy a feldolgozást a felhasználó által beállított láncban kell folytatni a visszatérés után. |
-f -töredék | Megadja az iptables-nek, hogy a szabályt csak a töredezett csomagok második és következő töredékeire alkalmazza. |
Iptables opciók
Az iptables parancs sokféle lehetőséget támogat. Néhány gyakori:
választási lehetőség | Leírás |
---|---|
-A -append | Hozzáad egy szabályt egy megadott lánc végéhez |
-D -delete | Eltávolít egy szabályt a megadott láncból |
-F -öblítés | Minden szabályt eltávolít, egyenként |
-L-lista | Megmutatja a megadott lánc összes szabályát |
-Én -illesztem be | Beilleszt egy szabályt a megadott láncba (számként továbbítva, ha nincs megadva szám; a szabály a tetején kerül hozzáadásra) |
-C -ellenőrzés | Szabályegyeztetés lekérdezése; követelmény egy meghatározott szabályban |
-v -verbose | További részleteket jelenít meg, ha az -L paraméterrel együtt használjuk |
-N -új lánc | Új, felhasználó által definiált láncot ad hozzá |
-X -delete-chain | Eltávolít egy adott felhasználó által definiált láncot |
Iptables táblázatok
A Linux kernel alapértelmezett táblákkal rendelkezik, amelyek egy sor kapcsolódó szabályt tartalmaznak. Ezek az alapértelmezett táblák tartalmazzák az alapértelmezett láncok készletét, de a felhasználók testre szabhatják a szabályokat a felhasználó által definiált szabályok hozzáadásával.
JEGYZET: Az alapértelmezett táblák nagymértékben függenek a kernel konfigurációjától és a telepített moduloktól.
Itt vannak az alapértelmezett iptables táblák:
1: A szűrőtáblák
A szűrőtábla egy alapértelmezett tábla, amely a hálózati csomagszűréshez használt láncokat tartalmazza. A táblázat alapértelmezett láncai közül néhány a következőket tartalmazza:
Lánc | Leírás |
---|---|
Bemenet | Az Iptables ezt a láncot használja a rendszerbe érkező bármilyen csomaghoz, azaz.e., a helyi hálózati aljzatokba kerülő csomagok. |
Kimenet | Az Iptables a kimeneti láncot használja a helyileg generált csomagokhoz, azaz.e., csomagok mennek ki a rendszerből. |
Előre | Ezt a láncot használják az Iptables a rendszeren keresztül továbbított vagy továbbított csomagokhoz. |
2: A NAT táblázatok
A NAT vagy a hálózati címtábla egy olyan útválasztó eszköz, amelyet a hálózati csomag forrás- és cél-címeinek módosítására használnak. A NAT tábla fő célja két privát címtartományú hálózat összekapcsolása a nyilvános hálózattal.
A NAT-t úgy fejlesztették ki, hogy támogassa a valódi IP-címek maszkolását, lehetővé téve a privát IP-címek terjedését a külső hálózat elérésétől. Ez segít megvédeni a belső hálózatok részleteit a nyilvános hálózatokban.
A NAT tábla akkor kerül alkalmazásra, amikor egy csomag új kapcsolatot indít.
Az Iptables rendelkezik egy alapértelmezett táblázattal a NAT címzéséhez. Ez a táblázat három fő láncot tartalmaz:
Lánc | Leírás |
---|---|
PREROUTING | Lehetővé teszi a csomaginformációk módosítását, mielőtt megérkeznének a bejövő csomagokhoz használt INPUT láncba |
KIMENET | Helyben létrehozott csomagok számára van fenntartva, i.e., mielőtt a hálózati útválasztás megtörténne |
POSTROUTING | Lehetővé teszi az OUTPUT láncból kilépő kimenő csomagok módosítását |
Az alábbi ábra ennek a folyamatnak a magas szintű áttekintését mutatja.
Az alábbi paranccsal megtekintheti a NAT útválasztási tábláit.
iptables -t nat -n -v -L3: A csengőasztalok
A mangle táblázatot elsősorban a csomagok speciális módosítására használják. Egyszerűbben fogalmazva, egy hálózati csomag IP-fejlécének módosítására szolgál. A csomagok módosítása magában foglalhatja a csomag TTL-értékének megváltoztatását, az érvényes hálózati komló megváltoztatását egy csomag számára stb.
A táblázat a következő alapértelmezett láncokat tartalmazza:
Lánc | Leírás |
---|---|
PREROUTING | A bejövő csomagok számára fenntartva |
POSTROUTING | Kimenő csomagokhoz használják |
BEMENET | Közvetlenül a szerverre érkező csomagok esetén használatos |
KIMENET | Helyi csomagokhoz használják |
Előre | A rendszeren keresztül továbbított csomagok számára van fenntartva |
4: A nyers táblázatok
A nyers tábla fő célja a csomagok kivételeinek konfigurálása, amelyeket nem a nyomkövető rendszer kezel. A nyers tábla NOTRACK jelölést állít be a csomagokra, ami arra készteti a conntrack szolgáltatást, hogy figyelmen kívül hagyja a csomagot.
A Conntrack egy Linux kernel hálózati szolgáltatás, amely lehetővé teszi a Linux kernelnek az összes hálózati kapcsolat nyomon követését, lehetővé téve a kernel számára a hálózati folyamatot alkotó csomagok azonosítását.
A nyers asztalnak két fő lánca van:
Lánc | Leírás |
---|---|
PREROUTING | A hálózati interfészek által fogadott csomagok számára van fenntartva |
KIMENET | Helyi folyamatok által kezdeményezett csomagok számára van fenntartva |
5: A biztonsági táblázat
Ennek a táblának az elsődleges célja a belső biztonsági javítás (Linux) (SELinux) biztonsági mechanizmusának beállítása, amely megjelöli a csomagokat. A biztonsági jel kapcsolatonként vagy csomagonként alkalmazható.
Kötelező hozzáférés-szabályokra használják, és ez a második táblázat, amelyet a szűrőtábla után érnek el. A következő alapértelmezett láncokat kínálja:
Lánc | Leírás |
---|---|
BEMENET | Foglalva a rendszerbe érkező csomagok számára |
KIMENET | Helyileg létrehozott csomagokhoz használják |
ELŐRE | A rendszeren keresztül továbbított csomagokhoz használják |
Miután megnézte az alapértelmezett Iptables programot, menjünk tovább egy lépéssel, és beszéljük meg, hogyan kell működni az iptables szabályokkal.
Az iptables szabályok használata?
Az Iptables szabályait növekvő sorrendben alkalmazzák. Ez azt jelenti, hogy először egy adott halmaz első szabályát kell alkalmazni, majd a második, majd a harmadik és így tovább az utolsó szabályig.
E funkció miatt az iptables megakadályozza, hogy szabályokat adjon hozzá egy halmazba az -A paraméter használatával; az -I karaktert kell használnia, amelyet a szám követ, vagy ki kell ürítenie a lista tetejére való felvételhez.
Iptable-k megjelenítése
Az iptables megtekintéséhez használja az iptables -L -v IPv4 és ip6tables parancsot -L -v IPv6 parancsot.
Szabályok beszúrása
A szabályok halmazba történő beszúrásához a pontos sorrendben kell elhelyeznie őket, tiszteletben tartva az ugyanazon lánc által alkalmazott szabályokat. Az iptables-szabályok listáját a fent leírt paranccsal tekintheti meg:
sudo iptables -L -vPéldául egy szabály beillesztéséhez, amely TCP-n keresztül engedélyezi a bejövő kapcsolatokat a 9001-es portra, meg kell adnunk a szabály számát az INPUT láncnak, amely betartja a web forgalmi szabályait.
sudo iptables -I BEMENET 1 -p TCP --port 9001 -m állapot --állapot ÚJ -j ELFOGADÁSMiután megnézte az aktuális iptables-t, látnia kell az új szabályt a készletben.
sudo iptables -L -v
Szabályok cseréje
A cserefunkció a beszúráshoz hasonlóan működik, azonban az iptables -R parancsot használja. Például a fenti szabály módosításához és a 9001-es port megtagadásához állítva:
sudo iptables -R INPUT 1 -p TCP --port 9001 -m állapot --állapot ÚJ -j REJECTSzabály törlése
Egy szabály törléséhez átadjuk a szabály számát. Például a fenti szabály törléséhez megadhatjuk a következőket:
sudo iptables -D INPUT 1A legtöbb Linux disztribúcióban az iptables üres sem az IPv4, sem az IPv6 esetében. Ezért, ha még nem adott hozzá új szabályt, akkor az alábbihoz hasonló kimenetet kap. Ez kockázatos, mert azt jelenti, hogy a rendszer engedélyezi az összes bejövő, kimenő és irányított forgalmat.
Vizsgáljuk meg az iptables konfigurálását:
Az iptables konfigurálása?
Az iptables-szabályok számos módon konfigurálhatók. Ez a szakasz példákkal mutatja be, hogyan állíthat be szabályokat IP-címek és portok használatával.
A forgalom blokkolása és engedélyezése kikötők által
Egy adott port segítségével blokkolhatja vagy engedélyezheti az összes forgalmat a hálózati interfészen. Tekintsük a következő példákat:
sudo iptables -A BEMENET -j ACCEPT -p TCP - 1001-es célport -i wlan0A fenti parancsok lehetővé teszik a forgalmat az 1001-es porton a TCP-n a wlan0 interfészen.
sudo iptables -A BEMENET -j DROP -p TCP - 1001-es célport -i wlan0Ez a parancs a fenti paranccsal ellentétesen cselekszik, mivel blokkolja az összes forgalmat a wlan0 1001-es portján.
Itt van a parancs alapos vizsgálata:
- Az első argumentum (-A) új szabályt ad a táblázatlánc végén.
- Az INPUT argumentum hozzáadja a megadott szabályt a táblához.
- A DROP argumentum az elvégzendő műveletet ACCEPT és DROP formában állítja be. Ez azt jelenti, hogy ha egy csomag egyeztetésre kerül, eldobódik.
- -p meghatározza a protokollt, mint a TCP, és lehetővé teszi a többi protokoll forgalmának áthaladását.
- -A cél-port állítja be a 1001-es portnak szánt összes forgalom elfogadásának vagy elvetésének szabályát.
- -én
megmondja az iptables-nek, hogy alkalmazza a szabályt a wlan0 felületen érkező forgalomra.
JEGYZET: Az Iptable nem érti a hálózati interfész álneveit. Így egynél több virtuális felülettel rendelkező rendszerben manuálisan és kifejezetten meg kell határoznia a célcímet.
Például:
sudo iptables -A BEMENET -j DROP -p TCP - 1001-es célport -i wlan0 -d 192.168.0.24IP-címek engedélyezőlistára tétele és feketelistázása
Az iptables segítségével tűzfalszabályokat hozhat létre. Az egyik példa az összes forgalom leállítása és a hálózati forgalom engedélyezése csak explicit IP-címekről.
Példa:
iptables -A BEMENET -m állapot - állapot LÉTREHOZOTT, KAPCSOLÓDÓ -j ACCEPTiptables -A BEMENET -i lo -m megjegyzés - megjegyzés "Visszacsatolás engedélyezése" -j ACCEPT
iptables -A BEMENET -p icmp -m megjegyzés - megjegyzés “Engedje a Ping várt működését” -j
ELFOGAD
iptables -A BEMENET -s 192.168.0.1/24 -j ELFOGADÁSiptables -A BEMENET -s 192.168.0.0 -j ELFOGADÁS
iptables -P INPUT DROP
iptables -P FORWARD DROP
Az első sor olyan szabályt állít be, amely engedélyezi az összes forrás IP-címet a 192-ben.168.0.1/24 alhálózat. Használhat CIDR-t vagy egyedi IP-címeket is. A következő parancsban azt a szabályt állítottuk be, hogy az összes forgalmat engedélyezze a meglévő kapcsolatokhoz. Az utolsó parancsokban beállítottuk az INPUT és a FORWARD házirendjét, hogy az összeset eldobjuk.
Az iptables használata az IPv6-on
Az Iptables parancs csak IPv4-en működik. Az iptables IPv6-on történő használatához az ip6tables parancsot kell használnia. Az Ip6tables a nyers, a filter, a security és a mangle táblákat használja. Az ip6tables általános szintaxisa hasonló az iptables-hez, és támogatja az egyező iptables-opciókat is, például a függeléket, a törlést stb.
Fontolja meg az ip6tables kézikönyv oldalainak használatát.
Példa az iptables hálózatkészlet-szabálykészleteire
A megfelelő tűzfalszabályok létrehozása elsősorban a rendszeren futó szolgáltatástól és a használt portoktól függ. Itt van azonban néhány alapvető hálózati konfigurációs szabály, amelyet a rendszer biztonsága érdekében használhat:
1: Engedélyezze a loopback interfész forgalmát, és utasítsa el az összes más interfészről érkező loopbacket
iptables -A INPUT -i lo -j ACCEPT (Használhatja az ip6table-eket is)iptables -BEMENET ! -én lo -s 127.0.0.0 -j REJECT (ip6táblák is alkalmazhatók)
2: Elutasít minden ping kérést
iptables -A BEMENET -p icmp -m állapot --állapot ÚJ --icmp típusú 8 -j REJECT3: Engedélyezze az SSH-kapcsolatokat
iptables -A BEMENET -p tcp --port 22 -m állapot --állapot ÚJ -j ACCEPTEzek példaparancsok, amelyekkel biztonságossá teheti a rendszerét. A konfiguráció azonban nagymértékben függ attól, hogy mit vagy kit szeretne elérni a különféle szolgáltatásokhoz.
VIGYÁZAT: Ha teljesen letiltja az IPv6-ot, győződjön meg arról, hogy törli a sort, mert ez lelassítja a frissítési folyamatot:
elsőbbség :: ffff: 0: 0/96 100 található az / etc / gai fájlban.konf .
Ennek oka, hogy az APT csomagkezelő az apt-get frissítés miatt feloldja a tükörtartományt az IPv6-ban.
Az iptables-szabályok telepítése?
Az iptables Ubuntu vagy más Debian-alapú rendszerek telepítéséhez először hozzon létre két fájlt (ip4 és ip6) a megfelelő IP-címükhöz.
Bármelyik fájlban adja hozzá azokat a szabályokat, amelyeket érvényesíteni kíván a megfelelő fájljaikban - IPv4-szabályokat az ip4-fájlba, az IPv6-szabályokat pedig az ip6-fájlba.
Ezután importálnunk kell a szabályokat a következő paranccsal:
sudo iptables-restore < /tmp/ip4 (replace filename for IPv6)Ezután a következő paranccsal ellenőrizheti, hogy a szabályok érvényesek-e:
sudo iptables -L -vGyors iptables-perzisztens útmutató
Az Ubuntu és a gyakori Debian-alapú disztribúciók egy iptables-persistent csomagot tartalmaznak, amely lehetővé teszi a tűzfalszabályok egyszerű alkalmazását újraindításkor. A csomag olyan fájlokat tartalmaz, amelyekkel szabályokat állíthat be az IPv4 vagy az IPv6 számára, és indításkor automatikusan alkalmazhatók.
Tűzfalszabályokat használhat UFW vagy GUFW használatával is. Az UFW használatának megismeréséhez vegye figyelembe a következő oktatóanyagot.
Az iptables-persistent telepítése?
Győződjön meg arról, hogy az iptables-persistent telepítve van a rendszerére. A dpkg segítségével ellenőrizze, hogy telepítve van-e a csomag.
Ha nem, használja a következő parancsot:
sudo apt-get install iptables-persistent
Kétszer kéri, hogy mentse a jelenlegi IPv4 és IPv6 szabályokat. Kattintson az Igen gombra mindkét szabály mentéséhez.
Kattintson az igen gombra az IPv6 mentéséhez.
A telepítés befejezése után ellenőrizze, hogy rendelkezik-e az iptables alkönyvtárral, az alábbi képen látható módon.
Most már használhatja a szabályokat.v4 és szabályok.v6 az iptables szabályok hozzáadásához, és az iptables-persistent automatikusan alkalmazza őket. A fájlok egyszerű szöveges fájlok, amelyeket könnyen szerkeszthet bármilyen tetszőleges szövegszerkesztővel.
Következtetés
Ebben az oktatóanyagban az iptables alapjait ismertettük. Az iptables, az alapvető parancsok, az alapértelmezett iptables táblák és a paraméterek használatával kezdve.
A tanultak alapján képesnek kell lennie arra, hogy az iptables segítségével tűzfalszabályokat hozzon létre, amelyek elősegítik a rendszer biztonságát.