Späť na blog

Zobrazenie a odstraňovanie pravidiel firewallu Iptables

Zobrazenie a odstraňovanie pravidiel firewallu Iptables

Iptables je hlavný firewall, ktorý je predvolene súčasťou väčšiny distribúcií Linuxu. Je zodpovedný za správu sieťovej bezpečnosti. Funguje tak, že porovnáva dátové pakety so sadou pravidiel a inštruuje systém, aby pripojenie prijal, odmietol alebo presmeroval podľa týchto pravidiel. V tomto návode vám ukážeme, ako zobraziť a vymazať pravidlá, skontrolovať a vynulovať počítadlá paketov a bajtov a vyčistiť reťazce. Pripravení? Poďme na to!

Predpoklady

Predtým, ako sa pustíme do návodu, si ujasnime jednu vec. Všetky tipy a triky predvedené v tejto príručke sa vykonávajú na samostatnom virtuálnom stroji. Je dobré, aby ste to urobili aj vy, pretože to eliminuje akúkoľvek možnosť, že si v systéme urobíte úplný chaos. Až po zvládnutí týchto procesov by ste sa mali pokúsiť implementovať ich v reálnych situáciách.

V tomto návode budeme na demonštráciu všetkých krokov používať Ubuntu. Mali by však fungovať podobným spôsobom bez ohľadu na distribúciu.

Zobrazenie pravidiel

Zobrazenie pravidiel podľa špecifikácie

Najprv si skontrolujme všetky aktívne pravidlá podľa špecifikácie. Spustite nasledujúci príkaz:

iptables list

Ak ste už niekedy pracovali s vytváraním pravidiel iptables, možno ste si všimli podobnosť. Výstupy sa podobajú príkazom, ktoré boli použité na ich vytvorenie, s výnimkou časti „iptables“. Zdieľajú tiež podobnú štruktúru s konfiguračnými súbormi pravidiel iptables.

Zobrazenie konkrétneho reťazca

Skúsme niečo presnejšie. Namiesto vypisovania všetkých pravidiel iptables prikážte iptables, aby vypísal pravidlá konkrétneho reťazca. Napríklad TCP, INPUT, OUTPUT atď. Ak to chcete urobiť, zadajte názov reťazca za príznakom „-S“:

list specific chain

Zobrazenie pravidiel ako tabuľky

Tabuľkové zobrazenie je užitočné pri porovnávaní rôznych pravidiel. Pomocou príznaku „-L“ prikážte iptables, aby vypísal všetky aktívne pravidlá vo formáte tabuľky:

list rules as table iptables

Výstup obsahuje všetky aktuálne pravidlá zoradené podľa reťazca. Podobne ako v predchádzajúcej časti, aj tu je možné filtrovať výstup zoznamu podľa konkrétneho reťazca, ako napríklad INPUT, TCP, OUTPUT atď. Ak to chcete urobiť, zadajte reťazec za príznakom „-L“:

filter by chain

Poďme si výstup trochu rozobrať. V našom prípade bude výstup kvôli pravidlám vyzerať trochu neprehľadne. Prvý riadok výstupu deklaruje názov reťazca (INPUT) s jeho predvolenou politikou (DROP). Nasledujúci riadok špecifikuje hlavičky stĺpcov tabuľky. Zvyšok sú pravidlá reťazca. Pozrime sa, čo hlavičky označujú:

  • target: Ak sa paket zhoduje s pravidlom, táto časť definuje, aká akcia sa má vykonať. Môže to byť prijatie paketu, zahodenie, zaznamenanie do denníka alebo jeho odoslanie do iného reťazca.
  • prot: Definuje protokol, napríklad udp, tcp, icmp alebo all.
  • opt: Tento stĺpec označuje možnosti IP. Používa sa zriedka.
  • source: Pôvod paketu (IP adresa alebo podsieť). Hodnota môže byť konkrétna alebo anywhere.
  • destination: Cieľ paketu (IP adresa alebo podsieť). Hodnota môže byť konkrétna alebo anywhere.

Ak ste si všimli, posledný stĺpec nie je označený. Je to preto, že slúži na označenie možností pravidla. Bude obsahovať všetky časti pravidla, ktoré sa nezmestili do predchádzajúcich polí. Môže obsahovať čokoľvek od zdrojových/cieľových portov až po stav pripojenia paketu atď.

Počty paketov a celková veľkosť

Vynulovanie počítadiel paketov a bajtov

Pri výpise pravidiel iptables môžeme tiež skontrolovať počet paketov a celkovú veľkosť paketov v bajtoch, ktoré sa zhodovali s každým konkrétnym pravidlom. Je to užitočná metrika, keď potrebujete mať hrubú predstavu o tom, ktoré pravidlá sa zhodujú s paketmi.

V tomto príklade budeme používať reťazec INPUT. Tentoraz pridajte príznak „-v“, ktorý znamená podrobný režim:

package and byte counters iptables

Všimnete si, že výstup tabuľky teraz obsahuje dve ďalšie polia: pkts a bytes.

Vynulovať počty paketov a celkovú veľkosť

