Pouze pro návštěvníky našeho blogu Získejte další 3 měsíce zdarma + 10% slevu na tříletý plán YSBLOG10
Chyťte dohodu

Jak nastavit UFW na Linuxovém serveru

UFW (Uncomplicated Firewall) je jednoduché rozhraní pro manage iptables/nftables v Linuxu. Nastavení UFW na linuxovém serveru: nainstalujte jej, nastavte výchozí zásady (zakázat příchozí, povolit odchozí), povolit SSH, otevřít požadované servisní porty (např. HTTP/HTTPS), povolit UFW a ověřit pravidla. Tím se váš server chrání pomocí minimálních, čitelných příkazů.

Pokud chcete bezpečně a rychle nastavit UFW na linuxovém serveru, tento podrobný návod pokrývá vše od instalace přes pokročilá pravidla, řešení problémů, aspekty Dockeru až po osvědčené postupy. Je napsán z hlediska hostingu a zabezpečení a pomáhá začátečníkům získat ochranu na produkční úrovni pomocí několika příkazů – aniž by se museli zamknout.

Co je UFW a proč ho používat?

UFW (Uncomplicated Firewall) je uživatelsky přívětivý nástroj příkazového řádku, který manages pravidly firewallu Linuxu. V závislosti na vaší distribuci konfiguruje iptables nebo nftables. Je standardně součástí Ubuntu a je k dispozici pro většinu systémů založených na Debianu/RHEL. UFW snižuje složitost pomocí lidsky čitelných příkazů, jako je „allow 22/tcp“, což je ideální pro vývojáře a správce systémů.

Hlavní výhody:

  • Syntaxe pro začátečníky srozumitelná pro bezpečné výchozí hodnoty
  • Rychlé pravidlo managepro společné služby (SSH, HTTP, HTTPS)
  • Profily pro aplikace (OtevřenéSSH, Apache, Nginx, Postfix)
  • IPv4 a IPv6 podpora
  • Trvalé i po restartu
  • Funguje dobře na VPS, dedikovaném serveru a mrak servery

Záměr vyhledávání: Bezpečné, rychlé a spolehlivé nastavení UFW

Většina čtenářů chce bezpečnou cestu k kopírování a vkládání povolit UFW bez ztráty SSH přístup, plus odpovědi na běžné otázky: jak povolit služby, otevřít porty, blokovat IP adresy, protokolovat a testovat pravidla, používat IPv6, pracovat s Dockerem a zotavovat se z chyb. Tato příručka vám to poskytne s osvědčenými postupy a podrobným návodem pro produkční použití.

Předpoklady a bezpečnostní kontrolní seznam

  • Přístup root nebo sudo na vašem Linuxovém serveru
  • váš SSH Číslo portu (výchozí 22; vlastní, pokud jste to změnili)
  • Servisní porty, které plánujete povolit (např. 80, 443, 5432)
  • Přístup ke konzoli/sériovému portu nebo metoda obnovy od vašeho poskytovatele v případě zablokování
  • Pro cloudové servery (AWS, GCP, Azure, DigitalOcean): sladění bezpečnostních skupin/firewallů VPC s UFW

V Ubuntu a Debianu je UFW často nainstalován ve výchozím nastavení. Pokud ne, nainstalujte ho:

sudo apt update
sudo apt install ufw

Na Fedoře:

sudo dnf install ufw
# Fedora defaults to firewalld. If you choose UFW, stop/disable firewalld first:
sudo systemctl stop firewalld
sudo systemctl disable firewalld
sudo systemctl mask firewalld
sudo systemctl enable ufw
sudo systemctl start ufw

V systémech RHEL, AlmaLinux, Rocky Linux (v případě potřeby povolte EPEL):

sudo dnf install epel-release -y
sudo dnf install ufw -y
sudo systemctl stop firewalld
sudo systemctl disable firewalld
sudo systemctl mask firewalld
sudo systemctl enable ufw
sudo systemctl start ufw

