GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nastavit bránu firewall s UFW na Ubuntu 20.04

Firewall je nástroj pro sledování a filtrování příchozího a odchozího síťového provozu. Funguje tak, že definuje sadu bezpečnostních pravidel, která určují, zda povolit nebo blokovat konkrétní provoz.

Ubuntu se dodává s konfiguračním nástrojem brány firewall s názvem UFW (Uncomplicated Firewall). Jedná se o uživatelsky přívětivý front-end pro správu pravidel brány firewall iptables. Jeho hlavním cílem je usnadnit správu firewallu nebo, jak název napovídá, nekomplikovat.

Tento článek popisuje, jak používat nástroj UFW ke konfiguraci a správě brány firewall na Ubuntu 20.04. Správně nakonfigurovaný firewall je jedním z nejdůležitějších aspektů celkového zabezpečení systému.

Předpoklady #

Systémový firewall mohou spravovat pouze uživatelé root nebo uživatelé s právy sudo. Nejlepším postupem je spouštět administrativní úlohy jako uživatel sudo.

Instalovat UFW #

UFW je součástí standardní instalace Ubuntu 20.04 a měl by být přítomen ve vašem systému. Pokud z nějakého důvodu není nainstalován, můžete balíček nainstalovat zadáním:

sudo apt updatesudo apt install ufw

Zkontrolujte stav UFW #

UFW je ve výchozím nastavení zakázáno. Stav služby UFW můžete zkontrolovat pomocí následujícího příkazu:

sudo ufw status verbose

Výstup ukáže, že stav brány firewall je neaktivní:

Status: inactive

Pokud je aktivován UFW, výstup bude vypadat následovně:

Výchozí zásady UFW #

Výchozí chování UFW Firewallu je blokovat veškerý příchozí a přesměrovaný provoz a povolit veškerý odchozí provoz. To znamená, že kdokoli, kdo se pokusí získat přístup k vašemu serveru, se nebude moci připojit, pokud konkrétně neotevřete port. Aplikace a služby běžící na vašem serveru budou mít přístup k vnějšímu světu.

Výchozí zásady jsou definovány v /etc/default/ufw soubor a lze jej změnit buď ruční úpravou souboru, nebo pomocí sudo ufw default <policy> <chain> příkaz.

Zásady brány firewall jsou základem pro vytváření složitějších a uživatelem definovaných pravidel. Obecně jsou výchozí zásady UFW dobrým výchozím bodem.

Profily aplikací #

Profil aplikace je textový soubor ve formátu INI, který popisuje službu a obsahuje pravidla brány firewall pro službu. Profily aplikací se vytvářejí v /etc/ufw/applications.d adresáře během instalace balíčku.

Můžete zobrazit seznam všech aplikačních profilů dostupných na vašem serveru zadáním:

sudo ufw app list

V závislosti na balíčcích nainstalovaných ve vašem systému bude výstup vypadat podobně jako následující:

Available applications:
  Nginx Full
  Nginx HTTP
  Nginx HTTPS
  OpenSSH

Chcete-li zjistit další informace o konkrétním profilu a zahrnutých pravidlech, použijte následující příkaz:

sudo ufw app info 'Nginx Full'

Výstup ukazuje, že profil „Nginx Full“ otevírá porty 80 a 443 .

Profile: Nginx Full
Title: Web Server (Nginx, HTTP + HTTPS)
Description: Small, but very powerful and efficient web server

Ports:
  80,443/tcp

Můžete si také vytvořit vlastní profily pro své aplikace.

Povolení UFW #

Pokud se k Ubuntu připojujete ze vzdáleného umístění, musíte před povolením brány firewall UFW výslovně povolit příchozí připojení SSH. V opačném případě se již nebudete moci k počítači připojit.

Chcete-li nakonfigurovat bránu firewall UFW tak, aby umožňovala příchozí připojení SSH, zadejte následující příkaz:

sudo ufw allow ssh
Rules updated
Rules updated (v6)

Pokud SSH běží na nestandardním portu, musíte tento port otevřít.

Pokud například váš démon ssh naslouchá na portu 7722 , zadejte následující příkaz pro povolení připojení na tomto portu:

