Táto príručka bude diskutovať o tom, ako nakonfigurovať a používať pravidlá iptables v systéme Ubuntu na zabezpečenie vašej siete. Či už ste začínajúcim používateľom systému Linux alebo ostrieľaným správcom systému, z tejto príručky a v každom ohľade sa dozviete niečo užitočné o iptables.
Iptables sú predinštalované na Ubuntu a väčšine distribúcií založených na Debiane. Ubuntu tiež balí firewall GUFW, grafickú alternatívu, ktorú môžete použiť na prácu s iptables.
POZNÁMKA: Ak chcete používať a konfigurovať tabuľky iptables, vo svojom systéme budete potrebovať oprávnenie sudo. Viac sa o sudo dozviete z nasledujúceho tutoriálu.
Teraz, keď viete, čo je Iptables, sa ponoríme priamo do toho!
Ako používať iptables na správu prenosu IPv4?
Ak chcete použiť Iptables na správu siete a prenosu IPv4, musíte porozumieť nasledujúcemu:
Príkaz Iptables
Iptables ponúka výber možností, ktoré vám umožňujú prispôsobiť a vyladiť vaše pravidlá iptables. Poďme diskutovať o niektorých z týchto parametrov a pozrime sa, čo robia.
POZNÁMKA: Môžete nakonfigurovať skupinu pravidiel, ktorá spravuje konkrétnu podmnožinu, známu ako reťazce iptables.
Parametre Iptables
Predtým, ako začneme vytvárať a konfigurovať pravidlá iptables, pochopíme najskôr základné informácie o iptables, ako je všeobecná syntax a predvolené argumenty.
Zvážte príkaz uvedený nižšie:
sudo iptables -I VSTUP -s 192.168.0.24 -j KAPKAVyššie uvedený príkaz povie iptables, aby vytvorili pravidlo v reťazci. Pravidlo zruší všetky pakety z adresy IP 192.168.0.24.
Preskúmajme príkaz, riadok po riadku, aby sme ho lepšie pochopili.
- Prvý príkaz iptables volá obslužný program príkazového riadku iptables.
- Ďalej je na vloženie použitý argument -I. Argument vloženie pridá pravidlo na začiatok reťazca iptables a bude mu tak pridelená vyššia priorita. Ak chcete pridať pravidlo na konkrétne číslo v reťazci, použite argument -I a za ním číslo, ku ktorému sa má pravidlo priradiť.
- Argument -s pomáha určiť zdroj. Preto použijeme argument -s nasledovaný IP adresou.
- Parameter -j s iptables určuje skok na konkrétny cieľ. Táto možnosť nastavuje akciu, ktorú má Iptables vykonať, keď existuje zodpovedajúci paket. Iptables štandardne ponúka štyri hlavné ciele, medzi ktoré patria: ACCEPT, DROP, LOG a REJECT.
Iptables ponúka výber parametrov, ktoré môžete použiť na konfiguráciu rôznych pravidiel. Medzi rôzne parametre, ktoré môžete použiť na konfiguráciu pravidiel iptables, patria:
Parameter pravidla Iptables | Popis |
---|---|
-s -zdroj | Zadajte zdroj, ktorým môže byť adresa, názov hostiteľa alebo názov siete. |
-p -protokol | Určuje protokol pripojenia; napríklad TCP, UDP atď. |
-d - cieľ | Určuje cieľ, ktorým môže byť adresa, názov siete alebo názov hostiteľa. |
-j -skok | Nastaví činnosť tabuľky iptables, ktoré sa majú vykonať po nájdení paketu. |
-o-out-interface | Nastavuje rozhranie, cez ktoré iptable odosiela paket. |
-i -v-rozhraní | Nastavuje rozhranie používané na vytvorenie sieťových paketov. |
-c-počítadlá množín | Umožňuje správcovi nastaviť počítadlá bajtov a paketov pre konkrétne pravidlo. |
-g -goto reťaz | Parameter určuje, že spracovanie by malo po návrate pokračovať v reťazci nastavenom používateľom. |
-f -fragment | Hovorí iptables, aby aplikovali pravidlo iba na druhý a nasledujúce fragmenty fragmentovaných paketov. |
Možnosti rozpoznávania
Príkaz iptables podporuje širokú škálu možností. Medzi bežné patria:
Možnosť | Popis |
---|---|
-A -príspevok | Pridá pravidlo na koniec zadaného reťazca |
-D - vymazať | Odstráni pravidlo zo zadaného reťazca |
-F -červenanie | Odstráni všetky pravidlá, jedno po druhom |
-L-zoznam | Zobrazí všetky pravidlá v určenom reťazci |
-Vložím | Vloží pravidlo do zadaného reťazca (odovzdané ako číslo, ak nie je zadané žiadne číslo; pravidlo sa pridá v hornej časti) |
-C -kontrola | Dopyty na priradenie pravidla; požiadavka v stanovenom pravidle |
-v -verbose | Pri použití s parametrom -L zobrazí ďalšie podrobnosti |
-N-nový reťazec | Pridá nový používateľom definovaný reťazec |
-X - vymazať reťazec | Odstráni konkrétny používateľom definovaný reťazec |
Iptables Tabuľky
Jadro Linuxu má predvolené tabuľky, ktoré obsahujú súbor súvisiacich pravidiel. Tieto predvolené tabuľky majú sadu predvolených reťazcov, ale používatelia si môžu pravidlá prispôsobiť pridaním používateľom definovaných pravidiel.
POZNÁMKA: Predvolené tabuľky budú veľmi závisieť od vašej konfigurácie jadra a nainštalovaných modulov.
Tu sú predvolené tabuľky iptables:
1: Filtračné tabuľky
Tabuľka filtra je predvolená tabuľka, ktorá obsahuje reťazce používané na filtrovanie sieťových paketov. Niektoré z predvolených reťazcov v tejto tabuľke zahŕňajú:
Reťaz | Popis |
---|---|
Vstup | Iptables používajú tento reťazec pre všetky prichádzajúce pakety do systému, t.j.e., pakety smerujúce do zásuviek miestnej siete. |
Výkon | Iptables používajú výstupný reťazec pre lokálne generované pakety, t.j.e., pakety idúce zo systému. |
Vpred | Tento reťazec používa Iptables pre pakety smerované alebo posielané ďalej cez systém. |
2: Tabuľky NAT
Tabuľka NAT alebo Network Address Table je smerovacie zariadenie používané na úpravu zdrojovej a cieľovej adresy IP v sieťovom pakete. Hlavným využitím tabuľky NAT je spojenie dvoch sietí v rozsahu súkromných adries s verejnou sieťou.
NAT bol vyvinutý na podporu maskovania skutočných IP adries, čo umožňuje rozsahom súkromných IP adries dosiahnuť vonkajšiu sieť. To pomáha chrániť podrobnosti o interných sieťach pred odhalením vo verejných sieťach.
Keď paket inicializuje nové pripojenie, použije sa tabuľka NAT.
Iptables majú predvolenú tabuľku pre adresovanie NAT. Táto tabuľka má tri hlavné reťazce:
Reťaz | Popis |
---|---|
OBRÁZKOVANIE | Umožňuje úpravu informácií o paketoch pred príchodom do reťazca INPUT, ktorý sa používa pre prichádzajúce pakety |
VÝKON | Vyhradené pre pakety vytvorené lokálne, t.j.e., predtým, ako dôjde k smerovaniu v sieti |
POSTROUTING | Umožňuje úpravu odchádzajúcich paketov - Pakety opúšťajúce reťazec OUTPUT |
Nasledujúci diagram zobrazuje prehľad tohto procesu na vysokej úrovni.
Pomocou nasledujúceho príkazu môžete zobraziť svoje tabuľky smerovania NAT.
iptables -t nat -n -v -L3: Mangle Tables
Manglová tabuľka sa používa hlavne na špeciálnu úpravu paketov. Zjednodušene sa používa na úpravu hlavičiek IP sieťového paketu. Modifikácia paketov môže zahŕňať zmenu hodnoty TTL paketu, zmenu platného sieťového skoku pre paket atď.
Tabuľka obsahuje nasledujúce predvolené reťazce:
Reťaz | Popis |
---|---|
OBRÁZKOVANIE | Vyhradené pre prichádzajúce pakety |
POSTROUTING | Používa sa pre odchádzajúce pakety |
VSTUP | Používa sa pre pakety prichádzajúce priamo na server |
VÝKON | Používa sa pre miestne pakety |
Vpred | Vyhradené pre pakety smerované cez systém |
4: Surové tabuľky
Hlavným účelom tabuľky raw je konfigurácia výnimiek pre pakety, ktoré nemá sledovať systém sledovania. Surová tabuľka nastaví na paketoch značku NOTRACK, čo vyzve funkciu conntrack na ignorovanie paketu.
Conntrack je sieťová funkcia jadra systému Linux, ktorá umožňuje jadru systému Linux sledovať všetky sieťové pripojenia a umožňuje jadru identifikovať pakety tvoriace sieťový tok.
Surový stôl má dva hlavné reťazce:
Reťaz | Popis |
---|---|
OBRÁZKOVANIE | Vyhradené pre pakety prijaté sieťovými rozhraniami |
VÝKON | Vyhradené pre pakety iniciované miestnymi procesmi |
5: Tabuľka zabezpečenia
Primárne použitie tejto tabuľky je nastavenie interného bezpečnostného mechanizmu vylepšenia zabezpečenia pre Linux (SELinux), ktorý označuje na paketoch. Ochrannú známku je možné aplikovať na každé pripojenie alebo paket.
Používa sa pre povinné pravidlá kontroly prístupu a je druhou tabuľkou prístupnou za tabuľkou filtra. Ponúka nasledujúce predvolené reťazce:
Reťaz | Popis |
---|---|
VSTUP | Vyhradené pre prichádzajúce pakety do systému |
VÝKON | Používa sa pre lokálne vytvorené pakety |
VPRED | Používa sa na pakety smerované cez systém |
Po prezeraní predvolených položiek Iptables poďme o krok ďalej a prediskutujeme, ako pracovať s pravidlami iptables.
Ako pracovať s pravidlami iptables?
Pravidlá Iptables sa uplatňujú vzostupne. To znamená, že sa najskôr použije prvé pravidlo v konkrétnej množine, potom nasleduje druhé, potom tretie atď., Až do posledného.
Kvôli tejto funkcii vám iptables bránia v pridávaní pravidiel do množiny pomocou parametra -A; musíte použiť -I, za ktorým nasleduje číslo alebo jeho vyprázdnenie, aby ste sa dostali na začiatok zoznamu.
Zobrazujú sa rozpoznateľné položky
Ak chcete zobraziť svoje tabuľky iptables, použite príkaz iptables -L -v pre IPv4 a ip6tables -L -v pre IPv6.
Pravidlá vkladania
Ak chcete vložiť pravidlá do sady, musíte ich umiestniť v presnom poradí a rešpektovať pravidlá, ktoré používa ten istý reťazec. Zoznam vašich pravidiel iptables si môžete zobraziť pomocou príkazu, ako je uvedené vyššie:
sudo iptables -L -vNapríklad ak chcete vložiť pravidlo umožňujúce prichádzajúce pripojenia na port 9001 cez TCP, musíme zadať číslo pravidla do reťazca INPUT, ktorý dodržiava pravidlá cestnej premávky pre web.
sudo iptables -I VSTUP 1 -p TCP --dport 9001 -m stav --state NOVÝ -j PRIJAŤPo zobrazení aktuálnych tabuliek iptables by sa malo v sade zobraziť nové pravidlo.
sudo iptables -L -v
Výmena pravidiel
Funkcia nahradenia funguje podobne ako pri vkladaní, ale používa príkaz iptables -R. Napríklad pre úpravu vyššie uvedeného pravidla a nastavenie odmietnutia portu 9001:
sudo iptables -R VSTUP 1 -p TCP --dport 9001 -m stav --state NOVÝ -j ODMIETNUTIEVymazanie pravidla
Ak chcete pravidlo odstrániť, odovzdáme číslo pravidla. Napríklad na odstránenie vyššie uvedeného pravidla môžeme určiť ako:
sudo iptables -D VSTUP 1Vo väčšine distribúcií systému Linux sú tabuľky iptable prázdne pre protokoly IPv4 a IPv6. Ak ste teda nepridali žiadne nové pravidlo, dostanete výstup podobný tomu, ktorý je zobrazený nižšie. To je riskantné, pretože to znamená, že systém povoľuje všetku prichádzajúcu, odchádzajúcu a smerovanú komunikáciu.
Poďme na to, ako nakonfigurovať tabuľky iptables:
Ako konfigurovať tabuľky iptables?
Existuje mnoho spôsobov, ako nakonfigurovať pravidlá iptables. V tejto časti sú uvedené príklady, ktoré vám ukážu, ako nastaviť pravidlá pomocou adries IP a portov.
Blokovanie a povolenie prenosu podľa portov
Ak chcete zablokovať alebo povoliť všetku komunikáciu v sieťovom rozhraní, môžete použiť konkrétny port. Zvážte nasledujúce príklady:
sudo iptables -A INPUT -j ACCEPT -p TCP - cieľový port 1001 -i wlan0Vyššie uvedené príkazy umožňujú prenos na porte 1001 TCP na rozhraní wlan0.
sudo iptables -A INPUT -j DROP -p TCP - cieľový port 1001 -i wlan0Tento príkaz robí opak vyššie uvedeného príkazu, pretože blokuje všetku komunikáciu na porte 1001 na wlan0.
Tu je podrobná kontrola príkazu:
- Prvý argument (-A) pridáva nové pravidlo na koniec reťazca tabuľky.
- Argument INPUT pridá do tabuľky zadané pravidlo.
- Argument DROP nastavuje akciu, ktorá sa má vykonať, ako ACCEPT a DROP. To znamená, že akonáhle sa paket spáruje, vyhodí sa.
- -p určuje protokol ako TCP a umožňuje prenos ostatných protokolov.
- -destination-port nastavuje pravidlo na prijatie alebo zrušenie celej premávky určenej pre port 1001.
- -i
hovorí iptables, aby aplikovali pravidlo na prenos prichádzajúci z rozhrania wlan0.
POZNÁMKA: Iptables nerozumejú aliasom sieťového rozhrania. V systéme s viac ako jedným virtuálnym rozhraním teda budete musieť definovať cieľovú adresu ručne a explicitne.
Napríklad:
sudo iptables -A VSTUP -j DROP -p TCP - cieľový port 1001 -i wlan0 -d 192.168.0.24Biela listina a zoznam zakázaných adries IP
Pravidlá brány firewall môžete vytvoriť pomocou iptables. Jedným z príkladov je zastavenie všetkého prenosu a povolenie sieťového prenosu iba z explicitných adries IP.
Príklad:
iptables -A VSTUP -m stav --stát ZOSTAVENÝ, SÚVISIACE -j AKCEPTOVAŤiptables -A INPUT -i lo -m komentár - komentár "Povoliť spätné spojenie" -j AKCEPTOVAŤ
iptables -A INPUT -p icmp -m komentár - komentár „Povoliť Pingu pracovať podľa očakávaní“ -j
SÚHLASIŤ
iptables -A VSTUP -s 192.168.0.1/24 -j AKCEPTOVAŤiptables -A VSTUP -s 192.168.0.0 -j AKCEPTOVAŤ
iptables -P INPUT DROP
iptables -P FORWARD DROP
Prvý riadok nastavuje pravidlo povoľujúce všetky zdrojové IP adresy v 192.168.0.Podsieť 1/24. Môžete tiež použiť CIDR alebo jednotlivé adresy IP. V nasledujúcom príkaze sme nastavili pravidlo umožňujúce všetku komunikáciu spojenú s existujúcimi spojeniami. V záverečných príkazoch sme nastavili politiku pre INPUT a FORWARD na vypustenie všetkých.
Používanie tabuliek iptables na protokole IPv6
Príkaz Iptables funguje iba na IPv4. Ak chcete použiť iptables na IPv6, musíte použiť príkaz ip6tables. Ip6tables používa tabuľky raw, filter, security a mangle. Všeobecná syntax pre ip6tables je podobná iptables a podporuje tiež možnosti zhody iptables ako append, delete, atď.
Zvážte použitie manuálnych stránok ip6tables, kde nájdete ďalšie informácie.
Príklad súborov pravidiel iptables pre zabezpečenie siete
Vytvorenie vhodných pravidiel brány firewall bude závisieť hlavne od služby bežiacej v systéme a od použitých portov. Tu je však niekoľko základných pravidiel konfigurácie siete, ktoré môžete použiť na zabezpečenie svojho systému:
1: Povoliť prenos rozhrania Loopback a odmietnuť všetky spätné väzby pochádzajúce z iných rozhraní
iptables -A INPUT -i lo -j ACCEPT (Môžete tiež použiť ip6tables)iptables -A VSTUP ! -i lo -s 127.0.0.0 -j ODMIETNUTIE (platia aj tabuľky ip6)
2: Odmietnuť všetky žiadosti o príkaz ping
iptables -A INPUT -p icmp -m state --state NEW --icmp-type 8 -j REJECT3: Povoliť pripojenia SSH
iptables -A VSTUP -p tcp --dport 22 -m stav --stav NOVINKA -j PRIJAŤToto sú príklady príkazov, ktoré môžete použiť na zabezpečenie vášho systému. Konfigurácia však bude veľmi závisieť od toho, ku komu alebo komu chcete získať prístup k rôznym službám.
POZOR: Ak chcete radšej úplne zakázať protokol IPv6, nezabudnite riadok odkomentovať, pretože to spomalí proces aktualizácie:
precedens :: ffff: 0: 0/96 100 nájdených v priečinku / etc / gai.konf .
Je to preto, že správca balíkov APT rieši zrkadlovú doménu v IPv6 kvôli aktualizácii apt-get.
Ako nasadiť pravidlá iptables?
Ak chcete nasadiť svoje tabuľky iptables na Ubuntu alebo iné systémy založené na Debiane, začnite vytvorením dvoch súborov, ip4 a ip6, pre ich príslušné adresy IP.
V obidvoch súboroch pridajte pravidlá, ktoré chcete vynútiť, do príslušných súborov - pravidlá IPv4 do súboru ip4 a pravidlá IPv6 do súboru ip6.
Ďalej musíme importovať pravidlá pomocou príkazu:
sudo iptables-restore < /tmp/ip4 (replace filename for IPv6)Potom môžete pomocou príkazu skontrolovať, či sa pravidlá uplatnili:
sudo iptables -L -vStručný sprievodca pre trvalé použitie iptables
Ubuntu a bežné distribúcie založené na Debiane sa dodávajú s balíkom iptables-persistent, ktorý umožňuje jednoduché použitie pravidiel brány firewall po reštarte. Balík obsahuje súbory, ktoré môžete použiť na nastavenie pravidiel pre IPv4 alebo IPv6, a dajú sa automaticky použiť pri štarte.
Pravidlá brány firewall môžete tiež použiť pomocou UFW alebo GUFW. V nasledujúcom návode sa dozviete, ako používať UFW.
Ako nainštalovať iptables-persistent?
Uistite sa, že máte v systéme nainštalovaný program iptables-persistent. Pomocou dpkg skontrolujte, či máte nainštalovaný balík.
Ak nie, použite nasledujúci príkaz:
sudo apt-get install iptables-persistent
Dvakrát sa zobrazí výzva na uloženie vašich súčasných pravidiel IPv4 aj IPv6. Kliknutím na Áno uložíte obe pravidlá.
Kliknutím na áno uložte IPv6.
Po dokončení inštalácie skontrolujte, či máte podadresár iptables, ako je to znázornené na obrázku nižšie.
Teraz môžete použiť pravidlá.v4 a pravidlá.v6 na pridanie pravidiel iptables a automaticky sa použijú pomocou iptables-persistent. Súbory sú jednoduché textové súbory, ktoré môžete ľahko upravovať pomocou ľubovoľného textového editora podľa vášho výberu.
Záver
V tomto tutoriáli sme sa venovali základom iptables. Počnúc prácou s iptables, základnými príkazmi, predvolenými tabuľkami iptables a parametrami.
Z toho, čo ste sa dozvedeli, by ste mali byť schopní používať iptables na vytváranie pravidiel brány firewall, ktoré pomáhajú zabezpečiť váš systém.