Důležité: Nespouštějte firewalld a UFW současně. Vyberte jeden firewall. manager, aby se předešlo konfliktům.

Rychlý start: Bezpečné nastavení za 5 minut

Pro konfiguraci UFW bez ztráty přístupu postupujte podle této bezpečné sekvence.

# 1) Check if IPv6 should be managed too (recommended on dual-stack servers)
sudo nano /etc/default/ufw
# Ensure: IPV6=yes
# Save and exit if you changed it:
# Then reload defaults after enabling later

# 2) Allow SSH FIRST (replace 22 if using a custom port)
sudo ufw allow 22/tcp comment 'SSH'

# 3) Set sensible defaults
sudo ufw default deny incoming
sudo ufw default allow outgoing

# 4) Allow web traffic if this is a web server
sudo ufw allow 80/tcp comment 'HTTP'
sudo ufw allow 443/tcp comment 'HTTPS'

# 5) Enable UFW (type 'y' to proceed)
sudo ufw enable

# 6) Verify
sudo ufw status verbose

Pokud jste změnili /etc/default/ufw pro IPv6, aplikovat a znovu načíst:

sudo ufw reload
sudo ufw status numbered

Základní příkazy UFW (Taháček)

  • Povolit/Zakázat: sudo ufw enable, sudo ufw disable
  • Stav: sudo ufw status, sudo ufw status verbose, sudo ufw status numbered
  • Povolit/Zakázat: sudo ufw allow 22/tcp, sudo ufw deny 25/tcp
  • Smazat podle čísla: sudo ufw status numbered pak sudo ufw delete <num>
  • Limit sazby (SSH): sudo ufw limit 22/tcp
  • Povolit rozsah: sudo ufw allow 10000:20000/tcp
  • Povolit podle IP/podsítě: sudo ufw allow from 203.0.113.10 to any port 22 proto tcp, sudo ufw allow from 10.0.0.0/24 to any port 5432
  • Specifické pro rozhraní: sudo ufw allow in on eth0 to any port 22
  • Protokolování: sudo ufw logging on (úrovně: vypnuto, nízké, střední, vysoké, plné)
  • Resetovat: sudo ufw reset (odstraňuje pravidla; používejte opatrně)

Konfigurace běžných služeb

SSH (Vzdálený přístup)

Vždy dovolte svému SSH port před povolením UFW. Pokud jste se přestěhovali SSH na vlastní port (např. 2222), upravte podle toho:

# Default
sudo ufw allow 22/tcp comment 'SSH'

# Custom
sudo ufw allow 2222/tcp comment 'SSH (custom port)'

# Add rate limiting to slow brute-force attempts
sudo ufw limit 22/tcp

Webové servery (Nginx/Apache)

V Ubuntu může UFW používat profily aplikací:

# Show available app profiles
sudo ufw app list

# Common profiles:
sudo ufw allow 'Nginx Full'        # 80,443
sudo ufw allow 'Apache Full'       # 80,443

Generická pravidla založená na portech fungují všude:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Databáze (PostgreSQL, MySQL/MariaDB)

Povolte pouze databázové porty z důvěryhodných hostitelů nebo privátních sítí.

# PostgreSQL (5432) from app server only
sudo ufw allow from 10.0.0.10 to any port 5432 proto tcp

# MySQL/MariaDB (3306) from specific subnet
sudo ufw allow from 10.0.1.0/24 to any port 3306 proto tcp

Pošta, FTPa další služby

# SMTP
sudo ufw allow 25/tcp

# SMTPS/Submission
sudo ufw allow 465/tcp
sudo ufw allow 587/tcp

# IMAP(S) and POP3(S)
sudo ufw allow 993/tcp
sudo ufw allow 995/tcp

# FTP (and passive range example)
sudo ufw allow 21/tcp
sudo ufw allow 30000:31000/tcp

Pro FTP pasivním režimu, nakonfigurujte si také FTP serveru používat stejný pasivní rozsah portů.

Pokročilá pravidla a scénáře UFW

