SlideShare une entreprise Scribd logo
1  sur  11
Télécharger pour lire hors ligne
NETFILTER
HÁLÓZATBIZTONSÁG LINUX ALAPOKON
5/3/2015RAKOVICS BENEDEK 1
MIT NEVEZÜNK TŰZFALNAK
• Egy hardware vagy szoftver komponens amely hálózati kommunikációt korlátoz végponton és
hálózati végpontok között.
• Egy mechanizmus, amely kikényszerít hálózat biztonsági szabályokat, szabványokat.
• Egy ellenőrzési pont, amelyen a hálózati csomagoknak keresztül kell mennie, amelynek
funkciói az alábbiak lehetnek:
• Integritás: a csomagok integritásának ellenőrzése, belső rendszerek integritásának megőrzése, védelme
• Elérhetőség: rendelkezésre állás biztosítási a rendszer biztonságának megőrzésével, hálózati anomáliák
kiküszöbölése
• Adatvédelem: hálózati és végponti adatszivárgás kiküszöbölése, szabványoknak való megfeleltetés
5/3/2015RAKOVICS BENEDEK 2
MI A NETFILTER
Útválasztó
Helyi UNIX socketek
1
Bejövő Kimenő
2
4
5
Callback (visszahívás) függvények egy sorozata a
hálózati stackben egy kernel (rendszermag)
megtestülésében
• 2.3 verziószám feletti Linux kerneltől egy API-n
keresztül dolgozhatunk vele, a segédprogramot
iptables néven ismerhetitek, előtte ipchains-nek vagy
ipfwadm-nek hívták
• Minden egyes protokoll rendelkezik saját callback
függvénycsomaggal, mely minden hozzá tartozó
csomagnál regisztrálásra kerül
• Egy Linux tűzfal a kernel modulból és hozzá tartozó
segédprogramokból áll (ip_tables, ip_conntrack,
nf_conntrack)
5/3/2015RAKOVICS BENEDEK 3
MIRE HASZNÁLHATÓ A NETFILTER
• Stateful (állapotvizsgálat)* és stateless (állapotvizsgálat nélküli) hálózati csomagszűrésre,
szabályrendszerek létrehozására
• Címfordítások (SNAT) és címálcázás (MASQ) használatára a belső címek átfordítására a publikus
hálózat eléréshez, megosztásához
• Transzparens (átlátható) proxyk (megbízott továbbító) implementálására, ahol az ügyfél gép nem
észleli hogyan és hol kerül kiszolgálásra a kérése (DNAT).
• Átfogó tc (hálózati forgalom vezérlés/formálás) és iproute(2) QoS forgalomvezérlés
bevezetéséhez
* Példa a csomag állapotvizsgálatra, hogy amikor az ügyféltől megjön a (SYN-) ACK válasz akkor
átbillenti a státuszt ESTABLISHED-re (kiépült kapcsolatra).
5/3/2015RAKOVICS BENEDEK 4
HOGYAN HASZNÁLHATJUK
• A Linux rendszereken különböző segédprogram lehetnek segítségünkre a netfilter modul közvetett
használatára és kiegészítésére. Ezek közül a legismertebb és előzőekben már említett iptables.
• Iptables lényegében egy program, mely segítségével konfigurálhatjuk a belső netfilter rendszermag
arhiktektúrát. Lehetőséget ad csomagok szűrésére, kapcsolatok követésére, hálózati címfordítás és címálcázás
megvalósítására.
• Ezen kívül vannak más tűzfal programok, mint az UFW, SmoothWall, Turtle Firewall és
berendezések is, mint például az Endian vagy a SonicWall, de ezek mind az iptablest használják.
• Jellemzően kihangsúlyozva, hogy milyen különleges biztonságot ad, amellett, hogy az absztrakciós szint alá
nem hatolhatunk le, hogy auditáljuk a rendszert. Erre találták ki az ICSA (International Computer Security
Association) tanusítványt, hogy egy független szervezet ellenőrizze a piacra dobott hálózati megoldásokat.
5/3/2015RAKOVICS BENEDEK 5
HOGYAN MŰKÖDIK A NETFILTER
• A hálózati csomagok - tábla típusoktól függően - különböző
láncokra fűződnek fel netfilterben:
• PREROUTING (nf_ip_prerouting)
• Minden bekerülő csomag, amelynek integritása megfelelő. Jellemzően
DNAT kialakításoknál nyúltok bele.
• INPUT (nf_ip_local_in)
• Olyan bejövő csomagok, amelyek helyi folyamatokat érintenek, tehát
helyi socket létesül hozzá
• FORWARD (nf_ip_forward)
• Jellemzően harmadik féltől származó, tehát helyi folyamatot nem
érintő csomagok, melyeket továbbításra kerülnek
• POSTROUTING (nf_ip_post_routing)
• Minden kimenő csomag a netfilterből, jellemzően SNAT és címálcázási
kialakításoknál használjuk ezt a láncot
• OUTPUT (nf_ip_local_out)
• Helyi folyamatoktól eredeztethető (socketelt), távozó hálózati
csomagok, például egy kiszolgálónk válasza
• Visszahívási függvények állapotai avagy visszatérési értékei egyes
csomagoknál, szabályoknál:
• ACCEPT (nf_accept): folytatjuk a csomagra vonatkozóan a lánc
feldolgozását, beengedjük a helyi folyamatokhoz
• DROP (nf_drop): csomag eldobása és láncfűzér megszaktíása,
visszautasításról nem küldünk érestísét, helyi folyamatok nem érinthet
• QUEUE (nf_queue): várakoztatás a felhasználói térben (userspace), ha
nincs fogadó helyi folyamat akkor eldobja a csomagot, nem utasítja
vissza a kapcsolatot
• Vannak olyan státuszok amiket a lánc szabályokon keresztül
közvetlenül nem manipulálhatunk:
• STOLEN (nf_stolen): leáll a lánc feldolgozása
• REPEAT (nf_repeat): feldolgozás újbóli meghívása
5/3/2015RAKOVICS BENEDEK 6
CSOMAGSTÁTUSZOK
• A conntrack (kapcsolatkövető) rendszer szerves része a stateful (állapotkövető) netfilter működésének. Az
egyes csomagok különböző státuszban, különböző okból kerülhetnek be és ki a rendszerünkből. Ezek a
következők lehetnek:
• ESTABLISHED (ip_ct_established)
• A csomag egy már létrejött kapcsolathoz tartozik, az eredeti irányban (input, output vagy esetleg forward)
• RELATED (ip_ct_related)
• A csomag kapcsoltban van egy meglévő connection-nel (létrejött hálózati kapcsolattal) és az eredeti irányban halad
• NEW (ip_ct_new)
• A csomag egy új kapcsolatot próbál kialakítani az eredeti irányban és nem tartozik valamely meglévő kiépült kapcsolathoz
• REPLY (ip_ct_is_reply)
• Ez egy kevert állapot related és established csomagok esetén, ez az ellenkező irányban haladó csomagokra vonatkozik, tehát a
válasza lesz a fent említett csomagtípusnak
5/3/2015RAKOVICS BENEDEK 7
TÁBLÁK
• A szabályokat a feldolgozás jellegétől függően különböző táblákba csoportosítjuk, ezek
meghatározzák az érintett beépített láncokat is.
• FILTER: csomagszűrésre használjuk, ez az alapértelmezett tábla, nem kell hivatkoznunk rá az iptables
használata során
• Elérhető láncok: INPUT (local_in), OUTPUT (local_out), FORWARD
• NAT: ez a címfordítási tábla, erre különálló opcióval hivatkoznunk kell, ez kezeli mind a forrás, mind
pedig a cél címfordításokat és ezen keresztül végezzük a címálcázást is
• Elérhető láncok: OUTPUT, PREROUTING, POSTROUTING
• MANGLE: ez az úgynevezett csomagváltoztató tábla, ez csomagok tartalmának módosítására szolgáló
tábla, ez még az útvonal választás előtt megtörténik
• Elérhető láncok: OUTPUT (utána lép POSTROUTING-ba), PREROUTING (elsődleges belépési pont)
5/3/2015RAKOVICS BENEDEK 8
LÁNC ÁLLAPOTKÖVETÉSRE
• A legelterjedtebb Layer 4 (L4) hálózati rétegben tűzfal típus jelenleg, amely
ellenőrzi a kapcsolatok státuszát és eldobja a szabálytalan csomagokat.
Nézzünk egy pratikus példát szimplán az integritásnak való megfelelésre:
• Iptables –A szabálytalan_csomagok_lánca –p tcp –tcp-flags ACK SYN, ACK –m state –
state NEW –j REJECT –reject-with tcp-reset
• Ebben az esetben azokat a csomagokat kapjuk el, ahol a csomag önmagát kiépülő
kapcsolatnak akarja feltűntetni, ugyanakkor mi a nyilvántartott kapcsolatok alapján tudjuk,
hogy a státusza új. A végén úgy döntünk, hogy nem eldobjuk, hanem visszautasítjuk a
csomagot és küldőnek a TCP RST választ küldünk.
5/3/2015RAKOVICS BENEDEK 9
SZABÁLYOK LÉTREHOZÁSA
• Most, hogy megnéztünk egy gyakorlati példát, nézzük meg hogyan tudunk mi magunk
szabályokat alkotni az egyes integrált táblák beépített láncain.
• Az iptables-ben az egyes szabályoknál meg kell határozni a lánchoz kapcsolódó viszonyát
először (már a táblahivatkozás előtt, melyre –t opcióval hivatkozunk):
• -I a szabály hozzáadása egy megadott helyben a lánchoz, konvenció, hogy az első szabályt gyakran ezzel az
opcióval adják meg
• -A a szabály hozzáfűzése a megadott lánchoz az utolsó helyre
• -L minden szabály listázása az adott láncra vonatkozóan
• -F minden szabály ürítése, de csak a megadott láncból, fontos, hogy ezt táblánként kezeljük
• -N új egyedi lánc létrehozása, nem egyezhet beépített lánc nevével, csak kiterjesztésre alkalmas
• -X egyedi lánc törlése a rendszerből, jellemzően a –F opcióval együtt használják
5/3/2015RAKOVICS BENEDEK 10
EGYEZÉSEK ÉS CÉLOK
• Vannak úgynevezett egyezések, melyek közül egy része moduláris, tehát csak bizonyos kiegészítők aktiválása után tudunk
használni, ezek határozzák meg a szabályunk érvényesülését.
• -p protokoll: megadja, hogy mely protokoll az amit fel akarunk fűzni a láncunkra, ezek lehetnek tcp, udp, icmp stb.
• -s vagy –d: a forrás vagy cél IP címet adja meg, amivel egyeztetni akarunk
• --sport és –dport: ezek a tcp és udp protokolloknál az egyes kapuszámokra vonatkozó egyezéseket ellenőrzi, fontos, hogy itt csak egy
szám adható meg, több szám esetén a multiports modult kell használni
• A kiegészítő modulokat, egyeztetőket külön jelölni kell –m opcióval, ezután adhatjuk meg csak a további opciókat,
argumentumokat. Ezekre nézünk két példát.
• -m limit –limit 30/hour –p icmp –j DROP
• -m state –state NEW, ESTABLISHED –j ACCEPT
• Célokat a korábbi visszahívási függvény állapotoknál már taglaltuk (ACCEPT, DROP, REJECT), ezeket kiegészítjük még a
LOG (naplózás, majd a lánc további feldolgozása) valamint a RETURN (visszatérés a hivatkozó láncra) célértékekkel
5/3/2015RAKOVICS BENEDEK 11

