Ubuntu Iptables: Ako ovládať sieťovú prevádzku pomocou iptables?
“...Unixová pomôcka užívateľského priestoru, ktorá umožňuje správcom systému konfigurovať pravidlá filtrovania IP paketov implementované modulom sieťového filtra jadra. ” Iptables funguje ako firewall pomocou pravidiel filtrovania paketov na základe rôznych kritérií, ako sú IP adresa, port a protokoly.
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 Linuxu alebo skúseným správcom systému, z tejto príručky sa tak či onak 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ž obsahuje firewall GUFW, grafickú alternatívu, ktorú môžete použiť na prácu s iptables.
POZNÁMKA: Ak chcete používať a konfigurovať iptables, budete vo svojom systéme potrebovať privilégiá sudo. Viac o sudo sa dozviete v nasledujúcom návode.
Teraz, keď viete, čo je Iptables, poďme sa do toho pustiť!
Ako používať iptables na správu návštevnosti IPv4?
Ak chcete používať Iptables na správu siete a prenosu IPv4, musíte pochopiť nasledovné:
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 uvidíme, čo robia.
POZNÁMKA: Môžete nakonfigurovať sadu pravidiel, ktoré spravujú špecifickú podmnožinu, známu ako reťazce iptables.
Parametre iptables
Skôr než začneme vytvárať a konfigurovať pravidlá iptables, pochopme najprv základy iptables, ako je všeobecná syntax a predvolené argumenty.
Zvážte nasledujúci príkaz:
Vyššie uvedený príkaz hovorí iptables, aby vytvorili pravidlo v reťazci. Pravidlo zahodí všetky pakety z IP adresy 192.168.0.24.
Preskúmajme príkaz riadok po riadku, aby sme mu lepšie porozumeli.
Prvý príkaz iptables volá pomocný program príkazového riadka iptables.
Ďalej je argument -I použitý na vloženie. Argument vloženia pridá pravidlo na začiatok reťazca iptables, a tak získa vyššiu prioritu. Ak chcete pridať pravidlo na konkrétnom čísle v reťazci, použite argument -I, za ktorým nasleduje číslo, ku ktorému má byť pravidlo priradené.
Argument -s pomáha špecifikovať zdroj. Preto používame argument -s, za ktorým nasleduje adresa IP.
-
Parameter -j s iptables určuje skok na konkrétny cieľ. Táto možnosť nastavuje akciu, ktorú Iptables vykoná, keď sa nájde 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. Rôzne parametre, ktoré môžete použiť na konfiguráciu pravidiel iptables, zahŕňajú:
- -p –protocol
Určuje protokol pripojenia; napríklad TCP, UDP atď.
- -d –destination
Určuje cieľ, ktorým môže byť adresa, názov siete alebo názov hostiteľa.
- -j –jump
Nastaví akciu, ktorú vykoná iptables po nájdení paketu.
- -o –out-interface
Nastavuje rozhranie, cez ktoré iptable odosiela paket.
- -i –in-interface
Nastavuje rozhranie používané na vytváranie sieťových paketov.
- -c –set-counters
Umožňuje správcovi nastaviť počítadlá bajtov a paketov pre zadané pravidlo.
- -g –goto chain
Parameter určuje, že spracovanie by malo po návrate pokračovať v reťazci užívateľského nastavenia.
- -f –fragment
Hovorí iptables, aby aplikovalo pravidlo iba na druhý a nasledujúci fragment fragmentovaných paketov.
Možnosti iptables
Príkaz iptables podporuje širokú škálu možností. Niektoré bežné zahŕňajú:
- -D –delete
Odstráni pravidlo zo zadaného reťazca
- -F –flush
Odstráni všetky pravidlá, jedno po druhom
- -L –list
Zobrazuje všetky pravidlá v zadanom reťazci
- -I –insert
Vloží pravidlo do určeného reťazca (odovzdané ako číslo, ak nie je zadané žiadne číslo; pravidlo sa pridá na začiatok)
- -C –check
Dopyty na zhodu pravidla; požiadavka v špecifikovanom pravidle
- -v –verbose
Pri použití s parametrom -L zobrazí viac podrobností
- -N –new-chain <name>
Pridá nový reťazec definovaný používateľom
- -X –delete-chain <name>
Odstráni špecifický reťazec definovaný používateľom
Tabuľky iptables
Linuxové jadro 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 pravidiel definovaných používateľom.
POZNÁMKA: Predvolené tabuľky budú vo veľkej miere závisieť od konfigurácie jadra a nainštalovaných modulov.
Tu sú predvolené tabuľky iptables:
1: Filtračné tabuľky
Tabuľka filtrov 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ú:
Chain | Description |
---|---|
Input | Iptables use this chain for any incoming packets to the system, i.e., packets going to local network sockets. |
Output | Iptables use the output chain for locally generated packets, i.e., packets going out of the system. |
Forward | This chain is what the Iptables use for packets routed or forwarded via the system. |
2: Tabuľky NAT
NAT alebo tabuľka sieťových adries je smerovacie zariadenie používané na úpravu zdrojových a cieľových IP adries v sieťovom pakete. Hlavným použitím tabuľky NAT je prepojenie 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 súkromným rozsahom 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.
Tabuľka NAT sa použije, keď paket iniciuje nové spojenie.
Iptables majú predvolenú tabuľku pre adresovanie NAT. Táto tabuľka má tri hlavné reťazce:
Chain | Description |
---|---|
PREROUTING | Allows the modification of packet information before arriving in the INPUT chain—used for incoming packets |
OUTPUT | Reserved for packets created locally, i.e., before network routing occurs |
POSTROUTING | Allows the modification of outgoing packets— Packets leaving the OUTPUT chain |
Nižšie uvedený diagram zobrazuje prehľad tohto procesu na vysokej úrovni.
Na zobrazenie tabuliek smerovania NAT použite príkaz uvedený nižšie.
3: Mangle Tables
Mandlový stôl sa používa hlavne na špeciálnu úpravu paketov. Zjednodušene povedané, používa sa na úpravu hlavičiek IP sieťového paketu. Modifikácia paketov môže zahŕňať zmenu TTL hodnoty paketu, zmenu platných sieťových skokov pre paket atď.
Tabuľka obsahuje nasledujúce predvolené reťazce:
- POSTROUTING
Používa sa pre odchádzajúce pakety
- INPUT
Používa sa pre pakety prichádzajúce priamo na server
- OUTPUT
Používa sa pre lokálne pakety
- Forward
Vyhradené pre pakety smerované cez systém
4: Surové tabuľky
Hlavným účelom nespracovanej tabuľky je nakonfigurovať výnimky pre pakety, ktoré nie sú určené na spracovanie systémom sledovania. Nespracovaná tabuľka nastavuje na pakety značku NOTRACK, čím vyzve funkciu conntrack, aby paket ignorovala.
Conntrack je sieťová funkcia linuxového jadra, ktorá umožňuje linuxovému jadru sledovať všetky sieťové pripojenia, čo umožňuje jadru identifikovať pakety tvoriace sieťový tok.
Surová tabuľka má dva hlavné reťazce:
Chain | Description |
---|---|
PREROUTING | Reserved for packets received by network interfaces |
OUTPUT | Reserved for packets initiated by local processes |
5: Tabuľka zabezpečenia
Primárne použitie tejto tabuľky je nastavenie interného bezpečnostného mechanizmu zabezpečenia pre Linux (SELinux), ktorý označuje pakety. Bezpečnostnú značku možno použiť na pripojenie alebo paket.
Používa sa pre pravidlá povinného riadenia prístupu a je druhou tabuľkou, ku ktorej sa pristupuje po tabuľke filtrov. Ponúka nasledujúce predvolené reťazce:
Chain | Description |
---|---|
INPUT | Reserved for incoming packets to the system |
OUTPUT | Used for locally created packets |
FORWARD | Used for packets routed through the system |
Keď sme sa pozreli na predvolené Iptables, poďme o krok ďalej a prediskutujeme, ako pracovať s pravidlami iptables.
Ako pracovať s pravidlami iptables?
Pravidlá iptables sa aplikujú vo vzostupnom poradí. To znamená, že prvé pravidlo v konkrétnom súbore sa použije ako prvé, nasleduje druhé, potom tretie a tak ďalej až do posledného.
Kvôli tejto funkcii vám iptables bránia pridávať pravidlá do množiny pomocou parametra -A; musíte použiť -I, za ktorým nasleduje číslo alebo ho vyprázdnením pridať na začiatok zoznamu.
Zobrazovanie iptables
Ak chcete zobraziť svoje iptables, použite príkaz iptables -L -v pre IPv4 a ip6tables -L -v pre IPv6.
Vkladanie pravidiel
Ak chcete vložiť pravidlá do množiny, musíte ich umiestniť v presnom poradí, rešpektujúc pravidlá používané rovnakým reťazcom. Zoznam pravidiel iptables si môžete pozrieť pomocou príkazu, ako je uvedené vyššie:
Napríklad, ak chcete vložiť pravidlo umožňujúce prichádzajúce pripojenia na port 9001 cez TCP, musíme zadať číslo pravidla pre reťazec INPUT podľa pravidiel premávky pre web.
Po zobrazení aktuálnych iptables by ste mali vidieť nové pravidlo v sade.
Nahradenie pravidiel
Funkcia nahradenia funguje podobne ako vloženie, avšak používa príkaz iptables -R. Ak chcete napríklad upraviť vyššie uvedené pravidlo a nastaviť port 9001 na odmietnutie, postupujte takto:
Odstránenie pravidla
Ak chcete pravidlo vymazať, odovzdáme číslo pravidla. Ak chcete napríklad odstrániť vyššie uvedené pravidlo, môžeme zadať ako:
Vo väčšine linuxových distribúcií sú iptables prázdne pre IPv4 aj IPv6. Ak ste teda nepridali žiadne nové pravidlo, dostanete výstup podobný tomu, ktorý je uvedený nižšie. To je riskantné, pretože to znamená, že systém povoľuje všetku prichádzajúcu, odchádzajúcu a smerovanú prevádzku.
Poďme na to, ako nakonfigurovať iptables:
Ako nakonfigurovať iptables?
Existuje mnoho spôsobov, ako nakonfigurovať pravidlá iptables. Táto časť používa príklady, ktoré vám ukážu, ako nastaviť pravidlá pomocou adries IP a portov.
Blokovanie a povolenie prenosu podľa portov
Na zablokovanie alebo povolenie všetkej prevádzky na sieťovom rozhraní môžete použiť konkrétny port. Zvážte nasledujúce príklady:
Vyššie uvedené príkazy umožňujú prevádzku na porte 1001 TCP na rozhraní wlan0.
Tento 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 tabuliek.
Argument INPUT pridá zadané pravidlo do tabuľky.
Argument DROP nastavuje akciu, ktorá sa má vykonať, ako ACCEPT a DROP. To znamená, že akonáhle sa paket spojí, zahodí sa.
-p určuje protokol ako TCP a umožňuje prechod na iné protokoly.
–destination-port nastavuje pravidlo na prijatie alebo zrušenie všetkej prevádzky určenej pre port 1001.
-i
povie iptables, aby aplikovalo pravidlo na prevádzku prichádzajúcu na rozhraní wlan0.
POZNÁMKA: Iptables nerozumejú aliasom sieťového rozhrania. Preto v systéme s viac ako jedným virtuálnym rozhraním budete musieť definovať cieľovú adresu manuálne a explicitne.
Napríklad:
Pridávanie adries IP na bielu listinu a zoznam zakázaných adries
Pravidlá brány firewall môžete vytvoriť pomocou iptables. Jedným príkladom je zastavenie všetkej prevádzky a povolenie sieťovej prevádzky iba z explicitných adries IP.
Príklad:
iptables -A INPUT -i lo -m comment --comment "Allow loopback connections" -j ACCEPT
iptables -A INPUT -p icmp -m comment --comment “Allow Ping to work as expected” -j
SÚHLASIŤ
iptables -A INPUT -s 192.168.0.0 -j ACCEPT
iptables -P INPUT DROP
iptables -P FORWARD DROP
Prvý riadok nastavuje pravidlo na povolenie všetkých zdrojových IP adries v podsieti 192.168.0.1/24. Môžete tiež použiť CIDR alebo jednotlivé IP adresy. V nasledujúcom príkaze nastavíme pravidlo, aby sme povolili všetku komunikáciu pripojenú k existujúcim pripojeniam. V posledných príkazoch nastavíme politiku pre INPUT a FORWARD, aby sa všetko zrušilo.
Používanie iptables na 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 surové, filtrovacie, bezpečnostné a mandlové tabuľky. Všeobecná syntax pre ip6tables je podobná ako pre iptables a tiež podporuje zodpovedajúce možnosti iptables, ako je pripojiť, odstrániť atď.
Zvážte použitie manuálových stránok ip6tables pre viac informácií.
Príklad sady pravidiel iptables pre bezpečnosť siete
Vytvorenie vhodných pravidiel brány firewall bude závisieť najmä od služby spustenej na systéme a používaný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ť prevádzku rozhrania Loopback a odmietnuť všetku spätnú slučku prichádzajúcu z iných rozhraní
iptables -A INPUT ! -i lo -s 127.0.0.0 -j REJECT (ip6tables also applicable)
2: Odmietnite všetky požiadavky na ping
3: Povoliť pripojenia SSH
Toto sú príklady príkazov, ktoré môžete použiť na zabezpečenie vášho systému. Konfigurácia však bude do značnej miery závisieť od toho, k čomu alebo komu chcete pristupovať k rôznym službám.
UPOZORNENIE: Ak chcete IPv6 úplne zakázať, nezabudnite odkomentovať riadok, pretože to spomalí proces aktualizácie:
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 iptables na Ubuntu alebo iných systémoch založených na Debiane, začnite vytvorením dvoch súborov, ip4 a ip6, pre ich príslušné IP adresy.
V oboch súboroch pridajte pravidlá, ktoré chcete presadzovať, 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:
Potom môžete overiť, či pravidlá platia, pomocou príkazu:
Rýchly iptables-trvalý sprievodca
Ubuntu a bežné distribúcie založené na Debiane sa dodávajú s balíkom iptables-persistent, ktorý vám umožňuje jednoducho aplikovať pravidlá brány firewall po reštarte. Balík poskytuje súbory, ktoré môžete použiť na nastavenie pravidiel pre IPv4 alebo IPv6 a môžu byť použité automaticky pri štarte.
Pravidlá brány firewall môžete použiť aj pomocou UFW alebo GUFW. Zvážte nasledujúci návod, aby ste sa naučili používať UFW.
Ako nainštalovať iptables-persistent?
Uistite sa, že máte vo svojom systéme nainštalovaný iptables-persistent. Pomocou dpkg skontrolujte, či máte balík nainštalovaný.
Ak nie, použite nasledujúci príkaz:
Dvakrát sa zobrazí výzva na uloženie aktuálnych 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 znázornené na obrázku nižšie.
Záver
V tomto návode sme prebrali základy 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 naučili, by ste mali byť schopní používať iptables na vytváranie pravidiel brány firewall, ktoré pomáhajú zabezpečiť váš systém.