Výchozí zásady

# Recommended defaults
sudo ufw default deny incoming
sudo ufw default allow outgoing

# For hardened egress control (optional)
sudo ufw default deny outgoing
# Then allow specific outbound destinations/ports as needed

Povolit podle zdroje, portu, protokolu

# Single IP
sudo ufw allow from 203.0.113.5 to any port 22 proto tcp

# CIDR subnet
sudo ufw allow from 10.10.0.0/16 to any port 9200 proto tcp

# UDP example (DNS)
sudo ufw allow 53/udp

Pravidla specifická pro rozhraní

Užitečné, pokud má váš server veřejná a soukromá rozhraní:

# Only allow SSH on public interface eth0
sudo ufw allow in on eth0 to any port 22 proto tcp

# Allow database only on private interface eth1
sudo ufw allow in on eth1 to any port 5432 proto tcp

Rozsahy portů a skupiny služeb

# TCP range
sudo ufw allow 2000:2100/tcp

# UDP range
sudo ufw allow 60000:61000/udp

Omezení rychlosti a zmírnění hrubou silou

Omezení rychlosti omezuje opakované pokusy o připojení ze stejné IP adresy:

sudo ufw limit 22/tcp
sudo ufw limit 80/tcp
sudo ufw limit 443/tcp

Pro hlubší ochranu spárujte UFW s Fail2ban a dynamicky zablokujte zneužívající IP adresy na základě vzorců protokolů.

IPv6 Podpora

umožnit IPv6 v souboru /etc/default/ufw (IPV6=yes) a znovu načtěte soubor. UFW poté manage pravidla ip6tables/nftables, která odpovídají vašim IPv4 zásady, které zajistí, že váš server nebude vystaven IPv6 neúmyslně.

NAT, přesměrování a přesměrování portů

UFW zvládne NAT a forwarding úpravou before.rules a výchozí politiky forwardingu. Příklad: přesměrování portu 80 na 8080 na stejném serveru.

# 1) Enable forwarding in /etc/default/ufw
DEFAULT_FORWARD_POLICY="ACCEPT"

# 2) Edit /etc/ufw/before.rules (IPv4) and add before the *filter section:
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
COMMIT

# 3) Reload
sudo ufw reload

Buďte opatrní: Změny NAT ovlivňují tok provozu. Pečlivě otestujte a zdokumentujte své úpravy.

UFW a Docker: Co potřebujete vědět

Docker manipuluje s iptables přímo, což může obejít výchozí zásady UFW. Ve výchozím nastavení jsou publikované porty kontejnerů na hostiteli otevřené, i když UFW zakazuje příchozí data. Možnosti:

  • Vázat kontejnery na specifická rozhraní (např. 127.0.0.1) a reverzní proxy přes Nginx které ovládá UFW.
  • Používejte uživatelem definované mostové sítě Dockeru a vyhněte se --publish s výjimkou kontrolovaného proxy serveru.
  • Pokud víte, co děláte, zlepšete chování Dockeru v iptables (docker flags).

Praktický přístup: zpřístupnění služeb prostřednictvím Nginx na 80/443 zabezpečte tyto porty pomocí UFW a uchovávejte kontejnery v interních sítích.

Testování, ověřování a protokolování

Po povolení UFW ověřte otevřené porty a pravidla:

# On the server
sudo ufw status verbose
ss -tulpn

# From a remote host
nmap -Pn <server_ip>
nc -zv <server_ip> 22
curl -I http://<server_ip>

Povolit protokolování pro zachycení přerušeného/povoleného provozu:

sudo ufw logging medium
# Logs usually at /var/log/ufw.log (or via syslog/journal)
sudo tail -f /var/log/ufw.log

Odstraňování problémů a obnova

Vyhýbání se výlukám

  • Vždy povolit SSH (správný port) před povolením UFW.
  • Otevři na vteřinu SSH relaci před použitím změn, abyste se mohli vrátit zpět, pokud první relace přestane fungovat.
  • Mějte připravený přístup ke konzoli/sériovému rozhraní z vašeho hostingového panelu.

