Jak nakonfigurovat firewall UFW v příkazové řádce - LINUX PRO DOMÁCNOST

Přejít na obsah

Hlavní nabídka:

Jak nakonfigurovat firewall UFW v příkazové řádce

1.12.2025

Praktický průvodce pro pokročilé domácí uživatele

UFW je jeho „motor“ v příkazové řádce. Tento návod vás krok za krokem provede konfigurací UFW v terminálu – od základů až po pokročilejší pravidla.
  • Cílem je, aby se z běžného uživatele stal jistější a pokročilejší správce vlastního firewallu.




1. Co je UFW a základní principy

1.1 UFW v kostce
    • UFW je frontend (nadstavba) nad iptables / nftables.
    • Je určený především pro host-based firewall – tedy pro ochranu přímo konkrétního počítače. wiki.ubuntu.com.
    • Je dostupný na většině distribucí odvozených od Debianu/Ubuntu (Zorin OS, Linux Mint, atd.) a existují balíčky i pro jiné distribuce (Arch, Fedora, atd.). wiki.debian.org.
UFW standardně používá jednoduché pravidlo:
    • Všechna příchozí spojení – deny (blokovat)
    • Všechna odchozí spojení – allow (povolit) help.ubuntu.com.
Na tom se pak staví konkrétní pravidla (např. povolit SSH, webový server, sdílení souborů apod.).

1.2 Základní terminologie
    • incoming (příchozí) – spojení, která přicházejí zvenčí na váš počítač.
    • outgoing (odchozí) – spojení, která váš počítač navazuje směrem ven (prohlížeč, aktualizace, atd.).
    • policy (implicitní politika) – výchozí chování pro příchozí a odchozí provoz.
    • rule (pravidlo) – konkrétní výjimka, která něco výslovně povolí nebo zakáže.


2. Instalace a bezpečný první start

2.1 Instalace UFW
Na Ubuntu/Zorin/Debian většinou UFW již nainstalovaný je. Pokud ne, lze jej doinstalovat:
sudo apt update
sudo apt install ufw
Na jiných distribucích se použije jejich správce balíčků (pacman, dnf, zypper atd.). wiki.debian.org.

2.2 Kontrola stavu
Základní kontrola:
sudo ufw status
    • Status: inactive (neaktivní) – firewall je vypnutý.
    • Status: active (aktivní) – firewall běží a pravidla se aplikují. help.ubuntu.com.
Podrobnější výpis:
sudo ufw status verbose
Zobrazí i výchozí politiku (Default: deny/allow) a úroveň logování.
Výpis může vypadat například takto:
Stav: aktivní
Přihlašování: on (low)
Výchozí: deny (příchozí), allow (odchozí), disabled (směrované)
Nové profily: skip
Poznámka:
    • Nové profily: skip – neznamená chybu ani problém, pouze říká, že nové aplikační profily UFW se neaktivují automaticky. Porty definované v těchto profilech se otevřou až ve chvíli, kdy uživatel profil výslovně povolí (například sudo ufw allow "Apache Full").
    • Přihlašování: on (low) – ve skutečnosti jde o logování firewallu. UFW má zapnuté logování na základní úrovni („low“), takže zaznamenává důležité události (typicky blokované pakety) do log souboru. S přihlašováním uživatelů (login) to nesouvisí, jedná se pouze o nepřesný překlad.

2.3 Bezpečný start na vzdáleném serveru (pozor na SSH!)
Pokud se připojujete na server přes SSH, musíte nejdříve povolit SSH, než firewall zapnete. Jinak se odříznete.
Povolit SSH (u většiny distribucí je profil OpenSSH):
sudo ufw allow OpenSSH
# nebo ekvivalent
sudo ufw allow 22/tcp
Nastavit rozumnou výchozí politiku:
sudo ufw default deny incoming
sudo ufw default allow outgoing
Teprve teď UFW zapnout:
sudo ufw enable
Ověřit:
sudo ufw status verbose
Tento postup doporučují i oficiální návody a kvalitní tutoriály – vždy nejdříve povolit SSH, až poté firewall aktivovat. digitalocean.com.


3. Základní příkazy UFW
Níže je přehled často používaných příkazů. Všechny se spouští s sudo.

