Ufw: firewall jednoduše a rychle

Adam Štrauch 19. 8. 2010

IPtables je mocný nástroj, který se správnými znalostmi dokáže cokoli, co si jen umíte u filtrování provozu na síti představit. Když ale potřebujete ochránit pouze svůj počítač, ať už jde o desktop či notebook, je to jako obrovský kanón na malého vrabce. Proto vznikla řada projektů, které firewall zjednodušují.

Řeč bude o projektu ufw, což je zkratka pro Uncomplicated Firewall. Cílem projektu je přinést jednoduché rozhraní pro linuxový firewall, a hned při prvních pokusech zjistíte, že se mu to daří docela dobře.

Pomocí ufw lze nastavit:

  • pravidla pro běžící služby
  • pravidla pro aplikace
  • pravidla pro konkrétní porty a rozsahy portů

Důležité je, že o iptables prakticky nic nemusíte vědět a firewall nastavíte. Pokud vám dělá problémy používat řádkové aplikace, můžete použít gufw, což je grafická nadstavba pro ufw. Nečekejte od ufw nic převratného, je to jednoúčelová aplikace, která má zamezit komunikaci aplikací, u kterých si to nepřejete.

Ufw se vyvíjí pro Ubuntu a je v něm k dispozici od verze 8.04 ve výchozí instalaci. Gufw je taktéž vyvíjeno pro Ubuntu, ale není k dispozici ve výchozí instalaci, takže pokud si chcete firewall jednoduše naklikat, je potřeba gufw nainstalovat:

$ sudo aptitude install gufw 

Teď byste měli mít všechno pro řádkové i grafické nastavení firewallu a můžeme si ukázat několik příkladů použití, které se vám budou v běžném provozu hodit.

ufw

Základem každého firewallu je výchozí politika a přidávání a odebírání pravidel. Na tohle je ufw jako stvořené a obě změny se s ním dělají víc než dobře.

Nejdříve začneme tím, že firewall zapneme:

$ ufw enable 

Tím jsme inicializovali strukturu chainů v iptables, která obsahuje pravidla pro logování a ve výchozím stavu jsou zakázána příchozí spojení. Také je nastaven stavový firewall, který vpustí pakety připojení, jež jsou vytvořeny od nás, takže všechny běžné služby by měly fungovat. Pokud netušíte, co je to chain nebo iptables, můžete zkusit náš seriál o iptables, ale pro další práci s ufw to vědět nepotřebujete. Uvádím to jen jako porovnání, pokud iptables znáte. Když se vám firewall přestane líbit, můžete ho zase vypnout:

$ ufw disable 

Rozhodnete-li se volit jinou politiku než je povolování jednotlivých služeb, tedy že povolíte všechno a budete některé služby zakazovat, bude se vám hodit následující ukázka:

$ ufw default allow incoming 

nebo

$ ufw default reject incoming 

Klíčové slovo „incoming“, tedy příchozí provoz, můžete změnit na „outgoing“, tedy odchozí provoz.

Po zapnutí firewallu a nastavení výchozího chování je čas pro přidávání pravidel. Ty se dají rozdělit do třech skupin, jak je popsáno výše. Můžete pracovat s přednastavenými profily aplikací, služeb a pak s jednotlivými porty či jejich rozsahem. Když třeba provozujeme na lokálním stroji webový server, povolíme jeho službu:

$ ufw allow in http 

Pokud to je SSH, povolíme SSH:

$ ufw allow in ssh 

A podobně to funguje i u ostatních. Nezapomeňte, že takhle povolujete příchozí provoz. Odchozí provoz se povoluje nahrazením parametru „in“ za parametr „out“. Pokud nás zajímá seznam dostupných profilů, tak ten získáme po zadání:

$ ufw app list 

Profil ssh ani http tady nehledejte, protože tu nejsou vypsané, ale najdete je v gufw, společně s mnoha dalšími.

Nicméně mnohem častěji budete povolovat jednotlivé porty a tady jsou parametrové orgie přeci jen větší:

ufw allow|reject|deny in|out proto tcp|udp from any|IP to any|IP port 80,22,21
ufw allow|reject|deny in|out proto tcp|udp from any|IP port 8000 to any|IP port 8010 

V prvním příkladu je ukázáno, jak nastavit politiku pro několik portů najednou a ve druhém a třetím jde o rozsah portů 8000 až 8010. Také se zde setkáváme s parametry „allow“, „reject“ a „deny“. Pomocí „allow“ provoz povolíme, přes „reject“ dáme vědět druhé straně, že tudy ne a „deny“ pakety tiše zahodí. Běžně se sluší dávat o stavu portu vědět druhé straně, ale pokud jste opravdu paranoidní, použijte deny.

Možností, jak pravidla zapsat, je hromada, proto vám sem dám několik příkladů z výpisu gufw, které si budete případně schopni upravit podle sebe:

$ ufw allow in proto tcp from any to any port 51413
$ ufw allow in proto tcp from any to any port 135,139,445
$ ufw allow in from any to any port 8000
$ ufw allow in from any to any port 8000-8100
$ ufw allow in proto tcp from any port 8000 to any port 8010 

Stav firewallu získáme zadáním:

$ ufw status 