Contenu connexe

Similaire à Netfilter elméleti alapok

Syslog-NG (nem csak) fejlesztőknek
Syslog-NG (nem csak) fejlesztőknekSyslog-NG (nem csak) fejlesztőknek
Syslog-NG (nem csak) fejlesztőknekJános Pásztor
 
Deep reinforcement learning with DonkeyCar
Deep reinforcement learning with DonkeyCarDeep reinforcement learning with DonkeyCar
Deep reinforcement learning with DonkeyCarLeventeDmsa1
 
A PHP 5.4 újdonságai
A PHP 5.4 újdonságaiA PHP 5.4 újdonságai
A PHP 5.4 újdonságaiFerenc Kovács
 
Sa performance vision_hu
Sa performance vision_huSa performance vision_hu
Sa performance vision_huZoltan Cziraky
 
Gazdag Ferenc_IVSZ_KormanyzatiFelho_v2
Gazdag Ferenc_IVSZ_KormanyzatiFelho_v2Gazdag Ferenc_IVSZ_KormanyzatiFelho_v2
Gazdag Ferenc_IVSZ_KormanyzatiFelho_v2Ferenc GAZDAG
 
Operációs rendszer
Operációs rendszerOperációs rendszer
Operációs rendszerrma96
 
Operációs rendszerek belső architektúrája
Operációs rendszerek belső architektúrájaOperációs rendszerek belső architektúrája
Operációs rendszerek belső architektúrájarma96
 