3.1 Zapnutí, vypnutí, reload
sudo ufw enable      # zapne firewall
sudo ufw disable    # vypne firewall
sudo ufw reload     # znovu načte pravidla (např. po změnách v konfiguraci)

3.2 Výchozí politika (policy)
sudo ufw default deny incoming    # všechny příchozí blokovat
sudo ufw default allow outgoing   # všechny odchozí povolit
V domácím prostředí je tato kombinace zpravidla ideální – počítač může „ven“, ale zvenčí se na něj jen tak někdo nedostane. help.ubuntu.com.
Pokud chcete být přísnější, lze omezit i odchozí přístup:
sudo ufw default deny outgoing
To už je ale pokročilejší scénář, vhodný např. pro server s jasně definovanými službami.

3.3 Stav a detailní informace
sudo ufw status           # přehled pravidel
sudo ufw status verbose   # detailnější přehled


4. Pravidla podle portu a služby

4.1 Povolování a blokování portů
Obecná syntaxe: help.ubuntu.com.
sudo ufw allow <port>/<proto>
sudo ufw deny  <port>/<proto>
Příklad:
sudo ufw allow 80/tcp     # povolí HTTP
sudo ufw allow 443/tcp   # povolí HTTPS
sudo ufw deny  25/tcp    # zakáže odchozí SMTP (pokud použijete default allow outgoing + deny 25)
Pokud protokol neuvedete, UFW použije TCP i UDP:
sudo ufw allow 53        # povolí DNS (TCP+UDP)

4.2 Povolování podle názvu služby
UFW umí číst /etc/services a UFW aplikace, takže můžete použít název služby. help.ubuntu.com.
sudo ufw allow ssh
sudo ufw deny  ssh
sudo ufw allow http
sudo ufw allow https
Jde o totéž, jako kdybyste psali 22/tcp, 80/tcp, 443/tcp – jen přehlednější.

4.3 Rozsah portů
UFW podporuje i rozsahy portů:
sudo ufw allow 10000:10010/tcp
To se hodí pro aplikace, které používají více portů (např. některé hry, VoIP, Zorin Connect/KDE Connect atd.). digitalocean.com.


5. Pravidla podle IP adresy a sítě
UFW umí filtrovat podle zdrojové a cílové adresy.

5.1 Povolování z konkrétní IP adresy
sudo ufw allow from 192.168.1.50
Příklad využití: povolit přístup k SSH jen z jednoho počítače ve vaší domácí síti:
sudo ufw allow from 192.168.1.50 to any port 22 proto tcp

5.2 Povolování z celé sítě
sudo ufw allow from 192.168.1.0/24
Například:
sudo ufw allow from 192.168.1.0/24 to any port 22 proto tcp
Tím povolíte SSH z celé domácí sítě, ale ne z internetu. help.ubuntu.com.

5.3 Blokování podle IP
Naopak můžete některé IP adresy blokovat:
sudo ufw deny from 203.0.113.45
sudo ufw deny from 203.0.113.45 to any port 22


6. Směr pravidel a sítě – in/out, interface
U většiny domácích použití není nutné směr explicitně psát – UFW chápe allow 22/tcp jako povolení pro příchozí spojení. Pokud ale chcete, můžete směr i rozhraní upřesnit. digitalocean.com.

6.1 Směr: in / out
sudo ufw allow in  on enp3s0 to any port 22 proto tcp
sudo ufw allow out on enp3s0 to any port 53 proto udp
  • allow in – povolit příchozí provoz na daném rozhraní.
  • allow out – povolit odchozí provoz (pokud byste měli default deny outgoing).

6.2 Pravidla na konkrétním rozhraní
Užitečné u strojů s více síťovými kartami (např. router, virtualizační server):
sudo ufw allow in on enp0s3 to any port 22 proto tcp
sudo ufw allow in on enp0s8 from 192.168.10.0/24 to any port 22 proto tcp


7. Práce s očíslovanými pravidly (status numbered)
Jak firewall roste, je potřeba s pravidly pracovat systematicky.