Se seznamem pravidel pak:

$ ufw status verbose 

Ve výpise získáme:

Status: active
Do                         Akce        Od
--                         ----        --
[ 1] 51413/tcp             ALLOW IN    Anywhere
[ 2] 22                    ALLOW IN    Anywhere
[ 3] 135,139,445/tcp       ALLOW IN    Anywhere
[ 4] 137,138/udp           ALLOW IN    Anywhere
[ 5] 2049                  ALLOW IN    Anywhere 

Když už máme čísla pravidel, můžeme pohodlně pravidla mazat:

$ ufw delete 3
Deleting:
 allow 135,139,445/tcp
Proceed with operation (y|n)? y
Pravidlo smazáno 

Nemusíte se bát, že byste udělali chybu, ufw se zeptá, jestli má smazat konkrétní pravidlo. Lze používat podobně jako v iptables mazání zadáním přesného pravidla, ale přes indexy je to jednodušší při ručním mazání.

gufw

Pokud zrovna nekonfigurujete nějaký jednoduchý server nebo nenastavujete firewall skriptem, třeba podle nějakých podmínek, spíš vás bude zajímat grafická nadstavba gufw, protože s ním lze firewall udělat přece jen o něco rychleji a pohodlněji.

Gufw má jednoduché rozhraní, které v úvodu nabídne zapnutí firewallu a tlačítka pro přidání a odstranění pravidel.

Přidávání pravidel je rozděleno do třech tabů:

  • Předpřipravené
  • Jednoduché
  • Pokročilé

V předpřipravených najdete několik služeb a aplikací, které gufw zná a ví, jak pro ně firewall nastavit, pravděpodobně lépe, než to víte sami. Není to ale volba pro paranoidní uživatele, kteří chtějí mít pod kontrolou každý port.

V tabu „Jednoduché“ se nastavují taková pravidla, která povolují jen jeden port a nepotřebujeme u nich definovat IP adresu. Opačný případ je tab „Pokročilé“, kde najdeme nastavení rozsahu IP adres i portů. Zápis se provádí podobně jako u ufw.

widgety

U všech pravidel máme možnost povolit rozšířené akce, kde kromě pořadí pravidla lze nastavit, jestli se mají průchody přes pravidlo logovat v dmesg, což se hodí pro ladění pravidel.

Závěr

Já sám používám ufw a gufw na desktopu a notebooku a je to perfektní pomocník, když potřebujete firewall bez hledání pravidel v manuálu pro iptables. Není sice tak flexibilní, ale to se mu dá samozřejmě odpustit, na běžném osobním počítači prakticky nic jiného než povolení Samby/NFS a podobně nepotřebujete. Díky ufw se dá pohodlně naskriptovat firewall podle požadavků aktuální situace a skript ani nemusí být nějak složitý.

Našli jste v článku chybu?
Vitalia.cz: Muž, který miluje příliš. Ženám neimponuje

Muž, který miluje příliš. Ženám neimponuje

DigiZone.cz: Rapl: seriál, který vás smíří s ČT

Rapl: seriál, který vás smíří s ČT

Podnikatel.cz: Instalatér, malíř a elektrikář. "Vymřou"?

Instalatér, malíř a elektrikář. "Vymřou"?

Podnikatel.cz: ČSSZ posílá přehled o důchodovém kontě

ČSSZ posílá přehled o důchodovém kontě

Lupa.cz: Kde leží hardwarový pupek světa?

Kde leží hardwarový pupek světa?

Vitalia.cz: 5 chyb, které děláme při skladování potravin

5 chyb, které děláme při skladování potravin

Podnikatel.cz: Letáky? Lidi zuří, ale ony stále fungují

Letáky? Lidi zuří, ale ony stále fungují

Lupa.cz: Blíží se konec Wi-Fi sítí bez hesla?

Blíží se konec Wi-Fi sítí bez hesla?

Lupa.cz: Další Češi si nechali vložit do těla čip

Další Češi si nechali vložit do těla čip

Lupa.cz: Patička e-mailu závazná jako vlastnoruční podpis?

Patička e-mailu závazná jako vlastnoruční podpis?

DigiZone.cz: Technisat připravuje trojici DAB

Technisat připravuje trojici DAB

Vitalia.cz: dTest odhalil ten nejlepší kečup

dTest odhalil ten nejlepší kečup

Vitalia.cz: Tradiční čínská medicína a rakovina

Tradiční čínská medicína a rakovina

DigiZone.cz: Numan Two: rozhlasový přijímač s CD

Numan Two: rozhlasový přijímač s CD

Vitalia.cz: Jsou vegani a vyrábějí nemléko

Jsou vegani a vyrábějí nemléko

Vitalia.cz: Tesco nabízí desítky tun jídla zdarma

Tesco nabízí desítky tun jídla zdarma

DigiZone.cz: Světový pohár v přímém přenosu na ČT

Světový pohár v přímém přenosu na ČT

Lupa.cz: Jak levné procesory změnily svět?

Jak levné procesory změnily svět?

DigiZone.cz: Parlamentní listy: kde končí PR...

Parlamentní listy: kde končí PR...

DigiZone.cz: Wimbledon na Nova Sport až do 2019

Wimbledon na Nova Sport až do 2019