Tato příručka pojednává o tom, jak konfigurovat a používat pravidla iptables v systému Ubuntu k zabezpečení vaší sítě. Ať už jste začínajícím uživatelem systému Linux nebo zkušeným správcem systému, z této příručky a tak či onak se dozvíte něco užitečného o iptables.
Iptables jsou předinstalovány na Ubuntu a většině distribucí založených na Debianu. Ubuntu také balí firewall GUFW, grafickou alternativu, kterou můžete použít pro práci s iptables.
POZNÁMKA: Chcete-li používat a konfigurovat iptables, budete v systému potřebovat oprávnění sudo. Další informace o sudo se dozvíte z následujícího tutoriálu.
Nyní, když víte, co je Iptables, pojďme se ponořit přímo dovnitř!
Jak používat iptables ke správě provozu IPv4?
Abyste mohli Iptables používat pro správu sítě a provozu IPv4, musíte pochopit následující:
Příkaz Iptables
Iptables nabízí výběr možností, které vám umožňují přizpůsobit a vyladit vaše pravidla iptables. Pojďme diskutovat o některých z těchto parametrů a podívejme se, co dělají.
POZNÁMKA: Můžete nakonfigurovat sadu pravidel, která spravují konkrétní podmnožinu, známou jako řetězce iptables.
Parametry Iptables
Než začneme vytvářet a konfigurovat pravidla iptables, pojďme nejprve porozumět základům iptables, jako je obecná syntaxe a výchozí argumenty.
Zvažte následující příkaz:
sudo iptables -I VSTUP -s 192.168.0.24 -j DROPVýše uvedený příkaz říká iptables, aby vytvořily pravidlo v řetězci. Pravidlo zruší všechny pakety z adresy IP 192.168.0.24.
Prozkoumejme příkaz, řádek po řádku, abychom mu lépe porozuměli.
- První příkaz iptables volá obslužný program příkazového řádku iptables.
- Další je -I argument použitý pro vložení. Argument vložení přidá pravidlo na začátek řetězce iptables a dostane tak přidělenou vyšší prioritu. Chcete-li přidat pravidlo na konkrétní číslo v řetězci, použijte argument -I následovaný číslem, kam má být pravidlo přiřazeno.
- Argument -s pomáhá určit zdroj. Proto používáme argument -s následovaný IP adresou.
- Parametr -j s iptables určuje skok na konkrétní cíl. Tato možnost nastavuje akci, kterou Iptables provede, jakmile existuje odpovídající paket. Iptables ve výchozím nastavení nabízí čtyři hlavní cíle, mezi ně patří: ACCEPT, DROP, LOG a REJECT.
Iptables nabízí výběr parametrů, které můžete použít ke konfiguraci různých pravidel. Mezi různé parametry, které můžete použít ke konfiguraci pravidel iptables, patří:
Parametr pravidla Iptables | Popis |
---|---|
-s -zdroj | Zadejte zdroj, kterým může být adresa, název hostitele nebo název sítě. |
-p -protokol | Určuje protokol připojení; například TCP, UDP atd. |
-d - cíl | Určuje cíl, kterým může být adresa, název sítě nebo název hostitele. |
-j - skočit | Nastaví akci iptables, kterou provede po nalezení paketu. |
-o -out-interface | Nastavuje rozhraní, přes které iptable odesílá paket. |
-i -v rozhraní | Nastaví rozhraní použité k vytvoření síťových paketů. |
-c-čítače sady | Umožňuje správci nastavit čítače bajtů a paketů pro určité pravidlo. |
-g -goto řetězec | Parametr určuje, že zpracování by mělo po návratu pokračovat v řetězci sady uživatelů. |
-f-fragment | Říká iptables, aby pravidlo aplikovaly pouze na druhý a následující fragmenty fragmentovaných paketů. |
Možnosti Iptables
Příkaz iptables podporuje širokou škálu možností. Mezi běžné patří:
Volba | Popis |
---|---|
-A - přidat | Přidá pravidlo na konec zadaného řetězce |
-D - odstranit | Odebere pravidlo ze zadaného řetězce |
-F-flush | Odebere všechna pravidla, jedno po druhém |
-L-seznam | Zobrazí všechna pravidla v zadaném řetězci |
-Vložím | Vloží pravidlo do zadaného řetězce (předáno jako číslo, pokud není zadáno žádné číslo; pravidlo bude přidáno nahoře) |
-C - kontrola | Dotazy na shodu pravidel; požadavek ve stanoveném pravidle |
-v -verbose | Při použití s parametrem -L zobrazí další podrobnosti |
-N-nový řetěz | Přidá nový uživatelsky definovaný řetězec |
-X - odstranit řetězec | Odebere konkrétní uživatelsky definovaný řetězec |
Tabulky Iptables
Linuxové jádro má výchozí tabulky, které obsahují sadu souvisejících pravidel. Tyto výchozí tabulky mají sadu výchozích řetězců, ale uživatelé si mohou pravidla přizpůsobit přidáním uživatelem definovaných pravidel.
POZNÁMKA: Výchozí tabulky budou silně záviset na vaší konfiguraci jádra a nainstalovaných modulech.
Zde jsou výchozí tabulky iptables:
1: Filtrační tabulky
Tabulka filtrů je výchozí tabulka, která obsahuje řetězce používané pro filtrování síťových paketů. Některé z výchozích řetězců v této tabulce zahrnují:
Řetěz | Popis |
---|---|
Vstup | Iptables používají tento řetězec pro všechny příchozí pakety do systému, tj.E., pakety směřující do zásuvek místní sítě. |
Výstup | Iptables používají výstupní řetězec pro lokálně generované pakety, tj.E., pakety vycházející ze systému. |
Vpřed | Tento řetězec je to, co Iptables používají pro pakety směrované nebo předávané přes systém. |
2: Tabulky NAT
Tabulka NAT nebo síťových adres je směrovací zařízení používané k úpravě zdrojových a cílových IP adres v síťovém paketu. Hlavní použití tabulky NAT spočívá v propojení dvou sítí v rozsahu soukromých adres s veřejnou sítí.
NAT byl vyvinut pro podporu maskování skutečných IP adres, což umožňuje dosahování rozsahů soukromých IP adres na vnější síť. To pomáhá chránit podrobnosti o interních sítích před odhalením ve veřejných sítích.
Tabulka NAT se použije, když paket zahájí nové připojení.
Iptables mají výchozí tabulku pro adresování NAT. Tato tabulka má tři hlavní řetězce:
Řetěz | Popis |
---|---|
OBRÁZKOVÁNÍ | Umožňuje úpravu informací o paketech před příjezdem do řetězce INPUT - používá se pro příchozí pakety |
VÝSTUP | Vyhrazeno pro pakety vytvořené místně, tj.E., než dojde k směrování v síti |
POSTROUTING | Umožňuje úpravu odchozích paketů - Pakety opouštějící řetězec VÝSTUP |
Níže uvedený diagram ukazuje přehled tohoto procesu na vysoké úrovni.
Pomocí níže uvedeného příkazu můžete zobrazit své směrovací tabulky NAT.
iptables -t nat -n -v -L3: Mangle Tables
Manglová tabulka se používá hlavně pro speciální úpravy paketů. Jednoduše řečeno, používá se k úpravě hlaviček IP síťového paketu. Modifikace paketů může zahrnovat změnu hodnoty TTL paketu, změnu platného síťového přeskakování pro paket atd.
Tabulka obsahuje následující výchozí řetězce:
Řetěz | Popis |
---|---|
OBRÁZKOVÁNÍ | Vyhrazeno pro příchozí pakety |
POSTROUTING | Používá se pro odchozí pakety |
VSTUP | Používá se pro pakety přicházející přímo na server |
VÝSTUP | Používá se pro místní pakety |
Vpřed | Vyhrazeno pro pakety směrované systémem |
4: Surové tabulky
Hlavním účelem tabulky raw je konfigurace výjimek pro pakety, které nejsou určeny ke zpracování sledovacím systémem. Nezpracovaná tabulka nastaví značku NOTRACK na pakety a vyzve funkci conntrack k ignorování paketu.
Conntrack je síťová funkce jádra Linuxu, která umožňuje jádru Linuxu sledovat všechna síťová připojení a umožňuje jádru identifikovat pakety tvořící síťový tok.
Surový stůl má dva hlavní řetězce:
Řetěz | Popis |
---|---|
OBRÁZKOVÁNÍ | Vyhrazeno pro pakety přijaté síťovými rozhraními |
VÝSTUP | Vyhrazeno pro pakety iniciované místními procesy |
5: Tabulka zabezpečení
Primární použití této tabulky je nastavení interního bezpečnostního mechanismu vylepšení zabezpečení pro Linux (SELinux), který označuje na paketech. Bezpečnostní značku lze použít na každé připojení nebo paket.
Používá se pro povinná pravidla kontroly přístupu a je druhou tabulkou přístupnou po tabulce filtrů. Nabízí následující výchozí řetězce:
Řetěz | Popis |
---|---|
VSTUP | Vyhrazeno pro příchozí pakety do systému |
VÝSTUP | Používá se pro lokálně vytvořené pakety |
VPŘED | Používá se pro pakety směrované systémem |
Když jsme se podívali na výchozí Iptables, pojďme o krok dále a proberme, jak pracovat s pravidly iptables.
Jak pracovat s pravidly iptables?
Pravidla Iptables se aplikují vzestupně. To znamená, že první pravidlo v konkrétní sadě je použito jako první, následuje druhé, potom třetí atd., Až do posledního.
Z důvodu této funkce vám iptables zabrání v přidání pravidel do sady pomocí parametru -A; musíte použít -I, následované číslem nebo jeho vyprázdněním pro přidání do horní části seznamu.
Zobrazuji Iptables
Chcete-li zobrazit své iptables, použijte příkaz iptables -L -v pro IPv4 a ip6tables -L -v pro IPv6.
Vkládání pravidel
Chcete-li vložit pravidla do sady, musíte je umístit v přesném pořadí a respektovat pravidla použitá stejným řetězcem. Seznam vašich pravidel iptables můžete zobrazit pomocí výše uvedeného příkazu:
sudo iptables -L -vChcete-li například vložit pravidlo umožňující příchozí připojení k portu 9001 přes TCP, musíme zadat číslo pravidla do řetězce INPUT, který dodržuje pravidla provozu pro web.
sudo iptables -I INPUT 1 -p TCP --dport 9001 -m state --state NEW -j ACCEPTJakmile zobrazíte aktuální iptables, mělo by se vám v sadě zobrazit nové pravidlo.
sudo iptables -L -v
Výměna pravidel
Funkce nahrazení funguje podobně jako vložení, ale používá příkaz iptables -R. Například k úpravě výše uvedeného pravidla a nastavení odepření portu 9001 jsme:
sudo iptables -R VSTUP 1 -p TCP --dport 9001 -m stav --state NOVÝ -j ODMÍTNOUTOdstranění pravidla
Chcete-li pravidlo odstranit, předáme číslo pravidla. Chcete-li například odstranit výše uvedené pravidlo, můžeme zadat jako:
sudo iptables -D VSTUP 1Ve většině distribucí Linuxu jsou iptables prázdné pro IPv4 i IPv6. Pokud jste tedy nepřidali žádné nové pravidlo, získáte výstup podobný tomu, který je uveden níže. To je riskantní, protože to znamená, že systém umožňuje veškerý příchozí, odchozí a směrovaný provoz.
Pojďme se zabývat tím, jak konfigurovat iptables:
Jak konfigurovat iptables?
Existuje mnoho způsobů, jak konfigurovat pravidla iptables. Tato část vám na příkladech ukáže, jak nastavit pravidla pomocí IP adres a portů.
Blokování a povolení provozu porty
K zablokování nebo povolení veškerého provozu v síťovém rozhraní můžete použít konkrétní port. Zvažte následující příklady:
sudo iptables -A INPUT -j ACCEPT -p TCP - cíl-port 1001 -i wlan0Výše uvedené příkazy umožňují provoz na portu 1001 TCP na rozhraní wlan0.
sudo iptables -A VSTUP -j DROP -p TCP - cíl-port 1001 -i wlan0Tento příkaz dělá opak výše uvedeného příkazu, protože blokuje veškerý provoz na portu 1001 na wlan0.
Zde je podrobná kontrola příkazu:
- První argument (-A) přidává nové pravidlo na konec řetězce tabulky.
- Argument INPUT přidá zadané pravidlo do tabulky.
- Argument DROP nastavuje akci, která má být provedena jako ACCEPT a DROP. To znamená, že jakmile je paket spárován, bude zahozen.
- -p specifikuje protokol jako TCP a umožňuje předat provoz na jiných protokolech.
- -destination-port nastavuje pravidlo pro přijetí nebo zrušení veškerého provozu určeného pro port 1001.
- -i
říká iptables, aby aplikovaly pravidlo na provoz přicházející na rozhraní wlan0.
POZNÁMKA: Iptables nerozumí aliasům síťového rozhraní. V systému s více než jedním virtuálním rozhraním tedy budete muset definovat cílovou adresu ručně a explicitně.
Například:
sudo iptables -A VSTUP -j DROP -p TCP - cíl-port 1001 -i wlan0 -d 192.168.0.24Seznam povolených a zakázaných IP adres
Pravidla brány firewall můžete vytvořit pomocí iptables. Jedním příkladem je zastavení veškerého provozu a povolení síťového provozu pouze z explicitních adres IP.
Příklad:
iptables -A VSTUP -m stav --stát ZAVEDENO, SOUVISEJÍCÍ -j PŘIJMOUTiptables -A INPUT -i lo -m komentář - komentář "Povolit připojení zpětné smyčky" -j PŘIJMOUT
iptables -A INPUT -p icmp -m komentář - komentář „Povolit Pingu pracovat podle očekávání“ -j
AKCEPTOVAT
iptables -A VSTUP -s 192.168.0.1/24 -j PŘIJMOUTiptables -A VSTUP -s 192.168.0.0 -j PŘIJMOUT
iptables -P INPUT DROP
iptables -P VPŘED DROP
První řádek nastavuje pravidlo pro povolení všech zdrojových IP adres v 192.168.0.Podsíť 1/24. Můžete také použít CIDR nebo jednotlivé adresy IP. V následujícím příkazu jsme nastavili pravidlo umožňující veškerý provoz připojený k existujícím připojením. V závěrečných příkazech jsme nastavili zásady pro INPUT a FORWARD, aby všechny zrušily.
Používání iptables na IPv6
Příkaz Iptables funguje pouze na IPv4. Chcete-li použít iptables na IPv6, musíte použít příkaz ip6tables. Ip6tables používá tabulky raw, filter, security a mangle. Obecná syntaxe pro ip6tables je podobná iptables a podporuje také odpovídající možnosti iptables, jako je append, delete atd.
Pro více informací zvažte použití stránek manuálu ip6tables.
Příklad sad pravidel iptables pro zabezpečení sítě
Vytvoření vhodných pravidel brány firewall bude záviset hlavně na službě spuštěné v systému a na používaných portech. Zde je několik základních pravidel konfigurace sítě, která můžete použít k zabezpečení systému:
1: Povolit provoz rozhraní Loopback a odmítnout všechny zpětné smyčky přicházející z jiných rozhraní
iptables -A INPUT -i lo -j ACCEPT (Můžete také použít ip6tables)iptables - VSTUP ! -já lo -s 127.0.0.0 -j ODMÍTNOUT (použitelné i tabulky ip6)
2: Odmítnout všechny požadavky na ping
iptables -A INPUT -p icmp -m state --state NEW --icmp-type 8 -j REJECT3: Povolte připojení SSH
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPTToto jsou ukázkové příkazy, které můžete použít k zabezpečení systému. Konfigurace však bude silně záviset na tom, k čemu nebo komu chcete přistupovat k různým službám.
POZOR: Pokud dáváte přednost úplnému deaktivaci protokolu IPv6, nezapomeňte řádek odkomentovat, protože to zpomalí proces aktualizace:
precedence :: ffff: 0: 0/96 100 nalezeno v / etc / gai.konf .
Je to proto, že správce balíčků APT řeší zrcadlenou doménu v IPv6 kvůli aktualizaci apt-get.
Jak nasadit pravidla iptables?
Chcete-li nasadit své iptables na Ubuntu nebo jiné systémy založené na Debianu, začněte vytvořením dvou souborů, ip4 a ip6, pro jejich příslušné adresy IP.
V obou souborech přidejte pravidla, která chcete vynutit, do příslušných souborů - pravidla IPv4 do souboru ip4 a pravidla IPv6 do souboru ip6.
Dále musíme pravidla importovat pomocí příkazu:
sudo iptables-restore < /tmp/ip4 (replace filename for IPv6)Poté můžete pomocí příkazu ověřit, zda byla pravidla použita:
sudo iptables -L -vRychlý průvodce pro iptables
Ubuntu a běžné distribuce založené na Debianu jsou dodávány s balíčkem iptables-persistent, který umožňuje snadné použití pravidel brány firewall po restartu. Balíček obsahuje soubory, které můžete použít k nastavení pravidel pro IPv4 nebo IPv6, a lze je automaticky použít při spuštění.
Pravidla brány firewall můžete také použít pomocí UFW nebo GUFW. Zvažte následující tutoriál, kde se dozvíte, jak používat UFW.
Jak nainstalovat iptables-persistent?
Ujistěte se, že máte v systému nainstalované trvalé iptables. Pomocí dpkg zkontrolujte, zda máte nainstalovaný balíček.
Pokud ne, použijte následující příkaz:
sudo apt-get install iptables-persistent
Zobrazí se dvakrát výzva k uložení aktuálních pravidel IPv4 i IPv6. Kliknutím na Ano uložíte obě pravidla.
Kliknutím na Ano uložte IPv6.
Po dokončení instalace ověřte, zda máte podadresář iptables, jak je znázorněno na obrázku níže.
Nyní můžete použít pravidla.v4 a pravidla.v6 pro přidání pravidel iptables a budou automaticky aplikována pomocí iptables-persistent. Soubory jsou jednoduché textové soubory, které můžete snadno upravit pomocí libovolného textového editoru podle vašeho výběru.
Závěr
V tomto tutoriálu jsme probrali základy iptables. Počínaje prací s iptables, základními příkazy, výchozími tabulkami iptables a parametry.
Z toho, co jste se dozvěděli, byste měli mít možnost používat iptables k vytváření pravidel brány firewall, které vám pomohou zabezpečit váš systém.