7.1 Výpis s čísly
sudo ufw status numbered
Výstup ukáže číslo každého pravidla. help.ubuntu.com.
Například:   
[ 1 ] 1716,1739:1764/tcp          ALLOW IN       Anywhere                  
[ 2 ] 1716,1739:1764/tcp          ALLOW OUT    Anywhere

7.2 Smazání pravidla podle čísla
sudo ufw delete 3
Smaže třetí pravidlo v seznamu a ostatní se posunou.

7.3 Vložení pravidla na konkrétní pozici
Například pravidlo, které musí být vyhodnoceno jako první:
sudo ufw insert 1 deny from 203.0.113.45
Pořadí pravidel je důležité: jakmile paket odpovídá nějakému pravidlu, další se už nezkoumají. Proto je vhodné mít nejdříve konkrétnější blokace a až potom obecnější „povol vše ze sítě 192.168.1.0/24“. help.ubuntu.com.


8. Profily aplikací (Apache, Nginx, OpenSSH, Zorin Connect)

8.1 Základ – seznam profilů
Mnoho balíčků vytváří v UFW tzv. aplikační profily („application profiles“), které sdružují potřebné porty pod jeden název. Profily se nacházejí v /etc/ufw/applications.d/. Medium.com.
Seznam profilů:
sudo ufw app list
Detail k profilu:
sudo ufw app info "Apache Full"
sudo ufw app info "OpenSSH"
Příklad:
sudo ufw app info "zorin-connect"
Profil : zorin-connect
Titul: Zorin Connect
Popis: Connect your mobile device with your Zorin OS computer
Porty:
 1716,1739:1764/tcp
 1716,1739:1764/udp

8.2 Příklad: Apache a Nginx
Profily typicky vypadají takto (příklady):
  • Apache, Apache Full, Apache Secure. digitalocean.com.
  • Nginx HTTP, Nginx HTTPS, Nginx Full.
Povolení webového serveru:
sudo ufw allow "Apache Full"
# nebo
sudo ufw allow "Nginx Full"

8.3 Příklad: Zorin Connect / KDE Connect
Zorin Connect (postavený na KDE Connect) používá dynamické porty v rozsahu 1714–1764 pro TCP i UDP. Na Zorin OS se typicky povolí: Zorin Forum.com.
sudo ufw allow 1714:1764/udp
sudo ufw allow 1714:1764/tcp
sudo ufw reload
Po tomto nastavení by měl Zorin Connect začít korektně fungovat přes UFW.

8.4 Vytvoření vlastního profilu (pro pokročilejší použití)
Pro interní službu (např. domácí NAS, vlastní aplikace) lze vytvořit vlastní profil v /etc/ufw/applications.d/moje-app.conf:
[MojeApp]
title=Moje domácí aplikace
description=Vnitřní služba na portu 5555/tcp
ports=5555/tcp
Poté:
sudo ufw app update MojeApp
sudo ufw allow "MojeApp"


9. Logování a diagnostika

9.1 Zapnutí a vypnutí logování
sudo ufw logging on
sudo ufw logging off
Případně úroveň:
sudo ufw logging low
sudo ufw logging medium
sudo ufw logging high
sudo ufw logging full
Základní nastavení logging on (low) je většinou dostačující. help.ubuntu.com.

9.2 Kde logy najít
Na běžných systémech:
  • /var/log/ufw.log
  • nebo přes journalctl:
sudo journalctl -u ufw

9.3 Jak číst logy (zjednodušeno)
Typický řádek:
[UFW BLOCK] IN=enp3s0 OUT= MAC=... SRC=203.0.113.45 DST=192.168.1.10 PROTO=TCP SPT=54321 DPT=22
  • UFW BLOCK – paket byl zablokován.
  • IN – rozhraní, kterým paket přišel.
  • SRC – zdrojová IP adresa.
  • DST – cílová IP adresa (váš stroj).
  • SPT – zdrojový port, DPT – cílový port (např. 22 = SSH). help.ubuntu.com.


10. Ochrana SSH – „limit“ proti bruteforce
Pro SSH se doporučuje využít speciální akci limit, která omezuje počet pokusů za čas a chrání tak před hrubou silou.
sudo ufw limit ssh
# nebo ekvivalent
sudo ufw limit 22/tcp
Pravidlo limit funguje podobně jako allow, ale pokud dojde k příliš mnoha spojovacím pokusům z jedné IP adresy během krátké doby, UFW začne tyto pokusy blokovat.