Společné opravy

# If you lost access (via console):
sudo ufw disable

# Re-allow SSH and re-enable:
sudo ufw allow 22/tcp
sudo ufw enable

# Reset all rules (careful: wipes configuration)
sudo ufw reset
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
sudo ufw enable

# Delete a bad rule by number
sudo ufw status numbered
sudo ufw delete <number>

Pokud jsou služby blokovány nadřazeným firewallem (skupiny zabezpečení AWS, firewally poskytovatelů cloudu), upravte tato pravidla tak, aby odpovídala UFW. Obě vrstvy musí provoz povolit.

Tipy a osvědčené postupy pro kalení

  • Nejmenší oprávnění: Povolit pouze požadované porty/IP adresy; zakázat vše ostatní.
  • Pro administrační služby a databáze preferujte pravidla s omezením na IP adresu nebo podsíť.
  • umožnit IPv6 managea zajistit paritu mezi IPv4 a IPv6 pravidla.
  • Použít omezení rychlosti zapnuto SSH a vysoce rizikové porty; pro dynamické zákazy přidejte Fail2ban.
  • Segmentové sítě: pro backendové služby používejte privátní podsítě.
  • Při diagnostice dočasně zaznamenávejte „střední“ nebo „vysokou“ hodnotu; pro normální provoz se vraťte na „nízkou“.
  • Zdokumentujte každé pravidlo s komentářem, aby týmy pochopily záměr.
  • Pravidla provádějte čtvrtletně a odstraňujte zastaralé povolenky.

Automatizace UFW (Cloud-Init a Ansible)

Fragment kódu Cloud-Init

#cloud-config
packages:
  - ufw
runcmd:
  - sed -i 's/IPV6=no/IPV6=yes/' /etc/default/ufw
  - ufw default deny incoming
  - ufw default allow outgoing
  - ufw allow 22/tcp comment 'SSH'
  - ufw allow 80/tcp comment 'HTTP'
  - ufw allow 443/tcp comment 'HTTPS'
  - yes | ufw enable
  - ufw status verbose

Příklad úlohy Ansible

- name: Install UFW
  apt:
    name: ufw
    state: present
  become: yes

- name: Configure UFW defaults
  ufw:
    state: enabled
    policy: deny
    direction: incoming
  become: yes

- name: Allow outgoing by default
  command: ufw default allow outgoing
  become: yes

- name: Allow SSH, HTTP, HTTPS
  ufw:
    rule: allow
    port: "{{ item }}"
    proto: tcp
  loop:
    - "22"
    - "80"
    - "443"
  become: yes

UFW vs. firewalld vs. iptables/nftables

  • UFW: Jednoduchý, srozumitelný pro člověka, skvělý pro většinu systémů s jedním hostitelem a prostředí Ubuntu/Debian.
  • firewalld: Výchozí na systémech založených na RHEL/Fedora; dynamické zóny a služby; vhodné pro komplexní prostředí s více rozhraními.
  • iptables/nftables: Nízkoúrovňový, nejflexibilnější; strmější křivka učení; ideální pro pokročilé scénáře a vlastní automatizaci.

Vyberte si nástroj, který váš tým zvládne manage Důslednost a správná politika jsou důležitější než konkrétní rámec.

Příklad z reálného světa: Produkční webová aplikace

  • Webový virtuální počítač: povolit 22/tcp pouze z kancelářských IP adres; povolit 80/443 do celého světa; směrovat provoz aplikace do kontejnerů přes Nginx; popřít všechno ostatní.
  • Virtuální počítač s databází: povolení 5432 pouze z privátní podsítě webového virtuálního počítače; žádný přístup k veřejné databázi.
  • Cache VM: povolení 6379 pouze z privátní podsítě webového VM; žádný veřejný přístup.
  • Monitorování: povolit 9100 a 9090 pouze z monitorovací podsítě.

