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:
|
1 |
sudo iptables -S |

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“:
|
1 |
sudo iptables -S <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:
|
1 |
sudo iptables -L |

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“:
|
1 |
sudo iptables -L <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:
|
1 |
sudo iptables -L INPUT -v |

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“:
|
1 |
sudo iptables -v -Z |

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:
|
1 |
sudo iptables -v -Z <reťazec> |

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:
|
1 |
sudo iptables -v -Z <reťazec> <číslo_pravidla> |
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:
|
1 |
sudo iptables -v -D INPUT -s 172.217.194.113 -j DROP |

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:
|
1 |
sudo iptables -L --line-numbers |

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“:
|
1 |
sudo iptables -L <reťazec> --line-numbers |

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:
|
1 |
sudo iptables -v -D <reťazec> <číslo_riadku> |
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:
|
1 |
sudo iptables-save > ~/Desktop/iptables-backup.txt |
![]()
Vyčistenie jedného reťazca
Pozrime sa, ako vyčistiť reťazec. Použite príznak „-F“ nasledovaný cieľovým reťazcom:
|
1 |
sudo iptables -v -F <reťazec> |

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:
|
1 |
sudo iptables -v -F |

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:
|
1 |
sudo iptables -v -P INPUT ACCEPT && sudo iptables -v -P FORWARD ACCEPT && sudo iptables -v -P OUTPUT ACCEPT |

Teraz vyčistite tabuľky nat a mangle:
|
1 2 |
sudo iptables -v -t nat -F sudo iptables -v -t mangle -F |


Vyčistite všetky reťazce a vymažte všetky nepredvolené reťazce:
|
1 2 |
sudo iptables -v -F sudo iptables -v -X |


Teraz sa pozrime na výsledok:
|
1 |
sudo iptables -L --line-numbers |
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!



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