Upraveno 6 prosince, 2023 00:25
Jedním ze základních prvků bezpečnosti serveru je firewall. Konkrétně na Ubuntu máte firewall interpretovaný jako UFW (Uncomplicated Firewall). Jak nastavit firewall na Ubuntu je pro Vás klíčová znalost z pohledu bezpečnosti serveru i z pohledu správného fungování služeb. UFW (Uncomplicated Firewall) je softwarový nástroj pro správu firewallu na operačním systému Ubuntu. Účelem firewallu je zabezpečení počítače před neautorizovaným přístupem, monitoring a řízení síťového provozu.
UFW funguje na principu sady pravidel, která určují, jaký síťový provoz je povolen nebo blokován. Tyto pravidla mohou být nastaveny tak, aby filtrovaly provoz na základě zdrojové, nebo cílového IP adresy, portu a protokolu. Při správě UFW lze definovat základní pravidla, jako je povolení přístupu k určitým portům pro konkrétní služby (např. webové servery, nebo e-mailové servery) a blokování neznámého nebo nevyžádaného provozu. UFW také umožňuje vytvářet složitější pravidla, která umožňují definovat specifické podmínky pro povolení, nebo blokování přístupu.
UFW je navržen tak, aby byl snadno použitelný i pro uživatele bez předchozích znalostí firewallů. Poskytuje jednoduché a intuitivní příkazy pro zapnutí, vypnutí a konfiguraci firewallu. UFW také poskytuje jednoduchý způsob pro sledování stavu firewallu a případného ladění nastavení.
Jak nastavit firewall na Ubuntu
Nastavení základního chování
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw default deny incoming: tímto pravidlem definujete výchozí chování firewallu pro příchozí síťový provoz. Konkrétně to znamená, že všechna příchozí spojení na Váš server budou implicitně blokována, pokud nejsou explicitně povolena pravidly, která definujete Vy sami jako root uživatel. Tím minimalizujete riziko neautorizovaného přístupu k počítači a snižujete tím potenciální riziko před hrozbami.
sudo ufw default allow outgoing: tímto pravidlem definujete výchozí chování firewallu pro odchozí síťový provoz. Toto pravidlo povoluje všechny odchozí spojení z počítače, což umožňuje uživatelům vyžádat si informace ze vzdálených serverů a komunikovat s nimi bez omezení. Tím si zajistíte, že běžné aktivity, jako je prohlížení webových stránek nebo odesílání e-mailů, nenarušíte.
Povolte připojení pomocí SSH
Abyste si po zapnutí firewallu nezablokovali připojení pomocí SSH, je důležité, abyste před samotnou aktivací UFW povoli port 22. Ten je právě určen pro komunikaci pomocí SSH (případně SFTP). Povolení SSH přístupu na serveru provedete příkazem:
sudo ufw allow ssh
Pokud chcete mít přístup pomocí SSH trochu bezpečnější, můžete definovat přístup na port 22 pouze z definované IP adresy, nebo více IP adres. To zajistí, že se na server přes SSH dostane pouze uživatel, který je připojený pouze pod povolenou IP adresou. Výše uvedený příkaz lze tedy upravit takto (část xxx.xxx.xxx.xxx nahraďte svou IP adresou připojení, kterou můžete zjistit např. na mojeip.cz):
sudo ufw allow from xxx.xxx.xxx.xxx to any port 22
Aktivujte firewall
Základní pravidla máte nyní definovaná a můžete povolit firewall, aby byl aktivní. Samotné zapnutí firewallu na Ubuntu provedete příkazem:
sudo ufw enable
Pokud si chcete ověřit, zda je firewall aktivní a získat zároveň výpis aktuálních nastavených pravidel, použijte pro ověření příkaz:
sudo ufw status verbose
Jak nastavit firewall na Ubuntu
Jak povolit ostatní připojení
Pokud chcete na firewallu povolit určitou službu nebo konkrétní port, můžete použít dva typy zápisu pro takové pravidlo. Můžete povolit službu, nebo konkrétní protokol. Konkrétně si to ukážeme na portech 80 a 443. První je port pro http provoz webu a druhý slouží pro provoz https.
sudo ufw allow http
sudo ufw allow 80
sudo ufw allow https
sudo ufw allow 443
Jak vidět výše, pro http můžete použít buď příkaz sudo ufw allow http nebo sudo ufw allow 80. To samé pro https. Oba příkazy provedou to samé, povolí port 80 nebo 443. Můžete si tedy vybrat jeden ze zápisů, který poté na firewallu provedete.
Občas nastane situace, kdy nepotřebujete povolit jeden port ale celý rozsah. Např všechny porty od 6000 do 6007. Není tedy nutné přidávat pravidlo pro každý port zvlášť, což by v některých situacích bylo i časově nemožné a zbytečné. Celý rozsah se dá povolit jedním příkazem (definujete rozsah a protokol TCP či UDP) :
sudo ufw allow 6000:6007/tcp
sudo ufw allow 6000:6007/udp
Omezení připojení na IP adresy
Jak jsem již uvedl u připojení pomocí SSH, je možné omezit každé připojení na IP adresy uživatele. Tím firewallu říkáte, jaké spojení, na jakém portu a pouze pod jakou IP adresou uživatele může povolit.
sudo ufw allow from xxx.xxx.xxx.xxx
sudo ufw allow from xxx.xxx.xxx.xxx to any port 22
sudo ufw allow from xxx.xxx.xxx.xxx to any port 10000
Povolení celého rozsahu ip adres
Pokud chcete povolit celý rozsah ipa adres (subnet), můžete příkaz definovat takto:
sudo ufw allow from xxx.xxx.xxx.xxx/24
sudo ufw allow from xxx.xxx.xxx.xxx/24 to any port 22
Jak povolit pravidla pouze pro určité síťové rozhraní
Pokud chcete povolit určitá pravidla firewallu pouze pro jedno z více síťových rozhraní na serveru, můžete do pravidel přidat parametr „allow in on„. Uvedu příklad. Na síťovém rozhraní eth0 máte veřejný provoz webu a chcete na něm povolit port 80 pro http provoz. Upravíte si tedy příkaz konkrétně takto:
sudo ufw allow in on eth0 to any port 80
Jak nastavit firewall na Ubuntu
Jak můžete různá připojení zakázat
Stejně tak, jako vy výše uvedených případech připojení povolujete, můžete je samozřejmě i zakázat. To je vhodné např. v případě, kdy zjistíte útok na Váš server z konkrétní sítě nebo IP adresy. Server nepovolí požadavky z této IP adresy či rozsahu a nebude docházet například ke zbytečnému přetěžování či omezování služeb.
sudo ufw deny http
sudo ufw deny from xxx.xxx.xxx.xxx
Z výše uvedených dvou pravidel tak můžete provést např. zakázání přístupu k http provozu, nebo nebo zakázat přístup na server z nějaké, předem definované IP adresy.
Co dělat v případě, že potřebujete pravidla smazat?
Pokud je nějaké pravidlo neaktuální nebo došlo k překlepu, můžete takové pravidlo samozřejmě smazat. Nejprve si udělejte výpis všech pravidel, která máte na firewallu aplikovaná. To provedete příkazem:
sudo ufw status numbered
Tento příkaz Vám vypíše seznam pravidlem a ke každému pravidlu přiřadí číslo v pořadníku. Smazání pravidla provedete příkazem ufw delete a doplníte jej číslem pravidla, které chcete odstranit.
sudo ufw delete 3
Tento příkaz smaže pravidlo, které je v seznamu třetí.
Jak nastavit firewall na Ubuntu
Závěr
Toto je seznam nejběžněji používaných zápisů pro firewall na ubuntu. Díky těmto zápisům budete schopni si upravit chování přístupu na server, případně povolit či zakázat různé aplikace, které máte na serveru nainstalované. Jako doplnění níže ještě uvedu zápis pro výpis pravidel firewallu, deaktivaci firewallu a reset firewallu.
sudo ufw status verbose
sudo ufw disable
sudo ufw reset
Web je vytvářen s pečlivostí k obsaženým informacím. Snažím se poskytovat kvalitní a užitečný obsah, který ostatním pomáhá, nebo je inspiruje. Pokud jste spokojeni s mou prací a chtěli byste mě podpořit, můžete to udělat prostřednictvím jednoduchých možností.
Byl pro Vás tento článek užitečný?
Klikni na počet hvězd pro hlasování.
Průměrné hodnocení. 5 / 5. Počet hlasování: 1
Zatím nehodnoceno! Buďte první
Je mi líto, že pro Vás nebyl článek užitečný.
Jak mohu vylepšit článek?
Řekněte mi, jak jej mohu zlepšit.
Odebírejte Newsletter
Buďte v obraze! Připojte se k odběru newsletteru a buďte první, kdo získá nejnovější informace přímo do vaší e-mailové schránky. Sledujte aktuality, exkluzivní události a inspirativní obsah, přímo na Vašem e-mailu.