bezpečnost:firewall:ufw

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

bezpečnost:firewall:ufw [2019/02/25 18:21] (aktuální)
Řádek 1: Řádek 1:
 +====== UFW ======
  
 +{{page>konvence/pokročilý}}
 +
 +**UFW** neboli Uncomplicated Firewall je výchozí nástroj k nastavení pravidel pro firewall v Ubuntu. UFW je možné nastavovat pouze přes [[:Terminál]], a je proto vhodný hlavně pro servery. Používání UFW vyžaduje více zkušeností s Ubuntu. Méně zkušení uživatelé a uživatelé osobních počítačů jistě uvítají existenci [[GUFW]], což je grafická nadstavba UFW.
 +
 +====== Instalace ======
 +
 +{{:ubuntu.png}} Od [[:vydání]] Ubuntu 8.04 je UFW součástí základní instalace Ubuntu i jeho derivátů.
 +
 +{{:apt.png}} [[:Instalace programů|Nainstalujte]] balík [[apt://ufw|ufw]].
 +
 +====== Spuštění ======
 +
 +{{:info.png}} UFW se spouští automaticky při startu systému. Ve výchozí instalaci je ovšem tato možnost zakázána. Spusťte tedy v [[Terminál|terminálu]] příkaz
 +
 +<code>
 +sudo ufw enable
 +</code>
 +čímž spouštění UFW při každém startu povolíte.
 +
 +Spouštění UFW opět zakážete příkazem
 +
 +<code>
 +sudo ufw disable
 +</code>
 +====== Použití ======
 +
 +Nejprve dvě malé poznámky. Každé nastavení je možné předznačit parametrem ''--dry-run'', který znamená "běh na sucho", tedy jen zkusit co by nastavení ovlivnilo, ale neprovádět.
 +
 +Postojů, který může firewall zaujmout je obecně několik:
 +
 +  * allow - povolit
 +  * deny - zakázat (pro druhou stranu to vypadá, že nikdo nikdo neodpovídá/neexistuje)
 +  * reject - zakázat, ale odpovědět, že aktivní odmítáme
 +  * limit - povolit, ale omezit počet připojeních za nějakou časovou jednotku jako obranu proti brutal-force útokům. Např. více, jak 30 pokusů o spojení za minutu bude zakázáno.
 +
 +===== Status =====
 +
 +Příkazem
 +
 +<code>
 +sudo ufw status
 +</code>
 +máte možnost zjistit jestli je firewall zapnut a jaká pravidla jsou použita.
 +
 +===== Výchozí nastavení =====
 +
 +Pokud neurčíte dále jinak, bude použito výchozí globální pravidlo, kterým můžete zakázat (doporučeno), povolit nebo odmítnout všechna příchozí spojení ze sítě. Obecná syntaxe je:
 +
 +<code>
 +ufw [--dry-run] default allow|deny|reject [incoming|outgoing]
 +</code>
 +Pokud nedefinujeme směr (příchozí incoming nebo odchozí outgoing), bude se brát příchozí. Zakázání příchozího je doporučeno, ovšem odchozí způsobí, že se nedostanete nikam.
 +
 +<code>
 +sudo ufw default deny
 +</code>
 +nebo povolit
 +
 +<code>
 +sudo ufw default allow
 +</code>
 +Pokud
 +
 +
 +===== Pravidla =====
 +
 +Kromě povolení/zakázání všech příchozích spojení, je nejdůležitější vlastností UFW možnost nastavení pravidel pro jednotlivé přenosy podle portu, protokolu nebo IP adresy.
 +
 +==== Porty a protokoly ====
 +
 +Zakázat/povolit přenosy podle konkrétní portu můžete příkazem
 +
 +<code>
 +sudo ufw allow číslo_portu
 +</code>
 +respektive
 +
 +<code>
 +sudo ufw deny číslo_portu
 +</code>
 +Volitelně můžete přidat i protokol. Tedy příkaz
 +
 +<code>
 +sudo ufw allow číslo_portu/tcp
 +
 +sudo ufw deny číslo_portu/tcp
 +</code>
 +pro povolení/zákaz přenosu na portu ''číslo_portu'' pro protokol ''tcp'', respektive
 +
 +<code>
 +sudo ufw allow číslo_portu/udp
 +
 +sudo ufw deny číslo_portu/udp
 +</code>
 +pro protokol ''udp''.
 +
 +
 +==== Služby ====
 +
 +Přímo jednotlivé služby (tak jak jsou vypsány v ''/etc/services'') můžete povolovat/blokovat příkazem
 +
 +<code>
 +sudo ufw allow služba
 +</code>
 +respektive
 +
 +<code>
 +sudo ufw deny služba
 +</code>
 +==== Pokročilá syntaxe ====
 +
 +=== IP adresa ===
 +
 +Přenos z konkrétní IP adresy můžete povolit/zakázat příkazem
 +
 +<code>
 +sudo ufw allow from ip_adresa
 +</code>
 +respektive
 +
 +<code>
 +sudo ufw deny from ip_adresa
 +</code>
 +=== IP adresa a port ===
 +
 +Přenos z konkrétní IP adresy přes konkrétní port můžete povolit/zakázat příkazem
 +
 +<code>
 +sudo ufw allow from ip_adresa to any port číslo_portu
 +</code>
 +respektive
 +
 +<code>
 +sudo ufw deny from ip_adresa to any port číslo_portu
 +</code>
 +==== Smazání pravidla ====
 +
 +Pravidlo smažete jednoduše příkazem
 +
 +<code>
 +sudo ufw delete pravidlo
 +</code>
 +kde ''pravidlo'' je ve stejném formátu jako příkaz, kterým bylo zavedeno (bez ''sudo ufw'').
 +
 +Druhou možností místo složitého znovu vypisování pravidla je ''ufw delete 3'', kde 3 je číslo našeho pravidla, které je vidět v ''ufw status numbered''.
 +
 +===== Omezení počtu spojeních =====
 +ufw podporuje parametrem ''limit'' možnost omezit počet spojeních jako obranu proti opakovaným pokusům např. při brutal-force útoku. ufw odmítne spojení, pokud se IP adresa pokusila navázat více, jak 6 a více spojeních během posledních 30 vteřin.
 +
 +<code>
 +ufw limit ssh/tcp
 +</code>
 +Více informací o této schopnosti najdete na [[http://www.debian-administration.org/articles/187]]
 +
 +====== Příklady ======
 +
 +<code cpp>
 +#Porty a protokoly
 +sudo ufw allow 53                                                 ---> Povolí přenos přes port 53.
 +
 +sudo ufw deny 23/tcp                                          ---> Zakáže přenos přes port 23 na protokolu tcp.
 +
 +#Služby
 +sudo ufw deny ssh                                               ---> Zakáže SSH.
 +
 +#IP adresa
 +sudo ufw deny from 207.46.232.182                   ---> Zakáže přenos z IP adresy 207.46.232.182.
 +
 +#IP adresa a port
 +sudo ufw allow from 192.168.0.4 to any port 22  ---> Povolí přenos z IP adresy 192.168.0.4 přes port 22.
 +
 +#Mazání
 +sudo ufw delete allow 53                                      ---> Smaže dříve zavedené pravidlo, které umožňovalo
 +                                                                                    přenos přes port 53.
 +</code>
 +====== Logování ======
 +Ve výchozím nastavení není povolen ufw vůbec, a po ''ufw enable'' není povoleno logování. Logovacích úrovní rozlišuje ufw několik, ale úplně stačí úroveň on neboli low, kdy se loguje jen zablokované spojení.
 +
 +<code>
 +ufw logging on              --> zapne (úroveň low)
 +ufw logging off              --> vypne
 +ufw logging LEVEL        --> zapne na určitou úroveň
 +</code>
 +Popis, co přesně logují jednotlivé úrovně viz [[http://manpages.ubuntu.com/manpages/lucid/en/man8/ufw.8.html|manuálová stránka]] (''man ufw'').
 +
 +V mém Ubuntu 10.04 Lucid Lynx se ukládají zprávy do ''/var/log/ufw.log''.
 +
 +====== Odkazy ======
 +  * [[http://www.root.cz/clanky/ufw-firewall-jednoduse-a-rychle/]] - další český návod
 +  * [[https://edge.launchpad.net/ufw|Domovská stránka programu]] {{:en.png}}
 +  * [[https://help.ubuntu.com/community/Uncomplicated_Firewall_ufw|Anglický návod k UFW]] {{:en.png}}
  • Poslední úprava: 2019/02/25 18:21
  • (upraveno mimo DokuWiki)