Neoprávněný přístup a hackování serverů jsou vážnými hrozbami, a proto byste měli implementovat firewall jako součást své techniky zabezpečení sítě. Znalost toho, jak pracovat s pravidly Iptables, je jedním z primárních prostředků ke snížení těchto rizik na vašich systémech Linux. Tento výukový program vás provede seznámením se základními pojmy brány firewall, jako je iptables zobrazit pravidla a odstranit pravidla iptables v Ubuntu, který vám pomůže spouštět jednoduché příkazy, abyste toho dosáhli. Než probereme, jak vypsat pravidla iptables nebo je odstranit, promluvme si o tom, co jsou pravidla iptables a proč je používáme?
Co je to Iptables?
iptables je nástroj brány firewall příkazového řádku, který umožňuje nebo blokuje provoz přes politické řetězce. Když se ve vašem systému pokusí vytvořit připojení, iptables hledá v seznamu pravidlo, které jim odpovídá, což vám poskytne správného pomocníka v zabezpečení sítě. Pokud nenajde žádné pro připojení, uchýlí se k výchozí akci.
iptables jsou téměř vždy předinstalované na jakémkoli Linux distribuce. K aktualizaci nebo instalaci můžete použít následující příkaz:
sudo apt-get install iptables
Proč používáme Iptables?
Jako linuxový firewall příkazového řádku umožňuje iptables správcům systému zpracovávat příchozí a odchozí provoz pomocí konfigurovatelných pravidel tabulek. Iptables používají sadu tabulek s řetězci obsahující sadu vestavěných nebo uživatelem definovaných pravidel.
Jak bylo zmíněno v předchozí části, iptables hraje zásadní roli v zabezpečení sítě pro většinu systémů Linux. Zbytek tohoto článku se zaměřuje hlavně na popis všech pravidel seznamu iptables, včetně konceptů, jak zobrazit a odstranit pravidla iptables.
Konkrétněji, tento článek pojednává o některých základních úlohách iptables, aby vám ukázal, jak vypsat pravidla, odstranit čítače paketů a bajtů, odebrat pravidlo Iptables, vyprázdnit řetězce a odstranit všechny řetězce a přijmout veškerý provoz.
Kompletní průvodce Iptables v Ubuntu
Před procházením pravidel show iptables si uvědomte, že musíte používat server Linux s nainstalovaným příkazem iptables. Kromě těchto požadavků je nezbytné mít práva sudo. Při práci s firewally dávejte pozor, abyste se nezamykali ze svého serveru blokováním provozu SSH (port:22, ve výchozím nastavení). Pokud ztratíte přístup kvůli nastavení brány firewall, možná se k ní budete muset připojit přes mimopásmovou konzolu, abyste to opravili.
Přečtěte si také: Jak změnit port SSH v Linuxu | Rychlý průvodce krok za krokem k vašemu portu SSH
Pravidla výpisu podle specifikace
Můžete si prohlédnout svá aktivní pravidla iptables v tabulce nebo jako seznam specifikací pravidel. Téměř obě metody poskytují stejné informace v různých formátech. Chcete-li vypsat všechna pravidla aktivních iptables podle specifikace, musíte spustit příkaz iptables s -S varianta:
sudo iptables -S
Po spuštění tohoto příkazu iptables show rules uvidíte výstup takto:

Vypsání konkrétního řetězce
Pokud chcete omezit výstup show iptables na konkrétní řetězec jako INPUT, OUTPUT nebo TCP, můžete zadat název řetězce přímo za volbou -S. Například následující příkaz iptables show rules pomáhá specifikovat v řetězci TCP:
sudo iptables -S TCP

Jak jsme zmínili dříve, existuje další způsob, jak dosáhnout toho, aby pravidla iptables show byla splněna: zobrazení pravidel iptables jako tabulky pravidel. Pojďme si projít tuto techniku.
Výpis pravidel jako tabulky
Použití příkazu k zobrazení pravidel iptables v tabulkách může pomoci porovnat různá pravidla. Musíte spustit následující příkaz show iptables s -L varianta pro výstup všech těchto aktivních pravidel do tabulky:
sudo iptables -L
Tento příkaz zobrazí všechna aktuální pravidla seřazená podle řetězců. Existuje způsob, jak omezit výstup na konkrétní řetězec, jako je INPUT, OUTPUT, TCP atd.; musíte zadat název řetězce přímo za volbou -L. Zde je příklad omezení pravidel show iptables na řetězec INPUT:
sudo iptables -L INPUT