sudo ufw allow 7722/tcp

Nyní, když je brána firewall nakonfigurována tak, aby umožňovala příchozí připojení SSH, můžete ji povolit zadáním:

sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

Budete upozorněni, že povolení brány firewall může narušit stávající připojení ssh, stačí zadat y a stiskněte Enter .

Otevření portů #

V závislosti na aplikacích, které v systému běží, možná budete muset otevřít i další porty. Obecná syntaxe pro otevření portu je následující:

ufw allow port_number/protocol

Níže je uvedeno několik způsobů, jak povolit připojení HTTP.

První možností je použít název služby. UFW kontroluje /etc/services soubor pro port a protokol zadané služby:

sudo ufw allow http

Můžete také zadat číslo portu a protokol:

sudo ufw allow 80/tcp

Pokud není zadán žádný protokol, UFW vytvoří pravidla pro oba tcp a udp .

Další možností je použití profilu aplikace; v tomto případě „Nginx HTTP“:

sudo ufw allow 'Nginx HTTP'

UFW také podporuje jinou syntaxi pro specifikaci protokolu pomocí proto klíčové slovo:

sudo ufw allow proto tcp to any port 80

Rozsahy portů #

UFW také umožňuje otevřít rozsahy portů. Počáteční a koncové porty jsou odděleny dvojtečkou (: ) a musíte zadat protokol, buď tcp nebo udp .

Například pokud chcete povolit porty z 7100 na 7200 na obou tcp a udp , spustíte následující příkaz:

sudo ufw allow 7100:7200/tcpsudo ufw allow 7100:7200/udp

Konkrétní IP adresa a port #

Chcete-li povolit připojení na všech portech z dané zdrojové IP, použijte from klíčové slovo následované zdrojovou adresou.

Zde je příklad přidání IP adresy na seznam povolených:

sudo ufw allow from 64.63.62.61

Pokud chcete dané IP adrese povolit přístup pouze ke konkrétnímu portu, použijte to any port klíčové slovo následované číslem portu.

Například pro povolení přístupu na portu 22 ze stroje s IP adresou 64.63.62.61 , zadejte:

sudo ufw allow from 64.63.62.61 to any port 22

Podsítě #

Syntaxe pro povolení připojení k podsíti IP adres je stejná jako při použití jedné IP adresy. Jediný rozdíl je v tom, že musíte zadat masku sítě.

Níže je uveden příklad, jak povolit přístup pro IP adresy v rozsahu od 192.168.1.1 na 192.168.1.254 na port 3360 (MySQL):

sudo ufw allow from 192.168.1.0/24 to any port 3306

Konkrétní síťové rozhraní #

Chcete-li povolit připojení na konkrétním síťovém rozhraní, použijte in on klíčové slovo následované názvem síťového rozhraní:

sudo ufw allow in on eth2 to any port 3306

Odmítání připojení #

Výchozí zásada pro všechna příchozí připojení je nastavena na deny a pokud jste to nezměnili, UFW zablokuje všechna příchozí připojení, pokud připojení výslovně neotevřete.

Psaní pravidel odmítnutí je stejné jako psaní pravidel povolení; stačí použít deny klíčové slovo namísto allow .

Řekněme, že jste otevřeli porty 80 a 443 a váš server je napaden z 23.24.25.0/24 síť. Chcete-li odmítnout všechna připojení z 23.24.25.0/24 spustíte následující příkaz:

sudo ufw deny from 23.24.25.0/24

Zde je příklad odepření přístupu pouze k portům 80 a 443 od 23.24.25.0/24 můžete použít následující příkaz:

sudo ufw deny proto tcp from 23.24.25.0/24 to any port 80,443

Odstranění pravidel UFW #

Existují dva různé způsoby, jak odstranit pravidla UFW podle čísla pravidla a zadáním skutečného pravidla.

Smazání pravidel podle čísla pravidla je jednodušší, zvláště když s UFW začínáte. Chcete-li nejprve odstranit pravidlo podle čísla pravidla, musíte najít číslo pravidla, které chcete odstranit. Chcete-li získat seznam číslovaných pravidel, použijte ufw status numbered příkaz:

