GNU/Linux >> Znalost Linux >  >> Linux

Jak na to:Linux General – Základní IPTables přes příkazový řádek

Úvod

Základní průvodce zabezpečením přístupu k vašemu serveru pomocí iptables.

Předpoklady

Server se systémem CentOS 6.5 nebo starším (tyto pokyny mohou fungovat i pod jinými distribucemi Linuxu, i když s malými změnami v závislosti na distribuci; tento článek bude fungovat od CentOS 6.5)

Pokud ještě nemáte server, zvažte spuštění virtuálního soukromého serveru od Atlantic.Net

iptables nainstalován

Začínáme se základními IPTtables pomocí příkazového řádku

Nejprve ověřte, že je iptables nainstalován a aktivní (všechny tyto příkazy budou vyžadovat oprávnění root, takže se ujistěte, že váš uživatel má k těmto oprávněním přístup – nebo, chcete-li, povýšte na root a vyhněte se nutnosti uvádět všechny vaše příkazy pomocí 'sudo')

sudo service iptables status

stav služby iptables

Pro tento nový server neběží iptables, takže v současné době povoluje veškerý provoz. Není dobré. Pojďme to napravit.

Abychom pokryli některé základy, nastavíme výchozí chování tak, aby byl veškerý provoz odstraněn a povolen pouze určitý provoz (toto je bezpečnostní postup často nazývaný „bílá listina“). Nejprve to vše provedeme na příkazovém řádku a poté to nastavíme tak, aby tato pravidla byla trvalá i po restartu.

Nejprve spusťte službu a poté zkontrolujte, co běží.

sudo service iptables start
sudo service iptables status

Všimněte si, že výchozí zásada v každém z těchto řetězců je přijímat provoz. Změňme výchozí nastavení pro INPUT, aby se snížil provoz. (UPOZORNĚNÍ:ujistěte se, že máte alespoň jedno pravidlo ACCEPT v řetězci INPUT, které povoluje IP adresu vaší pracovní stanice nebo port 22, pokud k tomuto serveru přistupujete vzdáleně přes ssh. Ve výše uvedeném výstupu stavu iptables si všimněte, že provoz TCP port 22 (“tcp dpt:22”) je akceptován. Pokud by toto pravidlo neexistovalo, mohli bychom se z tohoto serveru zamknout!)

sudo iptables -P INPUT DROP

-P ‘ znamená, že provedeme změnu celkových zásad, ‘INPUT ‘ je konkrétní řetězec k úpravě a ‘DROP ‘ je výchozí cíl zásad.

Nyní přidáme některá konkrétní pravidla.

Nejprve povolíme přístup pro HTTP a HTTPS provoz, který chceme mít přístupný z jakékoli IP adresy. Při přidávání pravidel do iptables je důležité věnovat pozornost pořadí těchto pravidel, protože iptables analyzuje pravidla v pořadí a zpracuje provoz podle cíle uvedeného v pravidle a poté opustí řetězec (ve většině případů). Ve výstupu výše si všimněte, že poslední pravidlo odmítne provoz. Pokud na konec tohoto řetězce připojíme pravidlo povolení, nebude nikdy vyvoláno, protože výše uvedené pravidlo pro odmítnutí odmítne provoz a přestane zpracovávat všechna následující pravidla v řetězci INPUT.

Pojďme tedy zjistit, na které číslo řádku chceme vložit naše nové pravidlo:

sudo iptables -nL INPUT --line-numbers

Stav iptables

-nL ‘ kombinuje několik příznaků:‘n ‘ přeskočí překlad DNS (takže můžeme vidět, které IP adresy každé pravidlo zkoumá); „L ‘ uvádí všechna pravidla v uvedeném řetězci. Poslední možnost, „–čísla-řádků ‘ přiměřeně přidá čísla řádků ke každému záznamu pravidla. (Tento výstup je podobný tomu, co můžete získat pomocí ‘stavu iptables sudo služby “, ale tento příkaz poskytuje pravidla pro všechny řetězce, zatímco „iptables ‘ výše uvedený příkaz nám poskytuje prostředky k zúžení rozsahu výstupu podle jednotlivých řetězců.)

V tomto případě vložíme naše pravidla těsně nad pravidlo odmítnutí:

sudo iptables -I INPUT 5 -m tcp -p tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT 6 -m tcp -p tcp --dport 443 -j ACCEPT

Seznam iptables s čísly řádků

Co to všechno znamená?

* ‘-I ‘ označuje, že toto pravidlo vložíme na uvedené číslo řádku (číslo za názvem řetězce, do kterého pravidlo vkládáme).

* ‘-m tcp -p tcp –dport 80 ‘ určuje, že toto pravidlo bude odpovídat paketům TCP přicházejícím s cílovým portem 80 (nebo 443 v případě druhého pravidla).

* ‘-j PŘIJMOUT ‘ označuje, že pokud je toto pravidlo splněno, pak „přeskočit“ tento paket do cíle ACCEPT (což je dlouhý způsob, jak říci, že je povoleno projít).

Všimněte si, že jakmile zadáme první příkaz, pravidlo odmítnutí bude posunuto dolů na řádek číslo 6, takže to je důvod, proč se druhé pravidlo vloží na řádek číslo 6.

Nyní přidáme pravidlo pro povolení přístupu z konkrétní IP adresy bez ohledu na typ provozu nebo portu.

sudo iptables -I INPUT 4 -s 192.168.0.1 -j ACCEPT

Zde toto pravidlo vkládáme těsně nad pravidlo povolující veškerý provoz ssh na řádku 4. „-s ‘ určuje zdrojovou IP. Stejně snadno jsme mohli povolit rozsah zdrojových IP pomocí notace CIDR, takže povolit celý rozsah 192.168.0.0/24:

sudo iptables -I INPUT 4 -s 192.168.0.0/24 -j ACCEPT

Toto pravidlo bychom mohli upřesnit – řekněme, že chceme mít možnost ssh na tento server pouze z této adresy 192.168.0.1. Pojďme také do toho a přidejte komentář!

sudo iptables -R INPUT 4 -s 192.168.0.1 -m tcp -p tcp --dport 22 -j ACCEPT -m comment --comment "Only home workstation can ssh in"

Za prvé, protože toto pravidlo nahradí naše dřívější pravidlo, poznamenejte si ‚-R „–to znamená „nahradit“ na uvedeném čísle řádku namísto vložit. Toto pravidlo kombinuje kontrolu zdrojové IP a cílového portu, takže aby bylo možné provoz povolit, musíme oba tyto parametry shodovat. Poslední možnost shody pro komentář je volitelná, ale může být velmi užitečná při vypisování pravidel iptables stručně uvést, proč je toto pravidlo zavedeno – což může být velmi užitečné, když se vaše pravidla iptables více zapojí nebo když existují pravidla, která jsou Není okamžitě samozřejmé, když je uvedeno v seznamu (jako je rozhraní pro zpětnou smyčku, ke kterému jsem přidal komentář dříve).

V tomto okamžiku bychom mohli odstranit pravidlo umožňující jakékoli IP přístup k tomuto serveru přes ssh:

sudo iptables –D INPUT 5

(„-D ’ určuje, že uvedené číslo řádku v tomto řetězci bude smazáno.)

Po dokončení přidávání pravidel nezapomeňte uložit:

sudo service iptables save

Tím se uloží vaše aktuálně spuštěná pravidla iptables do /etc/sysconfig/iptables, takže při příštím restartu serveru se automaticky načtou pravidla, která jste sem zadávali. Pokud chcete upravit svůj soubor iptables s popisnějšími komentáři (nebo spravovat větší a složitější sadu pravidel brány firewall), přečtěte si článek Základní konfigurace souboru IPTables.


Linux
  1. Jak restartovat Linux pomocí příkazového řádku

  2. Jak na to:Linux General – IPTtables obecně

  3. Jak zjistím konkrétní variantu Linuxu pomocí příkazového řádku?

  1. Jak vymazat historii příkazového řádku BASH v Linuxu

  2. Jak používat Su Command v Linuxu

  3. zkrátit tabulku pomocí příkazového řádku v Linuxu

  1. Jak vytvořit soubor v Linuxu pomocí terminálu/příkazového řádku

  2. Jak vypnout nebo restartovat Linux pomocí příkazového řádku

  3. Jak generovat obrázky Cmyk pomocí příkazového řádku v systému Linux?