První řádek výše uvedeného výstupu zobrazuje název řetězce (v tomto případě INPUT) a jeho výchozí politiku (DROP). Následující řádek obsahuje záhlaví každého sloupce v tabulce a pravidla řetězce. Projdeme si je, abychom vám pomohli se je všechny naučit:
- Cíl: Pokud paket odpovídá pravidlu, cíl určí, co s ním má být provedeno. Paket můžete nechat přijmout, zahodit, zaprotokolovat nebo poslat do jiného řetězce, aby byl porovnán s více pravidly.
- prot: protokol (jako TCP, udp, ICMP nebo všechny)
- opt: označuje možnosti IP (málo používané)
- zdroj: zobrazuje zdrojovou IP adresu/podsíť provozu
- cíl: představuje cílovou IP adresu/podsíť provozu
Sloupec bez popisku naznačuje možnosti pravidla a je to jakákoli část pravidla, která nebyla uvedena v předchozích sloupcích. Tyto informace mohou být cokoli, od zdrojových a cílových portů až po stav připojení paketu.
Přečtěte si také: Nainstalujte OpenVPN na VPS – OpenVPN Client Setup 🔑
Jak zobrazit počty paketů a agregovanou velikost?
Při vypisování pravidel iptables můžeme zobrazit počet paketů a agregovanou velikost paketů v bajtech, které odpovídají každému konkrétnímu pravidlu iptables; to je často užitečné pro pochopení, která pravidla odpovídají paketům. Musíte použít -L a -v možnosti společně dosáhnout tento.
Zde je příklad, ve kterém znovu použijeme řetězec INPUT s volbou -v:
sudo iptables -L INPUT -v

Všimněte si, že náš seznam má nyní dva další pojmenované sloupce pkts a bajtů. Naučili jsme se různé způsoby, jak nechat iptables zobrazit všechny příkazy pravidel, a nyní je čas vědět, jak resetovat počty paketů a velikost agregace.
Jak resetovat počty paketů a velikost agregace?
Pokud chcete pro svá pravidla vymazat nebo nulovat čítače paketů a bajtů, musíte použít volbu - Z. Také se resetují, pokud dojde k restartu, což je užitečné, pokud chcete zjistit, zda server přijímá nový provoz odpovídající vašim stávajícím pravidlům.
Můžete vymazat počítadla pro všechny řetězce a pravidla pomocí -Z varianta sám o sobě:
sudo iptables -Z
Chcete-li odebrat čítače pro všechna pravidla v určitém řetězci, musíte použít volbu -Z a zadat řetězec. Například následující příkaz se používá k vymazání čítačů řetězce INPUT:
sudo iptables -Z INPUT
Pokud chcete odebrat čítače pro konkrétní pravidlo, musíte přesně uvést název řetězce a číslo pravidla. Můžete například provést následující příkaz k vynulování čítačů pro první pravidlo v řetězci INPUT:
sudo iptables -Z INPUT 1
Kromě znalosti příkazů iptables show all rules a způsobů resetování počítadel paketů a bajtů iptables je dobré vědět, jak odstranit pravidlo iptables.
Přečtěte si také: Jak nainstalovat server PPTP VPN na váš VPS
Jak odstranit pravidla iptables?
K odstranění pravidel Iptables nebo dokonce k odstranění všech pravidel v řetězci můžete použít více příkazů. Zde budeme diskutovat o těchto metodách,
Odebrat pravidla podle specifikace
Jedním ze způsobů, jak odstranit pravidla iptables, je provést to prostřednictvím specifikace pravidla. Umožňuje vám spustit příkaz iptables s Možnost -D a specifikace pravidel. Pokud chcete odstranit pravidla pomocí této techniky, můžete použít výstup seznamu pravidel, iptables -S, jako nápovědu.
Chcete-li například odstranit pravidlo, které zahazuje neplatné příchozí pakety (-A INPUT -m conntrack –ctstate INVALID -j DROP), můžete spustit následující příkazový řádek:
sudo iptables -D INPUT -m conntrack --ctstate INVALID -j DROP
Věnujte pozornost tomu, že možnost -A slouží k označení pozice pravidla v době vytvoření a zde by měla být vyloučena.
Odstraňte pravidla podle řetězce a čísla
Další metoda, kterou můžete použít k odstranění pravidel iptables, je přes její řetězec a číslo řádku. Zadejte následující příkaz pro výběr čísla řádku pravidla, seznam pravidel ve formátu tabulky a přidání – volba čísel řádků:
sudo iptables -L --line-numbers