11. Praktický scénář 1: domácí desktop (Zorin / Debian)
Cíl:
  • výchozí politika: deny incoming, allow outgoing.
  • povolit:
    • OpenSSH (pro vzdálený přístup),
    • Zorin Connect,
    • případně Samba (sdílení souborů v síti).

11.1 Kroky (stávající scénář s SSH, Zorin Connect, Sambou)
Nastavit výchozí politiku:
sudo ufw default deny incoming
sudo ufw default allow outgoing
Povolit SSH:
sudo ufw allow OpenSSH
# nebo
sudo ufw allow 22/tcp
Povolit Zorin Connect:
sudo ufw allow 1714:1764/udp
sudo ufw allow 1714:1764/tcp
Povolit sdílení souborů (Samba – lokální síť):
sudo ufw allow from 192.168.1.0/24 to any app Samba
# pokud profil Samba není, lze použít porty:
sudo ufw allow from 192.168.1.0/24 to any port 137,138 proto udp
sudo ufw allow from 192.168.1.0/24 to any port 139,445 proto tcp
Aktivovat firewall:
sudo ufw enable
Ověřit konfiguraci:
sudo ufw status verbose
Výsledkem je desktop, který odmítá nevyžádané příchozí spojení z internetu, ale funguje v domácí síti podle potřeby.

11.2 Varianta bez SSH – minimální konfigurace pro Zorin Connect
V předchozím příkladu jsme nastavili firewall UFW pro desktop se Zorin OS tak, aby bylo možné používat SSH, Zorin Connect a případně další služby. Následující varianta ukazuje co nejjednodušší konfiguraci pro běžný domácí počítač, kde není potřeba vzdálený přístup přes SSH a uživatel chce pouze používat Zorin Connect (KDE Connect).

1. Nastavení výchozí politiky firewallu
Nejprve je vhodné nastavit výchozí chování firewallu – zablokovat veškerý příchozí provoz a povolit odchozí:
sudo ufw default deny incoming
sudo ufw default allow outgoing
Tím určíte:
  • příchozí provoz (incoming) – ve výchozím stavu je zakázaný,
  • odchozí provoz (outgoing) – ve výchozím stavu je povolený.
Dále se budou přidávat pouze výjimky pro služby, které má mít počítač zpřístupněné.

2. Povolení portů pro Zorin Connect (KDE Connect)
Zorin Connect (postavený na KDE Connect) používá porty v rozsahu 1714–1764 pro TCP i UDP. Pro základní domácí použití stačí povolit tento rozsah takto:
sudo ufw allow 1714:1764/tcp
sudo ufw allow 1714:1764/udp
Tím povolíte příchozí spojení na portech 1714–1764, která Zorin Connect potřebuje pro komunikaci mezi počítačem a mobilním zařízením.
Pokud chcete být opatrnější a povolit tuto komunikaci opravdu jen v rámci domácí sítě (například 192.168.1.0/24), můžete použít přesnější pravidla:
sudo ufw allow from 192.168.1.0/24 to any port 1714:1764 proto tcp
sudo ufw allow from 192.168.1.0/24 to any port 1714:1764 proto udp
V tomto případě je komunikace Zorin Connect povolena pouze za předpokladu, že zařízení (například mobilní telefon) má IP adresu v rozsahu domácí sítě.

3. Aktivace firewallu a kontrola nastavení
Jakmile jsou výchozí politiky a pravidla připravené, můžete firewall aktivovat:
sudo ufw enable
Aktuální stav včetně pravidel zobrazíte příkazem:
sudo ufw status verbose
Typický výstup může vypadat například takto:
Status: active
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To                         Action         From
--                           ------           ----
1714:1764/tcp          ALLOW IN    Anywhere
1714:1764/udp         ALLOW IN    Anywhere
nebo v případě omezení na domácí síť:
1714:1764/tcp          ALLOW IN    192.168.1.0/24
1714:1764/udp         ALLOW IN    192.168.1.0/24
V tomto minimalistickém nastavení:
  • je veškerý příchozí provoz ve výchozím stavu zakázaný,
  • jsou povoleny pouze porty potřebné pro Zorin Connect,
  • SSH ani jiné služby zpřístupněné nejsou, protože pro ně neexistuje žádné povolující pravidlo.