[Hackersuli][HUN] GSM halozatok hackelese
[Hackersuli][HUN] GSM halozatok hackelese[Hackersuli][HUN] GSM halozatok hackelese
[Hackersuli][HUN] GSM halozatok hackelesehackersuli
 
Lin busz
Lin buszLin busz
Lin buszikovacs
 
Webalkalmazások teljesítményoptimalizálása
Webalkalmazások teljesítményoptimalizálásaWebalkalmazások teljesítményoptimalizálása
Webalkalmazások teljesítményoptimalizálásaFerenc Kovács
 
Hogyan optimalizáljunk C/C++ kódokat!
Hogyan optimalizáljunk C/C++ kódokat!Hogyan optimalizáljunk C/C++ kódokat!
Hogyan optimalizáljunk C/C++ kódokat!Open Academy
 

Similaire à Netfilter elméleti alapok (20)

NETaudIT
NETaudITNETaudIT
NETaudIT
 
Syslog-NG (nem csak) fejlesztőknek
Syslog-NG (nem csak) fejlesztőknekSyslog-NG (nem csak) fejlesztőknek
Syslog-NG (nem csak) fejlesztőknek
 
Computer Networks
Computer NetworksComputer Networks
Computer Networks
 
Deep reinforcement learning with DonkeyCar
Deep reinforcement learning with DonkeyCarDeep reinforcement learning with DonkeyCar
Deep reinforcement learning with DonkeyCar
 