Po spuštění budou mít všechna pravidla iptables své číslo řádku, které se zobrazí v záhlaví num.
Když víte, které pravidlo byste chtěli smazat, mějte na paměti jeho řetězec a číslo řádku. Musíte použít příkaz iptables -D s řetězcem a číslem pravidla. Pokud například chcete odstranit vstupní pravidlo, které zahazuje neplatné pakety, můžete vidět, že jde o pravidlo 3 řetězce INPUT. Spusťte tedy tento příkaz:
sudo iptables -D INPUT 3
Jak propláchnout řetězy?
Existuje způsob, jak odstranit všechna pravidla Iptables v řetězci, kterému říkáme proplachování řetězu. Zde se budeme zabývat různými způsoby, jak toho dosáhnout. Než půjdete dál, věnujte pozornost tomu, abyste nebyli uzamčeni ze serveru přes SSH při proplachování řetězce výchozí politikou drop nebo deny. Protože Pokud tak učiníte, možná se budete muset připojit přes konzolu, abyste opravili svůj přístup.
Propláchněte jednoduchý řetěz
Pro vyprázdnění konkrétního řetězce nebo jinými slovy smazání všech pravidel v řetězci můžete použít -F nebo ekvivalent – možnost splachování a název vybraného řetězce. Řekněme, že chcete odstranit všechna pravidla v řetězci INPUT; co dělat Je to snadné, spusťte následující příkaz:
sudo iptables -F INPUT
Propláchněte všechny řetězy
Chcete-li odstranit všechny řetězy nebo je propláchnout, můžete použít možnost -F nebo ekvivalentní možnost –flush:
sudo iptables -F
Jak vyprázdnit všechna pravidla, odstranit všechny řetězce a přijmout vše?
V tomto bodě popíšeme, jak vyprázdnit všechna pravidla brány firewall, tabulky a řetězce a povolit veškerý síťový provoz. Věnujte prosím pozornost tomu, že tento proces účinně deaktivuje firewall. Touto částí byste se měli řídit pouze v případě, že chcete začít znovu s konfigurací brány firewall.
Nejprve musíte nastavit výchozí zásady pro každý z vestavěných řetězců na ACCEPT. Primárním důvodem, proč to děláme, je zajistit, že nebudete uzamčeni ze serveru pomocí SSH:
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
Pak musíte spláchnout nat a mandlové stoly, spláchnout všechny řetězy (-F)a odstraňte všechny jiné než výchozí řetězce (-X) takhle:
sudo iptables -t nat -F
sudo iptables -t mangle -F
sudo iptables -F
sudo iptables -X
Po spuštění předchozích příkazů firewall povolí veškerý síťový provoz. Pokud chcete nyní vypsat svá pravidla, uvidíte, že žádná nejsou; zůstávají pouze tři výchozí řetězce, jako jsou INPUT, FORWARD a OUTPUT.
Jak nastavit iptables v Ubuntu?
Stejně jako u každého základního chování brány firewall lze pravidla iptables číst v pořadí uvedeném v každém řetězci, což znamená, že budete muset nastavit pravidla ve správném pořadí. Jakmile přidáte nová pravidla, budou přidána na konec seznamu pravidel. Nová pravidla můžete přidat na konkrétní pozici seznamu jejich vložením pomocí iptables -I <index> -příkaz. The <index> je pro číslo objednávky, do kterého chcete vložit pravidlo do tohoto příkazu. Pomocí následujícího příkazu můžete zjistit, které indexové číslo zadat:
sudo iptables -L --line-numbers
Číslo na začátku každého řádku pravidla ukazuje pozici v řetězci. Chcete-li přidat nové pravidlo nad konkrétní existující pravidlo, musíte použít indexové číslo tohoto existujícího pravidla. Pokud například chcete přidat nové pravidlo na začátek řetězce, musíte použít následující příkaz s indexovým číslem 1:
sudo iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT
Jak se liší iptables od firewalld?
Jak iptables, tak firewalld jsou praktické nástroje pro správu firewallů na různých linuxových systémech výslovně navržené pro filtrování paketů (statické filtrování). Filtrování paketů je strategie brány firewall, která uživatelům umožňuje řídit přístup ke konkrétní síti prostřednictvím správy příchozích a odchozích informačních paketů. Buď jim umožňují projít, nebo je zakázat na základě předem nastavených pravidel brány firewall o jejich zdrojových a cílových protokolech, portech a IP adresách. Tato pravidla poskytují velmi účinné bezpečnostní mechanismy, díky nimž je filtrování informačních paketů skvělou obranou proti zařízením směrovaným mimo systémovou LAN (Local Area Network).
Všimněte si, že firewalld byl původně představen jako software pro práci s iptables, který uživatelům usnadňuje navigaci. Po tomto představení firewalld a iptables je porovnejme podrobněji.
iptables vs firewalld: Konfigurace systému
Firewall a iptables využívají různé konfigurace a výchozí nastavení úložiště. U iptables každá změna znamená vymazání všech starých pravidel a přečtení nových, takže systém se musí restartovat. Při použití brány firewall se však pravidla znovu nevytvářejí; místo toho se provedené odlišnosti a úpravy použijí ke změně existujících pravidel, takže je můžete vidět, jak se projeví za běhu.
iptables vs firewalld: Uživatelské rozhraní
Firewalld používá grafické uživatelské rozhraní (GUI). Přesto iptables využívá rozhraní příkazového řádku (CLI), které může být pro některé lidi náročné při přístupu k pravidlům brány firewall jádra Linuxu pomocí iptables, což činí firewalld jednodušší možností. Bylo by nejlepší vzít v úvahu, že iptables mají kratší dobu odezvy, protože používáte pouze krátké příkazy. Všechny tyto věci stranou, oba mají své případy použití, takže si vyberte ten, se kterým se vám lépe pracuje.
Závěrečné myšlenky: iptables ukazují pravidla
Iptables je vysoce flexibilní nástroj brány firewall speciálně vytvořený pro operační systémy Linux. Nezáleží na tom, zda jste začátečník v Linuxu nebo profesionální správce systému; existuje nějaký způsob, jak vám mohou být užitečná pravidla iptables. Tento článek představoval především základní příkazy pro tento nástroj brány firewall, včetně pravidel pro zobrazení pravidel iptables a pravidel pro odstranění iptables, s cílem stručně zhodnotit možnosti systému Linux. Kromě toho můžete použít náš Linuxová VPS hostingová řešení využít skutečný potenciál tohoto fantastického operačního systému. Ve společnosti cloudzy nabízíme různé plány Linux VPS s podporou KVM vhodné pro více případů použití, jako je webhosting, nasazení webové aplikace nebo dokonce nastavení prostředí pro vývoj, testování a automatizaci kódu.
FAQ
Jak vypsat všechna pravidla Linuxu iptables podle specifikace?
Pokud chcete vypsat všechna aktuálně aktivní pravidla iptables podle jejich specifikace nebo funkčnosti, můžete tak učinit příkazem iptables následovaným příkazem -S vlajka. Věnujte pozornost využití sudo klíčové slovo v tomto případě:
sudo iptables -S
Jak odstranit pravidla iptables?
Chcete-li odebrat konkrétní řetězec, který odstraní všechna pravidla v řetězci, musíte použijte volbu -F nebo –flush a název řetězce. Řekněme, že chceme smazat všechna pravidla ve OUTPUT řetězci, co dělat? No, musíte provést tento příkaz:
sudo iptables -F VÝSTUP
Jak fungují iptables v Ubuntu?
Brána firewall iptables porovnává síťový provoz se sadou pravidel. Pravidla iptables specifikují charakteristiky paketu, aby odpovídaly pravidlu, a jaká akce by měla být provedena, pokud se pakety shodují. Samozřejmě existuje mnoho možností, jak nastavit, které pakety vyhovují konkrétnímu pravidlu.
Vstoupí pravidla iptables v platnost okamžitě? Proč?
Ano, pravidla iptables se projeví okamžitě; protože váš skript se připojuje k řetězcům INPUT a OUTPUT a vaše pravidla se přidávají na konec těchto řetězců.