12. Praktický scénář 2: jednoduchý domácí server
Příklad: domácí server běžící na Ubuntu/Zorin:
  • poskytuje web (HTTP/HTTPS),
  • SSH pouze z domácí sítě,
  • běžná výchozí politika: deny incoming, allow outgoing.

12.1 Kroky
Výchozí politika:
sudo ufw default deny incoming
sudo ufw default allow outgoing
Povolit HTTP/HTTPS:
sudo ufw allow http
sudo ufw allow https
# nebo
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Povolit SSH jen z domácí sítě:
sudo ufw allow from 192.168.1.0/24 to any port 22 proto tcp
Volitelně přidat ochranu proti bruteforce:
sudo ufw limit 22/tcp
Aktivace firewallu:
sudo ufw enable
Ověřit:
sudo ufw status numbered


13. Doporučené postupy a časté chyby

13.1 Doporučení
  • Nejprve si sestavit pravidla, pak firewall zapnout.
  • Na vzdáleném serveru vždy nejdříve povolit SSH (OpenSSH, 22/tcp). digitalocean.com.
  • Pravidelně kontrolovat ufw status numbered a odstraňovat nevyužitá pravidla. help.ubuntu.com.
  • Používat profily aplikací, pokud jsou k dispozici (Apache, Nginx, OpenSSH, …). digitalocean.com.
  • Nezapomínat na IPv6 – pokud je v /etc/default/ufw IPV6=yes, UFW vytváří i (v6) pravidla.

13.2 Časté chyby
  • Zapnutí UFW na vzdáleném serveru bez předchozího povolení SSH (okamžité odříznutí).
  • Kombinace více firewallů najednou (např. UFW + firewalld), která vede k nejasnostem v pravidlech. digitalocean.com.
  • Zapomenuté rozsahy portů (např. Zorin/KDE Connect) – povolí se jen jeden port, ale aplikace používá více portů.


14. Přehled základních příkazů UFW
Níže najdete stručné vysvětlení základních příkazů, které UFW nabízí (podle výstupu ufw --help).

Základní příkazy

enable
Zapne firewall UFW a začne aplikovat všechna aktuálně definovaná pravidla. Při prvním spuštění může zobrazit varování, že se mohou přerušit existující spojení (např. SSH). Na vzdáleném serveru je vhodné mít předem povolené SSH.

disable
Vypne firewall UFW. Pravidla se přestanou uplatňovat na síťový provoz, ale konfigurace UFW se obvykle zachová, aby bylo možné firewall znovu snadno zapnout pomocí ufw enable.

default ARG
Nastaví výchozí politiku (policy) pro příchozí nebo odchozí provoz. Typické použití:
  • ufw default deny incoming – všechna příchozí spojení se zamítnou.
  • ufw default allow outgoing – všechna odchozí spojení se povolí.
Tento příkaz určuje „základní chování“ firewallu, na které se pak staví konkrétní pravidla.

logging LEVEL
Nastaví úroveň logování firewallu. Hodnota LEVEL může být například:
  • off – logování vypnuto,
  • low, medium, high, full – různé úrovně podrobnosti.
Používá se např.:
sudo ufw logging on
sudo ufw logging low
sudo ufw logging full

allow ARGS
Přidá pravidlo, které povolí provoz podle zadaných parametrů. Typické příklady:
  • ufw allow 22/tcp – povolí SSH,
  • ufw allow 80/tcp – povolí HTTP,
  • ufw allow from 192.168.1.0/24 to any port 22 proto tcp – povolí SSH z lokální sítě.
ARGS může obsahovat port, protokol, zdrojovou/cílovou adresu, síťové rozhraní a další.

deny ARGS
Přidá pravidlo, které zakáže provoz podle zadaných parametrů. Paket je tiše zahozen (odesílatel nedostane odpověď). Příklad:
sudo ufw deny 25/tcp
sudo ufw deny from 203.0.113.45

