GNU/Linux >> Znalost Linux >  >> Linux

Jak nastavit firewall s UFW na Linuxu

Tato příručka vysvětluje, co je UFW, jak nainstalovat UFW v Linuxu a jak nastavit firewall s UFW v různých operačních systémech Linux.

Úvod

Bezpečnost je vážná věc. Ať už provozujete svůj operační systém Linux v datových centrech nebo na počítači, měli byste svůj operační systém zabezpečit proti všem možným hrozbám.

Ve skutečnosti budou servery běžící v podnikovém prostředí dobře chráněny. Většina korporátních společností investuje miliony dolarů do zabezpečení své infrastruktury.

K ochraně vašeho prostředí a linuxových serverů bude existovat samostatný síťový tým, firewallový tým, bezpečnostní tým. To nebude případ, kdy na svých počítačích nebo serverech provozujete Linux.

Měli byste si být vědomi toho, jak zabezpečit své linuxové stroje správnými nástroji. Jedním z takových nástrojů je UFW .

Co je UFW?

UFW , znamená U nkomplikované F irew all, je program brány firewall, který je standardně předinstalován u distribucí založených na Ubuntu.

Proč UFW místo iptables? Možná se divíte.

Pokud to ještě nevíte, Netfilter je systém filtrování paketů, který se dodává s linuxovým jádrem a iptables se používají k manipulaci se síťovými filtry pomocí sady příkazů.

Zorientovat se v iptables může chvíli trvat a může to být skličující úkol. Pro usnadnění správy firewallu je vytvořeno mnoho front-endů pro iptables. UFW je jedním z nich.

UFW je front-end příkazového řádku pro správu iptables. Poskytuje rámec pro správu a manipulaci s firewallem netfilter.

UFW je standardně dostupné ve všech instalacích Ubuntu po verzi 8.04 LTS.

K dispozici je také grafický front-end pro UFW s názvem Gufw . Budeme o tom diskutovat v samostatném průvodci. V tomto článku se zaměříme na používání ufw z příkazového řádku.

Bez dalších okolků pojďme dále a podívejme se, jak nainstalovat a nastavit UFW firewall na Linuxu.

1. Nainstalujte UFW v Linuxu

UFW je předinstalovaný s většinou distribucí založených na Debianu a Arch. Chcete-li zkontrolovat, zda je UFW nainstalováno nebo ne, spusťte následující příkaz:

$ který ufw 
/usr/sbin/ufw
$ verzi ufw 
ufw 0,36
Copyright 2008-2015 Canonical Ltd.

Pokud není nainstalován ve vaší distribuci, můžete jej nainstalovat pomocí výchozího správce balíčků vaší distribuce.

Chcete-li nainstalovat UFW v Alpine Linux, spusťte:

$ sudo apk přidat ufw

Nainstalujte UFW v Arch Linuxu a jeho variantách, jako je EndeavourOS a Manjaro Linux:

$ sudo pacman -S ufw

Nainstalujte ufw v Debianu, Ubuntu a jeho derivátech:

$ aktualizace sudo apt 
$ sudo apt install ufw

Nainstalujte UFW ve Fedoře:

$ sudo dnf install ufw

UFW je k dispozici v [EPEL] úložiště pro operační systémy Enterprise Linux, jako jsou RHEL, CentOS, AlmaLinux a Rocky Linux.

Povolit [EPEL] úložiště a instalaci UFW v RHEL, CentOS, AlmaLinux, Rocky Linux, jak je uvedeno níže:

$ sudo dnf nainstalovat epel-release
$ sudo dnf install ufw

Nainstalujte UFW v openSUSE:

$ sudo zypper install ufw

1.1. Povolte, spusťte a zastavte službu UFW

V systémech založených na Debianu bude UFW démon spuštěn a povolen automaticky.

Spuštěním následujícího příkazu zkontrolujte stav služby UFW:

$ systemctl status ufw

Ukázkový výstup:

● ufw.service – Nekomplikovaný firewall Načteno:načteno (/usr/lib/systemd/system/ufw.service; povoleno; prese dodavatele> Aktivní:aktivní (ukončeno) od Po 2021-07-05 20:08:01 IST; před 44s Dokumenty:man:ufw(8) man:ufw-framework(8) file://usr/share/doc/ufw/README Proces:21690 ExecStart=/usr/libexec/ufw/ufw-init start ( code=exited, stat> Main PID:21690 (code=exited, status=0/SUCCESS) CPU:169msJul 05 20:08:01 ostechnix systemd[1]:Starting Uncomplicated firewall...Jul 05 20:08:01 ostechnix systemd[1]:Dokončený nekomplikovaný firewall.

Další způsob, jak zkontrolovat, zda je služba UFW povolena a aktivní:

$ systemctl je povoleno ufw 
povoleno
$ systemctl is-active ufw 
aktivní

Pokud se služba UFW po instalaci nespustí automaticky, spusťte službu UFW spuštěním následujícího příkazu:

$ sudo systemctl start ufw

Ufw by také mělo mít povoleno automatické spouštění mezi restarty systému.

$ sudo systemctl povolit ufw

Nebo můžete oba příkazy zkombinovat do jednoho a povolit a spustit službu UFW najednou, jak je uvedeno níže:

$ sudo systemctl enable --now ufw

Chcete-li zastavit službu UFW, jednoduše spusťte:

$ sudo systemctl stop ufw

3. Nastavte firewall pomocí UFW v systému Linux

3.1. Získání nápovědy

Pokud s UFW začínáte, první věc, kterou musíte po instalaci udělat, je podívat se do sekce nápovědy a manuálové stránky UFW, abyste získali základní představu o používání UFW.

$ ufw --help
$ man ufw

Pokud jste zapomněli syntaxi nebo potřebujete odkaz na konkrétní funkci ufw, budou tyto dva příkazy velmi užitečné.

3.2. Nastavit výchozí pravidla

Pomocí UFW můžete vytvořit pravidla (nebo zásady) brány firewall pro povolení nebo zakázání konkrétní služby. Prostřednictvím těchto zásad dáváte UFW pokyn, jaký port, služba, IP adresy a rozhraní by měly být povoleny nebo zakázány.

Existují výchozí zásady, které přicházejí s ufw. Výchozí zásada zruší všechna příchozí připojení a povolí všechna odchozí připojení.

DŮLEŽITÉ: Pokud nastavujete ufw na vzdáleném serveru, ujistěte se, že jste povolili ssh port nebo službu, než povolíte ufw firewall.

Výchozí zásady příchozí pošty odmítnou všechna příchozí připojení. Pokud jste tedy nenastavili pravidla pro povolení SSH, budete uzamčeni ze vzdáleného systému a nebudete se moci přihlásit do systému. Toto není případ, kdy na svém lokálním systému spouštíte ufw.

Výchozí zásady jsou definovány v /etc/default/ufw soubor. Zde je obsah souboru:

Odtud můžeme nastavit výchozí zásady.

Případně můžeme použít ufw allow příkaz pro nastavení výchozích zásad pro příchozí a odchozí příkazy:

$ sudo ufw default zakázat příchozí
$ sudo ufw výchozí povolit odchozí

3.2.1. Zkontrolujte stav pravidel brány firewall UFW

Chcete-li zkontrolovat, zda jsou výchozí zásady aktivní, spusťte následující příkaz:

Stav $ sudo ufw

Ukázkový výstup:

Stav:aktivníDo akce Od-- ------ ----SSH POVOLIT kdekoli 224.0.0.251 mDNS POVOLIT kdekoli SSH (v6) POVOLIT kdekoli (v6) ff02::fb mDNS POVOLIT kdekoli (v6)  

A pro podrobnější informace o stavu použijte tento příkaz:

$ sudo ufw status verbose

Ukázkový výstup:

Stav:activeLogging:on (nízký)Výchozí:zakázat (příchozí), povolit (odchozí), zakázat (směrováno) Nové profily:skipTo Action From-- ------ ----22/tcp (SSH) ALLOW IN Anywhere 224.0.0.251 5353/udp (mDNS) ALLOW IN Anywhere 22/tcp (SSH (v6)) ALLOW IN Anywhere (v6) ff02::fb 5353/udp (mDNS) ALLOW IN Anywhere (v6) 

Chcete-li zobrazit očíslovaný formát, spusťte:

Stav $ sudo ufw očíslován

3.2.2. Přidat pravidla

Dovolte mi vzít SSH jako příklad demonstrovat, jak přidat pravidla brány firewall pomocí ufw příkaz. Podívejte se na níže uvedené příkazy:

$ sudo ufw povolit ssh
$ sudo ufw allow 22
$ sudo ufw allow 22/tcp
$ sudo ufw allow 2222/tcp

Všechny příkazy slouží stejnému účelu.

[ 1 ] - V prvním příkazu povoluji veškerý přístup k ssh servis. UFW ve výchozím nastavení ví, že ssh naslouchá portu 22 . Takže když použijete allow ssh bude také vynucovat pravidlo pro port 22 .
[ 2 ] – Ve druhém příkazu výslovně říkám, že mám povolit příchozí připojení pro port 22 .
[ 3 ] - Třetí příkaz je stejný jako druhý příkaz. Umožňuje veškerý přístup k tcp port 22 . Podporovány jsou protokoly TCP i UDP.
[ 4 ] – Ve čtvrtém příkazu povoluji vlastní port ssh (tj. 2222 ), abyste přijali příchozí připojení.

Tyto čtyři příkazy můžete použít nejen pro ssh, ale pro jakékoli služby a porty. Například, pokud se chcete připojit k PostgreSQL běžícímu na portu 5433 , pak by mělo být pravidlo přidáno jako níže.

$ sudo ufw allow 5433

Podobně můžeme použít ufw deny příkaz k odmítnutí příchozích spojení:

$ sudo ufw deny 5433

Tento příkaz zakáže provoz na portu 5433 .

3.2.3. Smazat pravidla brány firewall UFW

Chcete-li odstranit pravidlo nebo zásadu, můžete použít příkaz ufw delete.

Pokud například již nechcete povolovat provoz HTTP, jednoduše spusťte:

sudo ufw delete allow 80

3.2.4. Povolit, zakázat a znovu načíst pravidla brány firewall UFW

To je něco jiného než povolení a spuštění démona UFW. Spuštění jednotky ufw systemd nebude vynucovat vaše pravidla brány firewall. UFW má vyhrazené příkazy pro povolení, zakázání a opětovné načtení pravidel brány firewall.

Aby byla pravidla účinná, musíte spustit následující příkaz:

$ sudo ufw povolit 
Firewall je aktivní a povolený při startu systému

Jak jsem již zmínil, pro zobrazení stavu pravidel brány firewall UFW použijte následující příkaz:

Stav $ sudo ufw

Ukázkový výstup:

Stav:aktivníDo akce Od-- ------ ----SSH POVOLIT kdekoli 224.0.0.251 mDNS POVOLIT kdekoli SSH (v6) POVOLIT kdekoli (v6) ff02::fb mDNS POVOLIT kdekoli (v6)  

Chcete-li zakázat pravidla brány firewall, spusťte:

$ sudo ufw zakázat 
Firewall se zastavil a deaktivoval při spuštění systému

Poznámka: Výše uvedený příkaz pouze zakáže pravidla brány firewall. Démon UFW bude při restartu stále spuštěn a povolen.

Po přidání jakékoli zásady znovu načtěte ufw, aby se zásada projevila pomocí příkazu:

$ sudo ufw reload

3.2.5. Přidání zásad pro rozsahy portů

Místo vytváření zásady pro jeden port můžete přidat zásadu pro řadu portů:

$ sudo ufw allow 8000:8080/tcp
$ sudo ufw deny 8000:8080/tcp

3.2.6. Přidání zásad pro konkrétní IP adresy, podsítě a porty

Pomocí ufw můžete vytvořit jemnější pravidla. Řekněme, že pokud chcete, aby byl váš server připojen (ssh’ed) pouze z konkrétní IP adresy, můžete tak učinit přidáním následujícího pravidla.

$ sudo ufw povolit z 192.168.156.2
$ sudo ufw povolit z 192.168.156.2 na libovolný port 2222

První příkaz umožňuje připojení zadané IP na základě otevřených portů. Druhý příkaz určuje, že se uživatel může připojit k portu 2222 pouze z 192.168.156.2 .

Povolit skupině IP adres ze stejné podsítě připojení k ssh , můžete při přidávání pravidla použít podsíť, která umožní připojení všech částí IP této podsítě k portu 2222 .

$ sudo ufw povolit z 192.168.156.1/24 na libovolný port 2222

3.2.7. Přidání zásad síťového rozhraní

Můžete také vytvářet zásady založené na síťových rozhraních. Následující příkaz vytvoří zásadu pro přijímání připojení pro síťové rozhraní en01 na port 2222 .

$ sudo ufw povolí na en01 na jakýkoli port 2222

3.2.8. Otestujte pravidla bez jejich použití pomocí možnosti suchého běhu

UFW má --dry-run možnost otestovat pravidla bez jejich skutečného použití. Například následující je to, co by se použilo při otevření portu SSH:

$ sudo ufw --dry-run allow ssh

Jak můžete vidět na výše uvedeném výstupu, příkaz ufw vypíše pouze výsledná pravidla, ale nepoužije je, když přidáme --dry-run volba. To se hodí, když chcete otestovat jakékoli zásady brány firewall.

3.2.9. Přidejte komentář ke každému pravidlu

Možná jste přidali několik pravidel. Po určitém počtu pravidel (řekněme 50) si nemůžete zapamatovat, o čem pravidlo je.

V takovém případě můžete ke každému pravidlu přidat komentář, jak je uvedeno níže:

$ sudo ufw allow 22 comment 'open port 22 for ssh'

Výše uvedený příkaz povolí veškerý provoz na port 22 a přidá komentář k pravidlu. Tímto způsobem můžete snadno najít účel konkrétního pravidla.

4. Které pravidlo má prioritu?

Priorita je důležitá, když vytváříte více pravidel pro stejnou službu/porty. Zásady mají prioritu v pořadí, v jakém byly vytvořeny. Spusťte následující příkaz, který vám poskytne zásady spolu s jejich prioritou.

Stav $ sudo ufw očíslován

Ukázkový výstup:

Stav:aktivní Do akce Od -- ------ ----[ 1] 22 POVOLENO VSTUP kdekoli [ 2] 2222 POVOLENO VSTUP kdekoli [ 3] 2222 POVOLENO 192.168.156.2 [ 4] 2222 DENY IN 192.168.157.0/24  [ 5] 22 (v6) ALLOW IN Anywhere (v6) [ 6] 2222 (v6) ALLOW IN Anywhere (v6) 

Podívejte se na [ 4 ] ve výše uvedeném výstupu. Jakékoli připojení k portu 2222 z podsítě 192.168.157.0/24 by mělo být vypuštěno.

Ale když se pokusím připojit z libovolného počítače ze stejné podsítě, připojení bude povoleno, protože vysokou prioritu má [ 2 ].

Chcete-li toto chování přepsat, musíte vytvořit pravidla s prioritou. Můžete odstranit existující pravidlo a přidat nové pravidlo s prioritou a znovu načíst službu.

$ sudo ufw delete 4Deleting:deny from 192.168.157.0/24 to any port 2222Pokračovat v operaci (y|n)? yRule smazáno
$ sudo ufw insert 2 deny z 192.168.157.0/24 na libovolný port 2222 
Vloženo pravidlo
$ sudo ufw znovu načíst 
Firewall znovu načten
$ sudo ufw status numberedStatus:activeTo Action From-- ------ ----[ 1] 22 ALLOW IN Anywhere[ 2] 2222 DENY IN 192.168.157.0/24[ 3] 2222 ALLOW IN Anywhere[ 4] 2222 ALLOW IN 192.168.156.2[ 5] 22 (v6) ALLOW IN Anywhere (v6)[ 6] 2222 (v6) ALLOW IN Anywhere (v6)

Podívejte se na výše uvedený výstup. Priorita je znovu přiřazena [ 2 ]. Nyní, když se pokusím připojit k portu 2222
z 192.168.157.0/24 , mé připojení bude odepřeno.

5. protokolování UFW

Protokoly jsou nejlepší volbou, když se něco pokazilo.

Chcete-li zakázat protokolování UFW, spusťte následující příkaz:

$ sudo ufw odhlašování 
Protokolování zakázáno

Chcete-li povolit protokolování UFW, spusťte:

$ sudo ufw přihlášení 
Protokolování povoleno

Existují čtyři úrovně protokolování, konkrétně nízká , střední , vysoká a úplné . V závislosti na zvolené úrovni budou protokoly generovány pod /var/log/ufw.log soubor. Ve výchozím nastavení bude úroveň protokolu nízká.

Pro nastavení požadované úrovně můžete použít níže uvedený příkaz:

$ sudo ufw logging [ vysoké | střední | Plný | Nízká ]

Chcete-li zkontrolovat stav protokolování a úroveň protokolování, spusťte ufw status a vyhledejte logging vstup.

$ sudo ufw status verbose 
Stav:aktivní
Přihlašování:zapnuto (vysoké)
Výchozí:zakázat (příchozí), povolit (odchozí), zakázat (směrováno)
Nové profily:přeskočit

6. Profily aplikací

Při instalaci jakýchkoli balíčků pomocí správce balíčků (např. apt nebo pacman), v ufw bude vytvořen profil aplikace, který definuje pravidla pro tento balíček.

Pokud například instalujete server OpenSSH pomocí apt , pak bude vytvořen profil pro port 22 . Všechny profily aplikací jsou uloženy pod /etc/ufw/applications.d adresář.

Chcete-li získat seznam profilů aplikací, spusťte následující příkaz:

seznam aplikací $ sudo ufw

Ukázkový výstup:

Dostupné aplikace:CUPSOpenSSH

Toto je testovací stroj. Nainstaloval jsem pouze OpenSSH. Vidíte tedy pouze dva profily.

Chcete-li získat podrobné informace o tomto profilu ao tom, jaké zásady vynucuje, spusťte následující příkaz:

Informace o aplikaci $ sudo ufw 'OpenSSH'

Ukázkový výstup:

Profil:OpenSSH 
Title:Secure shell server, náhrada rshd
Popis:OpenSSH je bezplatná implementace protokolu Secure Shell.
Přístav:
22/tcp

7. Resetujte bránu firewall UFW na výchozí zásady

Pokud chcete vyčistit všechna pravidla, která jste vytvořili, a obnovit výchozí nastavení, můžete to provést spuštěním ufw reset příkaz.

$ sudo ufw reset

Ukázkový výstup:

Resetování všech pravidel na nainstalované výchozí hodnoty. Pokračovat v operaci (y|n)? yZálohování 'user.rules' do '/etc/ufw/user.rules.20210705_131655'Zálohování 'before.rules' do '/etc/ufw/before.rules.20210705_131655'Zálohování do 'after.rules' 'after.rules' etc/ufw/after.rules.20210705_131655'Zálohování 'user6.rules' do '/etc/ufw/user6.rules.20210705_131655'Zálohování 'before5.rules' do '/fore6.2rules'/etc/ufles/01.01 Zálohování 'after6.rules' do '/etc/ufw/after6.rules.20210705_131655'

Když spustíte tento příkaz, vaše aktuální pravidla budou zálohována před resetováním na výchozí profil.

Ufw má také mnoho grafických rozhraní. Jedním z nich je Gufw .

8. Gufw, grafický front-end k UFW

Některým z vás možná nevyhovuje režim příkazového řádku. Naštěstí je k dispozici grafický front-end pro UFW.

Gufw je grafická front-endová aplikace pro správu Uncomplicated Firewall (UFW) v Linuxu. Gufw je vyvinut hlavně pro instalaci a konfiguraci firewallu pro stolní počítače se systémem Linux.

V následující příručce se dozvíte, jak nainstalovat a nakonfigurovat Gufw v systému Linux:

  • Jak nastavit bránu firewall s aplikací Gufw na ploše Linux

Závěr

V této příručce jsme diskutovali o tom, co je UFW, jak nainstalovat a nastavit UFW firewall na Linuxu s ukázkovými příkazy.

Nyní je řada na vás, abyste otestovali ufw na vašem počítači. Doporučuji otestovat ufw na jakémkoli virtuálním stroji před jeho implementací na váš desktop nebo server.


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

  2. Jak nastavit UFW Firewall na Ubuntu 18.04

  3. Jak nainstalovat Fail2ban s Firewalld na Rocky Linux 8

  1. Jak nastavit firewall s UFW na Debianu 10

  2. Jak nastavit firewall s UFW na Debianu 9

  3. Jak nainstalovat MX Linux 21 krok za krokem pomocí snímků obrazovky

  1. Jak nainstalovat phpMyAdmin s Nginx na Linux Mint 19 / Linux Mint 18

  2. Jak nainstalovat a nastavit Utangle Firewall

  3. Jak synchronizovat soubory s Unison na Linuxu