sudo ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] 80/tcp                     ALLOW IN    Anywhere
[ 3] 8080/tcp                   ALLOW IN    Anywhere

Smazání pravidla číslo 3 , který umožňuje připojení k portu 8080 , zadali byste:

sudo ufw delete 3

Druhou metodou je odstranit pravidlo zadáním skutečného pravidla. Pokud jste například přidali pravidlo pro otevření portu 8069 můžete jej smazat pomocí:

sudo ufw delete allow 8069

Deaktivace UFW #

Pokud z jakéhokoli důvodu chcete zastavit UFW a deaktivovat všechna pravidla, můžete použít:

sudo ufw disable

Pokud později budete chtít znovu povolit UTF a aktivovat všechna pravidla, stačí napsat:

sudo ufw enable

Resetování UFW #

Resetování UFW deaktivuje UFW a odstraní všechna aktivní pravidla. To je užitečné, pokud chcete vrátit všechny změny a začít znovu.

Chcete-li resetovat UFW, zadejte následující příkaz:

sudo ufw reset

Masquerading IP #

IP Masquerading je varianta NAT (překlad síťových adres) v linuxovém jádře, která překládá síťový provoz přepisováním zdrojových a cílových IP adres a portů. Pomocí IP Masquerading můžete povolit jednomu nebo více počítačům v privátní síti komunikovat s internetem pomocí jednoho počítače se systémem Linux, který funguje jako brána.

Konfigurace maskování IP pomocí UFW zahrnuje několik kroků.

Nejprve musíte povolit přesměrování IP. Chcete-li to provést, otevřete /etc/ufw/sysctl.conf soubor:

sudo nano /etc/ufw/sysctl.conf

Najděte a odkomentujte řádek, který zní net.ipv4.ip_forward = 1 :

/etc/ufw/sysctl.conf
net/ipv4/ip_forward=1

Dále musíte nakonfigurovat UFW tak, aby umožňoval přeposílat pakety. Otevřete konfigurační soubor UFW:

sudo nano /etc/default/ufw

Vyhledejte DEFAULT_FORWARD_POLICY a změňte hodnotu z DROP ACCEPT :

/etc/default/ufw
DEFAULT_FORWARD_POLICY="ACCEPT"

Nyní musíte nastavit výchozí zásady pro POSTROUTING řetězce v nat stůl a maškarní pravidlo. Chcete-li tak učinit, otevřete /etc/ufw/before.rules soubor a připojte řádky zvýrazněné žlutě, jak je znázorněno níže:

sudo nano /etc/ufw/before.rules

Připojte následující řádky:

/etc/ufw/before.rules
#NAT table rules
*nat
:POSTROUTING ACCEPT [0:0]

# Forward traffic through eth0 - Change to public network interface
-A POSTROUTING -s 10.8.0.0/16 -o eth0 -j MASQUERADE

# don't delete the 'COMMIT' line or these rules won't be processed
COMMIT

Nezapomeňte nahradit eth0 v -A POSTROUTING řádek, který odpovídá názvu rozhraní veřejné sítě:

Až budete hotovi, uložte a zavřete soubor.

Nakonec znovu načtěte pravidla UFW vypnutím a opětovným povolením UFW:

sudo ufw disablesudo ufw enable

Ubuntu
  1. Jak nastavit UFW Firewall na Ubuntu 18.04

  2. Nastavit UFW Firewall na Ubuntu 18.04 – nejlepší metoda?

  3. Jak nastavit bránu firewall s UFW v Ubuntu \ Debian

  1. Jak nastavit bránu firewall s UFW na Ubuntu 16.04

  2. Jak nakonfigurovat bránu firewall s UFW na Ubuntu 18.04

  3. Jak nakonfigurovat UFW Firewall na Ubuntu 18.04

  1. Jak povolit/zakázat UFW Firewall na Ubuntu 18.04

  2. Jak nastavit bránu firewall s UFW na Ubuntu 18.04

  3. Jak nastavit firewall s UFW na Debianu 10