reject ARGS
Podobné jako deny, ale paket je aktivně odmítnut – vzdálená strana dostane odpověď (například TCP RST nebo ICMP „port unreachable“). To může být vhodné, pokud chcete dát protistraně vědět, že služba není dostupná, místo „tichého“ ignorování.

limit ARGS
Přidá „limitované“ pravidlo – typicky pro ochranu SSH proti útokům hrubou silou. Příklad:
sudo ufw limit ssh
# nebo
sudo ufw limit 22/tcp
Tento typ pravidla povolí spojení, ale pokud z jedné IP přijde příliš mnoho pokusů za krátký čas, začne je dočasně blokovat.

Poznámka:
  • ARG / ARGS v nápovědě jsou jen zástupné názvy pro „argumenty“, které si tam dosadíte: port, službu, IP, síť, směr, rozhraní atd.
  • Nikdy nepíšete doslova allow ARGS, ale vždy ufw allow ...něco konkrétního....
Příklad překladu z nápovědy (ufw --help) do reality:
  • allow ARGS → sudo ufw allow 22/tcp nebo sudo ufw allow from 192.168.1.0/24 to any port 22 proto tcp
  • default ARG → sudo ufw default deny incoming nebo sudo ufw default allow outgoing

delete RULE|NUM
Smaže existující pravidlo. Lze použít dvěma způsoby:
  • ufw delete allow 22/tcp – smaže pravidlo definované touto definicí,
  • ufw status numbered → zjistit číslo pravidla → ufw delete 3 – smaže pravidlo s daným číslem.
Použití s číslem je často jednodušší a přehlednější.

insert NUM RULE
Vloží nové pravidlo na zadanou pozici v seznamu. Příklad:
sudo ufw insert 1 deny from 203.0.113.45
Pravidlo se vloží jako první, takže se vyhodnotí dříve než ostatní. To je důležité, pokud potřebujete mít určité blokace „nadřazené“ ostatním pravidlům.

prepend RULE
Přidá nové pravidlo na začátek seznamu (před všechna ostatní). Chová se podobně jako insert 1 RULE, ale bez nutnosti ručně zadávat číslo:
sudo ufw prepend deny from 203.0.113.45

route RULE
Přidá pravidlo pro směrovaný (přeposílaný) provoz – tedy ne pro vlastní stroj, ale pro provoz, který přes něj pouze prochází (např. když počítač funguje jako router nebo brána). Jedná se o pokročilejší použití UFW a v domácím desktopu se zpravidla nevyužívá.

route delete RULE|NUM
Smaže existující směrovací pravidlo (analogicky k delete, ale pro route pravidla).

route insert NUM RULE
Vloží směrovací pravidlo na konkrétní pozici (analogicky k insert, ale pro route pravidla).

reload
Znovu načte konfiguraci firewallu bez úplného vypnutí. Používá se například po úpravě pravidel (scriptem nebo v konfiguračních souborech), aby se změny promítly do běžícího firewallu:
sudo ufw reload

reset
Vrátí UFW do výchozího stavu. Typicky:
  • vypne UFW,
  • smaže všechna pravidla,
  • nastaví výchozí politiky zpět na původní hodnoty.
Před provedením se obvykle ptá na potvrzení. Tento příkaz používejte opatrně – ztratíte veškerá ručně vytvářená pravidla.

status
Zobrazí aktuální stav firewallu a seznam pravidel v základním formátu. Například:
sudo ufw status

status numbered
Zobrazí stav firewallu podobně jako status, ale každému pravidlu přiřadí číslo. Tento formát je užitečný pro mazání pravidel podle čísla (ufw delete NUM).

status verbose
Zobrazí detailnější stav firewallu – včetně výchozích politik, úrovně logování, stavu IPv6 atd. Příklad:
sudo ufw status verbose

show ARG
Zobrazí podrobnější report o interním stavu firewallu (například generovaná pravidla na nižší úrovni). Konkrétní volby pro ARG najdete v manuálové stránce man ufw. Tento příkaz je užitečný především pro pokročilejší analýzu nebo ladění konfigurace.

version
Zobrazí verzi UFW a případně další související informace. Příklad:
sudo ufw version

