Zpět na blog

Konfigurace firewallu pomocí UFW na Ubuntu 18.04

Konfigurace firewallu pomocí UFW na Ubuntu 18.04

A Firewall je jednou z klíčových komponent zabezpečení systému. Je zodpovědný za správu příchozích a odchozích připojení v síti. Je to primární obranná linie pro vaše servery a data. Proto je nanejvýš důležité mít dobře nakonfigurovaný firewall. V této příručce vás provedeme kroky nastavení firewallu pomocí UFW na Ubuntu 18.04.

UFW na Ubuntu

Termín UFW znamená „Uncomplicated Firewall“ (Nekomplikovaný firewall). Je to výchozí firewallový program, který je předinstalovaný v Ubuntu. UFW je ve skutečnosti rozhraní pro iptables. Cílem UFW je usnadnit konfiguraci a správu firewallu. Zatímco samotné iptables je robustní a flexibilní možnost, pro začátečníky není příliš přívětivé. UFW to usnadňuje jak začátečníkům, tak zkušeným uživatelům.

Nejprve se podívejte na našeho všestranného průvodce, který vám pomůže seznámit se se základními funkcemi UFW. Můžete také postupovat podle tohoto návodu k instalaci serveru Ubuntu. Nyní můžeme začít!

Pro začátek, pokud z nějakého důvodu nemáte UFW nainstalovaný, nainstalujte jej ihned:

Konfigurace UFW

  • Použití IPv6

V současné době je IPv4 stále dominantní silou. S ohledem na to se většina této příručky věnuje také IPv4. Naštěstí UFW přichází také s podporou pro IPv6. Jediné, co musíte udělat, je povolit tuto funkci v konfiguračním souboru UFW.

Nejprve otevřete konfigurační soubor UFW v textovém editoru. Chcete-li změny uložit, musí být textový editor spuštěn s oprávněním sudo:

Vyhledejte „IPV6“ a ujistěte se, že je nastaveno na „yes“.

  • Výchozí politika

Pokud s firewallem pracujete poprvé, doporučujeme nejprve definovat výchozí pravidla. Tato pravidla určují, jak se řídí provoz, který neodpovídá žádnému explicitnímu pravidlu. Ve výchozím nastavení je UFW nakonfigurován tak, aby odmítal všechna příchozí připojení, ale povoloval všechna odchozí připojení. To definuje, že se k serveru nikdo nemůže připojit, zatímco aplikace běžící na serveru se mohou připojit ven.

Následující příkazy pouze znovu definují výchozí chování UFW. Upozorňujeme, že pokud bylo chování UFW dříve upraveno, dojde k jeho změně:

Pro osobní počítač by tato pravidla firewallu sama o sobě stačila. Servery však vyžadují více, aby řádně zabezpečily svůj systém.

Povolení připojení SSH

Při současném nastavení bude UFW odmítat všechna příchozí připojení. Pro vzdálený server je to nepřípustné. Bez přístupu k serveru nelze nic dělat. Aby se tomuto problému předešlo, lze UFW nakonfigurovat tak, aby povoloval příchozí SSH nebo HTTP připojení.

Chcete-li povolit připojení SSH k serveru, spusťte následující příkaz. Ten v podstatě řekne UFW, aby povolil všechna připojení na portu 22. To je port, na kterém démon SSH standardně naslouchá:

Místo tohoto příkazu je možné přímo nakonfigurovat povolení připojení k portu 22. Tento port je definován v souboru /etc/services:

Protože port 22 je pro démona SSH výchozí, může být také náchylný k útokům. Co když je SSH server nakonfigurován tak, aby naslouchal na jiném portu? V takové situaci musí UFW povolit připojení k tomuto portu. Za předpokladu, že SSH server naslouchá na portu 1234, použijte následující příkaz:

Povolení UFW

Přestože jsou pravidla UFW vytvořena, nebudou nic dělat, dokud nebude UFW aktivován. Ve výchozím nastavení je UFW zakázán, což znamená, že i přes deklarování pravidel je nebude vynucovat. Chcete-li UFW povolit, spusťte následující příkaz:

UFW může zobrazit varovnou zprávu o přerušení stávajících připojení SSH. Vzhledem k tomu, že připojení SSH byla nakonfigurována jako povolená, povolení UFW nezpůsobí žádné narušení. Chcete-li zjistit, jaká pravidla jsou nastavena, spusťte následující příkaz:

Povolení různých připojení

V tomto okamžiku by měl být UFW vybaven dalšími pravidly, aby byl zajištěn stabilní provoz. Připojení, která mají být povolena, závisí na vašich konkrétních potřebách. Již bylo ukázáno, jak UFW říci, aby povolil připojení na základě názvu služby nebo čísla portu.

Zde jsou některé další porty, které bývají velmi často otevřené:

  • SSH (port 22): Toto je výchozí port nakonfigurovaný pro připojení SSH.
  • HTTP (port 80): Toto je výchozí port, který používají nešifrované webové servery.
  • HTTPS (port 443): Toto je výchozí port, který používají šifrované webové servery.

Chcete-li povolit připojení SSH, spusťte jeden z následujících příkazů:

Dále pro povolení připojení HTTP spusťte jeden z následujících příkazů:

Chcete-li povolit připojení HTTPS, spusťte jeden z následujících příkazů:

Rozsah portů

Dosud jsme si ukázali, jak povolit konkrétní port. Co když je ale potřeba povolit rozsah portů? Deklarovat každý port v UFW zvlášť je poměrně neefektivní. Některé aplikace používají více portů. Naštěstí UFW umožňuje deklarovat rozsah portů. Chcete-li tak učinit, použijte následující strukturu příkazu:

Následující příklad povoluje připojení X11, která používají porty 60006007:

Doporučuje se deklarovat protokoly, kdykoli je to možné. Ve většině případů to však není nutné a vše bude fungovat bez problémů.

Konkrétní IP adresy

Při použití UFW je také možné filtrovat připojení podle konkrétních IP adres. Ve výchozím nastavení bude UFW blokovat připojení z jakékoli IP adresy. Je možné deklarovat povolení připojení z určitých IP adres. Chcete-li povolit připojení z IP adresy, použijte následující strukturu příkazu:

Můžete také deklarovat konkrétní porty, ke kterým se IP adresa může připojit. Chcete-li tak učinit, přidejte k příkazu to any port následované číslem portu:

Podsítě

Pokud potřebujete povolit podsíť IP adres, je to možné provést pomocí zápisu CIDR. V tomto příkladu UFW povolí připojení z IP adres v rozsahu od 203.0.113.1 do 203.0.113.254:

Podobně jako v předchozím kroku je také možné specifikovat port, ke kterému se tyto IP adresy mohou připojit:

Připojení ke konkrétnímu síťovému rozhraní

V serverovém prostředí může být k systému připojeno více síťových rozhraní. Pomocí UFW je možné definovat, že se určité pravidlo vztahuje pouze na konkrétní síťové rozhraní. Nejprve zkontrolujte všechna síťová rozhraní připojená k serveru. Hlavní pozornost věnujte názvu cílového síťového rozhraní:

 firewall with UFW on Ubuntu 18.04. 4

V našem případě existuje pouze jedno síťové rozhraní ens3, které se připojuje k veřejnému internetu. Chcete-li povolit příchozí připojení z tohoto síťového rozhraní, použijte následující strukturu příkazu:

Je také možné definovat port, na který může přicházet provoz ze síťového rozhraní:

Odmítnutí připojení

Podle výchozí konfigurace bude UFW odmítat připojení z jakéhokoli zdroje (kromě deklarovaných výjimek). Toto je doporučený způsob použití UFW. Může však být vyžadováno blokování specifických připojení z určité zdrojové IP adresy nebo podsítě. Možná je výchozí chování UFW nastaveno tak, aby povolovala všechna připojení (nedoporučuje se).

Chcete-li odmítnout připojení z určitých IP adres, UFW vyžaduje pravidla pro odmítnutí (deny). Psaní pravidel pro odmítnutí je docela jednoduché. Vezměte jakékoli pravidlo pro povolení (allow), zaměňte termín „allow“ za „deny“ a voila! Stane se z něj pravidlo pro odmítnutí.

Podívejte se na následující příklad. Chcete-li odmítnout jakékoli připojení HTTP, použijte následující pravidlo pro odmítnutí:

Chcete-li odmítnout připojení z 203.0.113.1, použijte následující pravidlo pro odmítnutí:

Smazání pravidel

Zatím jsme se naučili pouze to, jak pravidla vytvářet. Stejně jako se pravidla vytvářejí, lze je také mazat. V případě UFW existují dva konkrétní způsoby, jak pravidlo smazat.

  • Smazání pravidla podle čísla pravidla

Toto je nejjednodušší způsob, jak smazat pravidlo UFW. Každé pravidlo v UFW má své číslo. Následující příkaz vypíše všechna pravidla UFW spolu s jejich čísly:

 firewall with UFW on Ubuntu 18.04. 3

Následující příkaz smaže pravidlo určené číslem pravidla:

  • Smazání pravidla podle samotného pravidla

Toto je obtížnější způsob smazání pravidla. Vyžaduje ruční zadání samotného pravidla, které chcete smazat. V následujícím příkladu UFW smaže pravidlo určené pomocí allow http:

Pravidlo mohlo být také specifikováno pomocí allow 80. V takovém případě jej smaže následující příkaz:

Smazáním pravidla jej smažete pro IPv4 i IPv6.

Kontrola stavu a pravidel UFW

Je nezbytné se ujistit, zda je UFW aktivní či nikoli. Chcete-li zjistit stav UFW, spusťte následující příkaz:

 firewall with UFW on Ubuntu 18.04. 2

Pokud je stav „inactive, “ pak jej aktivujte podle kroku Povolení UFW výše. Pokud je aktivní, UFW nahlásí stav „active“ a vypíše všechna aktivní pravidla.

Zakázání UFW

Pokud z nějakého důvodu nebudete UFW používat, zakažte jej pomocí následujícího příkazu:

Pokud je UFW zakázáno, všechna vytvořená pravidla již nejsou aktivní. Pravidla se však nesmažou. Při opětovné aktivaci UFW budou všechna pravidla opět aktivní. Co když je aktuální konfigurace UFW v nepořádku? Místo postupného mazání pravidel je možné je smazat všechna jedním příkazem. Chcete-li UFW resetovat, spusťte následující příkaz:

 firewall with UFW on Ubuntu 18.04. 1

Upozorňujeme, že to nezmění výchozí chování UFW, které bylo nakonfigurováno na začátku.

Závěr

Správná konfigurace firewallu je nezbytná pro zajištění bezpečnosti a funkčnosti. Měl by být nakonfigurován tak, aby povoloval pouze nezbytná příchozí připojení a zároveň omezoval ta nepotřebná.

Pokud se chcete seznámit s dalšími řešeními firewallu, podívejte se na náš blog pro další zdroje:

Příjemnou práci s počítačem!

author

Hark Labs

Autor · CloudSigma

Preslav Dobrev je kreativní designér ve společnosti CloudSigma, který se zaměřuje na konzistentní firemní identitu prostřednictvím tradičních i inovativních marketingových kanálů. Je zdatný v propojování umělecké vize se strategickým marketingem za účelem vytváření působivých příběhů značky.

Komentáře

Zatím žádné komentáře. Buďte první.