V niektorých situáciách môžete chcieť vynulovať počítadlá, ktoré sme si ukázali predtým. Ak sa systém reštartuje, počítadlá sa vymažú automaticky. Vynulovanie môžete vynútiť aj manuálne. Na vynulovanie počtu paketov a celkovej veľkosti použijeme príznak „-Z“:

Reset packet counts and aggregate size

Upozorňujeme, že tento príkaz vynuluje počítadlá všetkých reťazcov. Podobne ako pri iných príkazoch, aj tu je možné vynulovať počítadlo pre konkrétne reťazce. Napríklad nasledujúci príkaz vynuluje počítadlá pre reťazec INPUT:

reset particular counter

Akciu vynulovania počítadla je možné spresniť. Môžete vynulovať počítadlo pre konkrétne pravidlo v rámci konkrétneho reťazca. Ak to chcete urobiť, pridajte číslo pravidla za názov reťazca:

reset specific rule

Vymazanie pravidiel

Vymazanie pravidiel podľa špecifikácie

Existuje viacero spôsobov, ako pristupovať k vymazaniu pravidiel iptables. Prvým spôsobom vymazania pravidiel je podľa špecifikácie pravidla. Na vymazanie použijeme príznak „-D“ nasledovaný špecifikáciou pravidla:

Delete rules by specification

Ak ste už predtým pridali nejaké pravidlo iptables, všimnete si podobnosť. Jediné, čo sa tu zmenilo, je príznak „-D“ namiesto príznaku „-A“.

Vymazanie pravidiel podľa reťazca a čísla

Vymazanie pravidiel podľa ich špecifikácie vyžaduje trochu viac úsilia, však? Čo keby sme ich mohli vymazať bez toho, aby sme si museli pamätať špecifikáciu pravidla? Vymažme pravidlá podľa ich reťazca a čísla! V porovnaní s prvou metódou (vymazanie podľa špecifikácie) je táto relatívne jednoduchšia, pretože nemusíte mať v ruke celú špecifikáciu.

Táto metóda vyžaduje reťazec a číslo riadku cieľového pravidla. Kde získame číslo riadku? Spustite nasledujúci príkaz, aby ste to zistili:

Delete rules by chain and number - get line number

Získate veľký výstup so všetkými pravidlami a ich číslami riadkov. Ak chcete výstup zúžiť, použite názov reťazca za príznakom „-L“:

Delete rules by chain and number - filter

Vo výstupe si všimnete extra stĺpec num. Označuje číslo riadku pre každé pravidlo. Keď určíme cieľové číslo, vykonajte vymazanie:

delete iptables rule

Vyčistenie reťazcov

Čo je v prípade iptables vyčistenie (flushing) reťazca? Je to proces vymazania všetkých pravidiel v rámci určitého reťazca. Ak potrebujete hromadne vymazať pravidlá, môžete použiť túto metódu. Pred vykonaním vyčistenia reťazca dôrazne odporúčame vytvoriť zálohu existujúcich pravidiel pomocou nástroja iptables-save. Je to vstavaný nástroj iptables, ktorý vypíše všetky aktuálne reťazce a pravidlá. Výstup je možné exportovať do textového súboru:

iptables rules export

Vyčistenie jedného reťazca

Pozrime sa, ako vyčistiť reťazec. Použite príznak „-F“ nasledovaný cieľovým reťazcom:

flush a single chain

Vyčistenie všetkých reťazcov

Pred vyčistením všetkých reťazcov sa uistite, že rozumiete tomu, čo robíte. Týmto sa vymažú všetky pravidlá pre firewall iptables. Mali by ste sa uistiť, že si vopred vytvoríte zálohu pravidiel iptables.

Pripravení? Vyčistite všetky reťazce iptables spustením nasledujúceho príkazu:

flush all changes

Vyčistenie pravidiel, vymazanie reťazcov a povolenie všetkého

Vykonanie krokov popísaných v tejto časti účinne zakáže firewall a umožní neobmedzenú sieťovú prevádzku. Podobne ako v predchádzajúcej časti odporúčame pred pokračovaním vytvoriť zálohu iptables. Najprv zmeníme predvolenú politiku každého zo vstavaných reťazcov na ACCEPT. Tým sa zabezpečí, že vás iptables nezablokuje mimo vášho servera cez SSH:

Flush rules, delete chains and accept all

Teraz vyčistite tabuľky nat a mangle:

 flush nat and mangle tables

 mangle tables

Vyčistite všetky reťazce a vymažte všetky nepredvolené reťazce:

Flush all the chains

 delete all the non-default chains

Teraz sa pozrime na výsledok:

iptables result

Záverečné myšlienky

Iptables je výkonný firewall. Dúfame, že tento návod bol užitočný a naučil vás, ako zobraziť a vymazať pravidlá firewallu iptables. A nezabudnite si ich precvičiť predtým, než ich použijete v reálnom svete.

Príjemnú prácu s počítačom!

author

Akshay Nagpal

Autor · CloudSigma

Preslav Dobrev je kreatívny dizajnér v spoločnosti CloudSigma, ktorý sa zameriava na konzistentnú firemnú identitu prostredníctvom tradičných a inovatívnych marketingových kanálov. Dokáže brilantne spájať umeleckú víziu so strategickým marketingom, čím vytvára pôsobivé príbehy značky.

Komentáre

Zatiaľ žiadne komentáre. Buďte prvý.