Příkazy pro profily aplikací
UFW umí pracovat s tzv. aplikačními profily (např. Apache Full, Nginx Full, OpenSSH), které definují potřebné porty pro danou službu.

app list
Vypíše seznam všech dostupných aplikačních profilů v systému:
sudo ufw app list

app info PROFILE
Zobrazí detailní informace o konkrétním profilu – název, popis a především seznam portů, které profil zahrnuje.
Příklad:
sudo ufw app info "Apache Full"
sudo ufw app info "OpenSSH"

app update PROFILE
Aktualizuje daný profil v UFW, typicky po ruční úpravě souboru v adresáři /etc/ufw/applications.d/. Používá se spíše výjimečně, hlavně pokud si vytváříte nebo upravujete vlastní aplikační profily.

app default ARG
Nastaví výchozí politiku pro aplikační profily. ARG obvykle určuje, zda se mají aplikace v profilech implicitně povolovat nebo zakazovat. V běžné domácí konfiguraci většinou není potřeba tento příkaz měnit – postačí explicitně povolovat konkrétní aplikace pomocí ufw allow "Název profilu".


15. Praktický příklad: vytvoření vlastního profilu UFW pro testovací webový server
V této části si ukážeme praktický, plně funkční příklad, jak vytvořit vlastní aplikační profil v UFW a jak jej použít v kombinaci s jednoduchým testovacím webovým serverem. Cílem je, aby si čtenář mohl vše vyzkoušet krok za krokem ve svém edukačním prostředí.

1. Vytvoření souboru s profilem MojeApp
Aplikační profily UFW jsou uloženy v adresáři:
/etc/ufw/applications.d/
Nejprve vytvořte nový soubor s názvem moje-app.conf:
sudo nano /etc/ufw/applications.d/moje-app.conf
Do souboru vložte následující obsah:
[MojeApp]
title=Testovací webový server na portu 8000/tcp
description=Jednoduchý HTTP server pro cvičení s UFW (např. python3 -m http.server)
ports=8000/tcp
Vysvětlení:
  • MojeApp – název profilu, který budete dále používat v příkazech UFW (app info, allow atd.).
  • title – krátký, srozumitelný název profilu, který se zobrazí ve výpisu UFW.
  • description – popis, k čemu profil slouží (vhodné pro vlastní orientaci i pro ostatní administrátory).
  • ports=8000/tcp – definice portu a protokolu, který se má pro tuto aplikaci použít (v našem případě TCP port 8000).
Soubor uložte a editor zavřete.

2. Načtení a ověření nového profilu v UFW
Aby UFW nový profil „uviděl“, je potřeba jej načíst. Můžete použít:
sudo ufw app update MojeApp
# případně:
sudo ufw reload
Nyní ověřte, že je profil k dispozici:
sudo ufw app list | grep MojeApp
Pokud vše proběhlo správně, měl by se ve výpisu objevit název MojeApp.
Detailní informace o profilu zobrazíte příkazem:
sudo ufw app info MojeApp
Uvidíte zde název, popis a seznam portů, které profil používá. Tento výstup je vhodný i pro případný screenshot do dokumentace.

3. Spuštění testovacího webového serveru na portu 8000
Aby mělo nastavení profilu smysl, je potřeba mít skutečnou službu, která naslouchá na portu 8000. Pro testování si vystačíte s jednoduchým HTTP serverem v Pythonu 3, který je dostupný prakticky na každé moderní linuxové distribuci.
V libovolném adresáři (například ve vaší domovské složce) spusťte:
cd ~
python3 -m http.server 8000
Tento příkaz spustí jednoduchý webový server na portu 8000/tcp a bude zobrazovat obsah aktuálního adresáře. Pro testování firewallu je to ideální, protože nevyžaduje žádnou další instalaci.

4. Povolení testovací aplikace pomocí profilu „MojeApp“ v UFW
Nyní si ukážeme dvě varianty, jak profil použít: bezpečnější (jen pro domácí síť) a jednoduchou (povolit všude).