2 tetel rendszergazda
2  tetel rendszergazda2  tetel rendszergazda
2 tetel rendszergazda
 
Sles admin
Sles adminSles admin
Sles admin
 
rs2013_telco1
rs2013_telco1rs2013_telco1
rs2013_telco1
 
3 Horvath Gyozo
3 Horvath Gyozo3 Horvath Gyozo
3 Horvath Gyozo
 
Hálozatok
HálozatokHálozatok
Hálozatok
 
A PHP 5.4 újdonságai
A PHP 5.4 újdonságaiA PHP 5.4 újdonságai
A PHP 5.4 újdonságai
 
Sa performance vision_hu
Sa performance vision_huSa performance vision_hu
Sa performance vision_hu
 
Gazdag Ferenc_IVSZ_KormanyzatiFelho_v2
Gazdag Ferenc_IVSZ_KormanyzatiFelho_v2Gazdag Ferenc_IVSZ_KormanyzatiFelho_v2
Gazdag Ferenc_IVSZ_KormanyzatiFelho_v2
 
Operációs rendszer
Operációs rendszerOperációs rendszer
Operációs rendszer
 
Operációs rendszerek belső architektúrája
Operációs rendszerek belső architektúrájaOperációs rendszerek belső architektúrája
Operációs rendszerek belső architektúrája
 
[Hackersuli][HUN] GSM halozatok hackelese
[Hackersuli][HUN] GSM halozatok hackelese[Hackersuli][HUN] GSM halozatok hackelese
[Hackersuli][HUN] GSM halozatok hackelese
 