Toto opatření se řídí principem co nejmenších privilegií a izoluje kritické služby, přičemž veřejný prostor je minimální.

Mírné doporučení: Bezpečný hosting s YouStable

Jako poskytovatele hostingu, YouStable nabízí VPS s SSD disky a dedikované servery, kde můžete nasadit obrazy připravené pro UFW, využít ochranu před DDoS útoky a získat rady ohledně posílení firewallu. Pokud migrujete nebo škálujete, náš tým vám může pomoci nastavit zásady UFW v souladu s vašimi potřebami a dodržováním předpisů.

Často kladené otázky: Nastavení UFW na Linuxovém serveru

Je UFW ve výchozím nastavení v Ubuntu povolen?

Ne. UFW je ve výchozím nastavení nainstalován na mnoha obrazech Ubuntu, ale ne vždy je povolen. Ověřte si to u sudo ufw statusPokud se zobrazuje „neaktivní“, nakonfigurujte pravidla a spusťte je. sudo ufw enable.

Jak mohu dovolit SSH bezpečně před povolením UFW?

Běh sudo ufw allow 22/tcp (nebo vaše vlastní SSH port) a poté nastavte výchozí hodnoty (deny incoming, allow outgoing), pak sudo ufw enableNechte si vteřinu SSH Relace otevřená pro testování a v případě potřeby se vrátit k původnímu stavu.

Jak otevřu port pomocí UFW?

Použijte sudo ufw allow <port>/<proto>Například otevřete HTTP a HTTPS pomocí sudo ufw allow 80/tcp a sudo ufw allow 443/tcpMůžete také povolit rozsahy: sudo ufw allow 10000:20000/tcp.

Jak zablokuji konkrétní IP adresu pomocí UFW?

Použijte pravidlo zamítnutí, volitelně pro konkrétní port: sudo ufw deny from 203.0.113.10 or sudo ufw deny from 203.0.113.10 to any port 22 proto tcpKontrola priority: specifičtější pravidla (podle IP adresy a portu) se shodují s pravidly obecnými.

Funguje UFW s IPv6?

Ano. Nastaveno IPV6=yes in /etc/default/ufwa poté znovu načtěte. UFW to udělá manage oba IPv4 a IPv6 pravidla a udržování konzistence zásad napříč zásobníky.

Jak resetuju nebo odstraním všechna pravidla UFW?

Běh sudo ufw reset Chcete-li odstranit všechna pravidla a obnovit výchozí nastavení. Poté znovu použijte zásady: výchozí nastavení, povolit SSH, požadované porty a sudo ufw enablePři spouštění resetu na vzdálených serverech buďte opatrní.

Je UFW lepší než firewalld?

Řeší stejný problém různými přístupy. UFW je jednodušší a běžnější v Ubuntu/Debianu. firewalld je výchozí v RHEL/Fedora a nabízí zóny a dynamické... manageVyberte si tu, která odpovídá vašim distribučním a týmovým dovednostem; nespouštějte obojí současně.

Final Word

Nastavení UFW na linuxovém serveru je jedním z nejrychlejších způsobů, jak snížit plochu pro útok. Používejte defaultní zakázání, povolte pouze nezbytné služby, povolte... IPv6, promyšleně protokolujte a důkladně testujte. Díky výše uvedeným krokům pro rychlý start a pokročilým příkladům můžete během několika minut přejít ze základní ochrany na zesílenou, produkční firewallovou politiku.

Sdílet přes:

Prahlad Prajapati

Prahlad je specialista na webhosting a expert na organický růst zaměřený na SEO z Indie. V digitálním prostoru působí od roku 2019 a pomáhá lidem rozvíjet jejich webové stránky pomocí čistých a udržitelných strategií. Je nadšený pro učení a rychlou adaptaci a věří, že malé detaily vedou k velkému úspěchu. Objevte jeho poznatky o webhostingu a SEO, které vám pomohou vylepšit vaši online prezentaci.

Zanechat komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

Přejděte na začátek