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 verboseUká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/tcpVš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á portu22
. Takže když použijete allowssh
bude také vynucovat pravidlo pro port22
.
[ 2 ] – Ve druhém příkazu výslovně říkám, že mám povolit příchozí připojení pro port22
.
[ 3 ] - Třetí příkaz je stejný jako druhý příkaz. Umožňuje veškerý přístup ktcp
port22
. 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 5433Podobně můžeme použít
ufw deny
příkaz k odmítnutí příchozích spojení:$ sudo ufw deny 5433Tento 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 803.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émuJak jsem již zmínil, pro zobrazení stavu pravidel brány firewall UFW použijte následující příkaz:
Stav $ sudo ufwUká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émuPozná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 reload3.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/tcp3.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 2222První 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 z192.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 portu2222
.$ sudo ufw povolit z 192.168.156.1/24 na libovolný port 22223.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 port2222
.$ sudo ufw povolí na en01 na jakýkoli port 22223.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ánUká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
z192.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ánoChcete-li povolit protokolování UFW, spusťte:
$ sudo ufw přihlášení
Protokolování povolenoExistují č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 vyhledejtelogging
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čit6. 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 port22
. 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 ufwUkázkový výstup:
Dostupné aplikace:CUPSOpenSSHToto 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/tcp7. 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 resetUká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.