Lin busz
Lin buszLin busz
Lin busz
 
Webalkalmazások teljesítményoptimalizálása
Webalkalmazások teljesítményoptimalizálásaWebalkalmazások teljesítményoptimalizálása
Webalkalmazások teljesítményoptimalizálása
 
Php 5.5
Php 5.5Php 5.5
Php 5.5
 
Hogyan optimalizáljunk C/C++ kódokat!
Hogyan optimalizáljunk C/C++ kódokat!Hogyan optimalizáljunk C/C++ kódokat!
Hogyan optimalizáljunk C/C++ kódokat!
 
Advanced PL/SQL (HUN)
Advanced PL/SQL (HUN)Advanced PL/SQL (HUN)
Advanced PL/SQL (HUN)
 

Netfilter elméleti alapok

  • 2. MIT NEVEZÜNK TŰZFALNAK • Egy hardware vagy szoftver komponens amely hálózati kommunikációt korlátoz végponton és hálózati végpontok között. • Egy mechanizmus, amely kikényszerít hálózat biztonsági szabályokat, szabványokat. • Egy ellenőrzési pont, amelyen a hálózati csomagoknak keresztül kell mennie, amelynek funkciói az alábbiak lehetnek: • Integritás: a csomagok integritásának ellenőrzése, belső rendszerek integritásának megőrzése, védelme • Elérhetőség: rendelkezésre állás biztosítási a rendszer biztonságának megőrzésével, hálózati anomáliák kiküszöbölése • Adatvédelem: hálózati és végponti adatszivárgás kiküszöbölése, szabványoknak való megfeleltetés 5/3/2015RAKOVICS BENEDEK 2
  • 3. MI A NETFILTER Útválasztó Helyi UNIX socketek 1 Bejövő Kimenő 2 4 5 Callback (visszahívás) függvények egy sorozata a hálózati stackben egy kernel (rendszermag) megtestülésében • 2.3 verziószám feletti Linux kerneltől egy API-n keresztül dolgozhatunk vele, a segédprogramot iptables néven ismerhetitek, előtte ipchains-nek vagy ipfwadm-nek hívták • Minden egyes protokoll rendelkezik saját callback függvénycsomaggal, mely minden hozzá tartozó csomagnál regisztrálásra kerül • Egy Linux tűzfal a kernel modulból és hozzá tartozó segédprogramokból áll (ip_tables, ip_conntrack, nf_conntrack) 5/3/2015RAKOVICS BENEDEK 3
  • 4. MIRE HASZNÁLHATÓ A NETFILTER • Stateful (állapotvizsgálat)* és stateless (állapotvizsgálat nélküli) hálózati csomagszűrésre, szabályrendszerek létrehozására • Címfordítások (SNAT) és címálcázás (MASQ) használatára a belső címek átfordítására a publikus hálózat eléréshez, megosztásához • Transzparens (átlátható) proxyk (megbízott továbbító) implementálására, ahol az ügyfél gép nem észleli hogyan és hol kerül kiszolgálásra a kérése (DNAT). • Átfogó tc (hálózati forgalom vezérlés/formálás) és iproute(2) QoS forgalomvezérlés bevezetéséhez * Példa a csomag állapotvizsgálatra, hogy amikor az ügyféltől megjön a (SYN-) ACK válasz akkor átbillenti a státuszt ESTABLISHED-re (kiépült kapcsolatra). 5/3/2015RAKOVICS BENEDEK 4
  • 5. HOGYAN HASZNÁLHATJUK • A Linux rendszereken különböző segédprogram lehetnek segítségünkre a netfilter modul közvetett használatára és kiegészítésére. Ezek közül a legismertebb és előzőekben már említett iptables. • Iptables lényegében egy program, mely segítségével konfigurálhatjuk a belső netfilter rendszermag arhiktektúrát. Lehetőséget ad csomagok szűrésére, kapcsolatok követésére, hálózati címfordítás és címálcázás megvalósítására. • Ezen kívül vannak más tűzfal programok, mint az UFW, SmoothWall, Turtle Firewall és berendezések is, mint például az Endian vagy a SonicWall, de ezek mind az iptablest használják. • Jellemzően kihangsúlyozva, hogy milyen különleges biztonságot ad, amellett, hogy az absztrakciós szint alá nem hatolhatunk le, hogy auditáljuk a rendszert. Erre találták ki az ICSA (International Computer Security Association) tanusítványt, hogy egy független szervezet ellenőrizze a piacra dobott hálózati megoldásokat. 5/3/2015RAKOVICS BENEDEK 5
  • 6. HOGYAN MŰKÖDIK A NETFILTER • A hálózati csomagok - tábla típusoktól függően - különböző láncokra fűződnek fel netfilterben: • PREROUTING (nf_ip_prerouting) • Minden bekerülő csomag, amelynek integritása megfelelő. Jellemzően DNAT kialakításoknál nyúltok bele. • INPUT (nf_ip_local_in) • Olyan bejövő csomagok, amelyek helyi folyamatokat érintenek, tehát helyi socket létesül hozzá • FORWARD (nf_ip_forward) • Jellemzően harmadik féltől származó, tehát helyi folyamatot nem érintő csomagok, melyeket továbbításra kerülnek • POSTROUTING (nf_ip_post_routing) • Minden kimenő csomag a netfilterből, jellemzően SNAT és címálcázási kialakításoknál használjuk ezt a láncot • OUTPUT (nf_ip_local_out) • Helyi folyamatoktól eredeztethető (socketelt), távozó hálózati csomagok, például egy kiszolgálónk válasza • Visszahívási függvények állapotai avagy visszatérési értékei egyes csomagoknál, szabályoknál: • ACCEPT (nf_accept): folytatjuk a csomagra vonatkozóan a lánc feldolgozását, beengedjük a helyi folyamatokhoz • DROP (nf_drop): csomag eldobása és láncfűzér megszaktíása, visszautasításról nem küldünk érestísét, helyi folyamatok nem érinthet • QUEUE (nf_queue): várakoztatás a felhasználói térben (userspace), ha nincs fogadó helyi folyamat akkor eldobja a csomagot, nem utasítja vissza a kapcsolatot • Vannak olyan státuszok amiket a lánc szabályokon keresztül közvetlenül nem manipulálhatunk: • STOLEN (nf_stolen): leáll a lánc feldolgozása • REPEAT (nf_repeat): feldolgozás újbóli meghívása 5/3/2015RAKOVICS BENEDEK 6
  • 7. CSOMAGSTÁTUSZOK • A conntrack (kapcsolatkövető) rendszer szerves része a stateful (állapotkövető) netfilter működésének. Az egyes csomagok különböző státuszban, különböző okból kerülhetnek be és ki a rendszerünkből. Ezek a következők lehetnek: • ESTABLISHED (ip_ct_established) • A csomag egy már létrejött kapcsolathoz tartozik, az eredeti irányban (input, output vagy esetleg forward) • RELATED (ip_ct_related) • A csomag kapcsoltban van egy meglévő connection-nel (létrejött hálózati kapcsolattal) és az eredeti irányban halad • NEW (ip_ct_new) • A csomag egy új kapcsolatot próbál kialakítani az eredeti irányban és nem tartozik valamely meglévő kiépült kapcsolathoz • REPLY (ip_ct_is_reply) • Ez egy kevert állapot related és established csomagok esetén, ez az ellenkező irányban haladó csomagokra vonatkozik, tehát a válasza lesz a fent említett csomagtípusnak 5/3/2015RAKOVICS BENEDEK 7
  • 8. TÁBLÁK • A szabályokat a feldolgozás jellegétől függően különböző táblákba csoportosítjuk, ezek meghatározzák az érintett beépített láncokat is. • FILTER: csomagszűrésre használjuk, ez az alapértelmezett tábla, nem kell hivatkoznunk rá az iptables használata során • Elérhető láncok: INPUT (local_in), OUTPUT (local_out), FORWARD • NAT: ez a címfordítási tábla, erre különálló opcióval hivatkoznunk kell, ez kezeli mind a forrás, mind pedig a cél címfordításokat és ezen keresztül végezzük a címálcázást is • Elérhető láncok: OUTPUT, PREROUTING, POSTROUTING • MANGLE: ez az úgynevezett csomagváltoztató tábla, ez csomagok tartalmának módosítására szolgáló tábla, ez még az útvonal választás előtt megtörténik • Elérhető láncok: OUTPUT (utána lép POSTROUTING-ba), PREROUTING (elsődleges belépési pont) 5/3/2015RAKOVICS BENEDEK 8
  • 9. LÁNC ÁLLAPOTKÖVETÉSRE • A legelterjedtebb Layer 4 (L4) hálózati rétegben tűzfal típus jelenleg, amely ellenőrzi a kapcsolatok státuszát és eldobja a szabálytalan csomagokat. Nézzünk egy pratikus példát szimplán az integritásnak való megfelelésre: • Iptables –A szabálytalan_csomagok_lánca –p tcp –tcp-flags ACK SYN, ACK –m state – state NEW –j REJECT –reject-with tcp-reset • Ebben az esetben azokat a csomagokat kapjuk el, ahol a csomag önmagát kiépülő kapcsolatnak akarja feltűntetni, ugyanakkor mi a nyilvántartott kapcsolatok alapján tudjuk, hogy a státusza új. A végén úgy döntünk, hogy nem eldobjuk, hanem visszautasítjuk a csomagot és küldőnek a TCP RST választ küldünk. 5/3/2015RAKOVICS BENEDEK 9
  • 10. SZABÁLYOK LÉTREHOZÁSA • Most, hogy megnéztünk egy gyakorlati példát, nézzük meg hogyan tudunk mi magunk szabályokat alkotni az egyes integrált táblák beépített láncain. • Az iptables-ben az egyes szabályoknál meg kell határozni a lánchoz kapcsolódó viszonyát először (már a táblahivatkozás előtt, melyre –t opcióval hivatkozunk): • -I a szabály hozzáadása egy megadott helyben a lánchoz, konvenció, hogy az első szabályt gyakran ezzel az opcióval adják meg • -A a szabály hozzáfűzése a megadott lánchoz az utolsó helyre • -L minden szabály listázása az adott láncra vonatkozóan • -F minden szabály ürítése, de csak a megadott láncból, fontos, hogy ezt táblánként kezeljük • -N új egyedi lánc létrehozása, nem egyezhet beépített lánc nevével, csak kiterjesztésre alkalmas • -X egyedi lánc törlése a rendszerből, jellemzően a –F opcióval együtt használják 5/3/2015RAKOVICS BENEDEK 10
  • 11. EGYEZÉSEK ÉS CÉLOK • Vannak úgynevezett egyezések, melyek közül egy része moduláris, tehát csak bizonyos kiegészítők aktiválása után tudunk használni, ezek határozzák meg a szabályunk érvényesülését. • -p protokoll: megadja, hogy mely protokoll az amit fel akarunk fűzni a láncunkra, ezek lehetnek tcp, udp, icmp stb. • -s vagy –d: a forrás vagy cél IP címet adja meg, amivel egyeztetni akarunk • --sport és –dport: ezek a tcp és udp protokolloknál az egyes kapuszámokra vonatkozó egyezéseket ellenőrzi, fontos, hogy itt csak egy szám adható meg, több szám esetén a multiports modult kell használni • A kiegészítő modulokat, egyeztetőket külön jelölni kell –m opcióval, ezután adhatjuk meg csak a további opciókat, argumentumokat. Ezekre nézünk két példát. • -m limit –limit 30/hour –p icmp –j DROP • -m state –state NEW, ESTABLISHED –j ACCEPT • Célokat a korábbi visszahívási függvény állapotoknál már taglaltuk (ACCEPT, DROP, REJECT), ezeket kiegészítjük még a LOG (naplózás, majd a lánc további feldolgozása) valamint a RETURN (visszatérés a hivatkozó láncra) célértékekkel 5/3/2015RAKOVICS BENEDEK 11