4.1 Bezpečnější varianta – povolení pouze z lokální sítě
Pokud je například domácí síť 192.168.1.0/24, můžete profil povolit pouze pro zařízení v této síti:
sudo ufw allow from 192.168.1.0/24 to any app MojeApp
Tím říkáte firewallu:
Povolit přístup k portu 8000/tcp (profil MojeApp) pouze z IP adres v rozsahu 192.168.1.0/24.
Stav firewallu si ověříte příkazem:
sudo ufw status verbose
Ve výpisu by mělo být vidět pravidlo podobné tomuto:
To                             Action         From
--                              ------           ----
8000/tcp (MojeApp)      ALLOW IN    192.168.1.0/24

4.2 Jednodušší varianta – povolení odkudkoli (jen pro testovací prostředí)
Pokud se jedná pouze o izolované testovací prostředí (například virtuální stroj, který není přímo dostupný z internetu), můžete pro zjednodušení povolit profil všem:
sudo ufw allow "MojeApp"
Ve výpisu potom uvidíte:
8000/tcp (MojeApp)      ALLOW IN    Anywhere
Tato varianta je ale vhodná spíše pro laboratorní účely. V běžném prostředí je vždy bezpečnější omezit přístup alespoň na konkrétní síť nebo IP adresu.

5. Otestování přístupu z jiného počítače
Na jiném počítači ve stejné síti (nebo ve virtuálním stroji připojeném do stejného segmentu) můžete funkčnost otestovat například pomocí příkazu curl:
curl http://IP_ADRESA_VAŠEHO_SERVERU:8000
nebo otevřením adresy v internetovém prohlížeči:
http://IP_ADRESA_VAŠEHO_SERVERU:8000
Pokud je vše správně nastaveno:
  • Uvidíte výpis souborů z adresáře, ve kterém běží příkaz python3 -m http.server 8000.
  • Na firewallu UFW bude port 8000/tcp otevřen podle pravidel profilu MojeApp.

6. Vypnutí a odstranění pravidla
Pokud testování dokončíte a port 8000 již nechcete mít otevřený, můžete pravidlo jednoduše odstranit. Nejprve si zobrazte očíslovaný seznam pravidel:
sudo ufw status numbered
Následně smažte příslušné pravidlo podle čísla, například:
sudo ufw delete 3
nebo konkrétní pravidlo definované profilem:
sudo ufw delete allow "MojeApp"
Profil MojeApp v /etc/ufw/applications.d/ může v systému zůstat – později jej můžete kdykoli znovu použít.
Tento praktický příklad ukazuje, jak lze v UFW vytvářet vlastní aplikační profily a přehledně s nimi pracovat. Stejným způsobem je možné definovat profily pro další interní služby (například vlastní webové aplikace, domácí NAS nebo rozhraní různých administrativních panelů), a mít tak firewall nastavený nejen bezpečně, ale i přehledně.


Zdroje:

---------------------------------------------------------------------------------------------------------------------------------------------------------

PODPOŘTE OTEVŘENÉ NÁVODY:

Věřím v otevřené znalosti. Každý návod = rešerše, testování na reálném nebo virtuálním počítači a různých Linux distribucích (např.: Rocky/Debian/Zorin/a další), psaní krok za krokem a finální kontrola — typicky 4 – 10 hodin práce. Web držím bez reklam i trackingu a chci, aby tak zůstal.

Pokud vám tento článek ušetřil čas nebo nervy, budu rád za dobrovolnou podporu (částku si určíte sami). Prosím, do zprávy pro příjemce vždy napište: NA KAFE / Linux-doma.cz, pomůže mi to přehledně zaúčtovat měsíční souhrn. Děkuji! — Miro.
BANKOVNÍ PŘEVOD / QR PLATBA (bez částky)



Číslo účtu (CZK): 2000197842 / 2010
IBAN: CZ41 2010 0000 0020 0019 7842
BIC/SWIFT: FIOBCZPPXXX
Zpráva pro příjemce: NA KAFE / Linux-doma.cz
BITLIFI / QR PLATBA (bez částky)



Uživatel: +420607271333@bitlifi.com
Poznámka: NA KAFE / Linux-doma.cz

---------------------------------------------------------------------------------------------------------------------------------------------------------
© 2025   Ing. Miroslav Zakřevský.   All rights reserved.
 
Návrat na obsah | Návrat do hlavní nabídky