A firewall je jedným z kľúčových komponentov zabezpečenia systému. Je zodpovedný za správu prichádzajúcich a odchádzajúcich pripojení cez sieť. Je to primárna línia obrany pre vaše servery a dáta. Preto je mimoriadne dôležité mať dobre nakonfigurovaný firewall. V tejto príručke vás prevedieme krokmi nastavenia firewallu pomocou UFW na Ubuntu 18.04.
UFW na Ubuntu
Termín UFW znamená „Uncomplicated Firewall“ (Nekomplikovaný firewall). Je to predvolený firewall program, ktorý je predinštalovaný v Ubuntu. UFW je v skutočnosti rozhranie pre iptables. Cieľom UFW je uľahčiť konfiguráciu a správu firewallu. Hoci samotný iptables je robustná a flexibilná možnosť, pre začiatočníkov nie je príliš prívetivý. UFW uľahčuje prácu začiatočníkom aj skúseným používateľom.
Najprv sa pozrite na nášho všestranného sprievodcu, ktorý vám pomôže oboznámiť sa so základnými funkciami UFW. Môžete tiež postupovať podľa tohto návodu na inštaláciu vášho Ubuntu servera. Teraz poďme na to!
Na začiatok, ak z nejakého dôvodu nemáte UFW nainštalovaný, nainštalujte ho ihneď:
|
1 |
$ sudo apt install ufw |
Konfigurácia UFW
-
Používanie IPv6
V súčasnosti je IPv4 stále dominantnou silou. S ohľadom na to sa väčšina tejto príručky venuje aj IPv4. Našťastie, UFW prichádza aj s podporou pre IPv6. Všetko, čo musíte urobiť, je povoliť túto funkciu v konfiguračnom súbore UFW.
Najprv otvorte konfiguračný súbor UFW v textovom editore. Na uloženie zmien musí byť textový editor spustený s oprávneniami sudo:
|
1 |
$ sudo vim /etc/default/ufw |
Vyhľadajte „IPV6“ a uistite sa, že je nastavené na „yes“.
-
Predvolená politika
Ak s firewallom pracujete prvýkrát, odporúča sa najprv definovať predvolené pravidlá. Tieto pravidlá určujú, ako sa riadi prevádzka, ktorá nezodpovedá žiadnemu explicitnému pravidlu. V predvolenom nastavení je UFW nakonfigurovaný tak, aby odmietal všetky prichádzajúce pripojenia, ale povoľoval všetky odchádzajúce pripojenia. Definuje, že nikto sa nemôže pripojiť k serveru, zatiaľ čo aplikácia spustená na serveri sa môže pripojiť von.
Nasledujúce príkazy len predefinujú predvolené správanie UFW. Upozorňujeme, že to zmení správanie UFW, ak bolo predtým upravené:
|
1 2 |
$ sudo ufw default deny incoming $ sudo ufw default allow outgoing |
Pre osobný počítač by tieto samotné pravidlá firewallu stačili. Servery však vyžadujú viac na správne zabezpečenie.
Povolenie SSH pripojení
Spôsob, akým je teraz UFW nakonfigurovaný, spôsobí odmietnutie všetkých prichádzajúcich pripojení. Pre vzdialený server je to neprípustné. Bez prístupu k serveru nie je možné nič urobiť. Aby ste sa vyhli tomuto problému, UFW môže byť nakonfigurovaný tak, aby povolil prichádzajúce SSH alebo HTTP pripojenia.
Ak chcete povoliť SSH pripojenia k serveru, spustite nasledujúci príkaz. V podstate to povie UFW, aby povolil všetky pripojenia na porte 22. Je to port, na ktorom predvolene počúva SSH démon:
|
1 |
$ sudo ufw allow ssh |
Namiesto tohto príkazu je možné priamo nakonfigurovať povolenie pripojení na port 22. Tento port je definovaný v súbore /etc/services:
|
1 |
$ sudo ufw allow 22 |
Pretože port 22 je predvolený pre SSH démona, môže byť tiež náchylný na útoky. Čo ak je SSH server nakonfigurovaný tak, aby počúval na inom porte? V takejto situácii musí UFW povoliť pripojenie k tomuto portu. Za predpokladu, že SSH server počúva na porte 1234, potom použite nasledujúci príkaz:
|
1 |
$ sudo ufw allow 1234 |
Povolenie UFW
Hoci sú pravidlá UFW vytvorené, nebudú nič robiť, kým sa UFW neaktivuje. V predvolenom nastavení je UFW vypnutý, čo znamená, že napriek deklarovaniu pravidiel ich nebude vynucovať. Ak chcete povoliť UFW, spustite nasledujúci príkaz:
|
1 |
$ sudo ufw enable |
UFW môže zobraziť varovné hlásenie o prerušení existujúcich SSH pripojení. Keďže SSH pripojenia boli nakonfigurované ako povolené, povolenie UFW nespôsobí žiadne prerušenie. Ak chcete zobraziť, aké pravidlá sú nastavené, spustite nasledujúci príkaz:
|
1 |
$ sudo ufw status verbose |
Povolenie rôznych pripojení
V tomto bode by mal byť nástroj UFW vybavený ďalšími pravidlami, aby bol zážitok stabilný. Pripojenia, ktoré majú byť povolené, závisia od vašich konkrétnych potrieb. Už bolo ukázané, ako prikázať UFW, aby povolil pripojenia na základe názvu služby alebo čísla portu.
Tu sú niektoré ďalšie porty, ktoré bývajú veľmi často otvorené:
- SSH (
port 22): Toto je predvolený port nakonfigurovaný pre pripojenia SSH. - HTTP (
port 80): Toto je predvolený port, ktorý používajú nešifrované webové servery. - HTTPS (
port 443): Toto je predvolený port, ktorý používajú šifrované webové servery.
Ak chcete povoliť pripojenia SSH, spustite jeden z nasledujúcich príkazov:
|
1 2 |
$ sudo ufw allow ssh $ sudo ufw allow 22 |
Ďalej, ak chcete povoliť pripojenia HTTP, spustite jeden z nasledujúcich príkazov:
|
1 2 |
$ sudo ufw allow http $ sudo ufw allow 80 |
Ak chcete povoliť pripojenia HTTPS, spustite jeden z nasledujúcich príkazov:
|
1 2 |
$ sudo ufw allow https $ sudo ufw allow 443 |
Rozsah portov
Doteraz sme si ukázali, ako povoliť konkrétny port. Čo ak je však potrebný rozsah portov? Deklarovať každý port v UFW zvlášť je dosť neefektívne. Niektoré aplikácie používajú viacero portov. Našťastie, UFW umožňuje deklarovať rozsah portov. Ak to chcete urobiť, použite nasledujúcu štruktúru príkazu:
|
1 |
$ sudo ufw allow <start>:<end>/<protocol> |
Nasledujúci príklad povoľuje pripojenia X11, ktoré používajú porty 6000 až 6007:
|
1 2 |
$ sudo ufw allow 6000:6007/tcp $ sudo ufw allow 6000:6007/udp |
Odporúča sa deklarovať protokoly vždy, keď je to možné. Vo väčšine prípadov to však nie je potrebné a všetko bude fungovať bez problémov.
Špecifické IP adresy
Pri používaní UFW je tiež možné filtrovať pripojenia podľa konkrétnych IP adries. V predvolenom nastavení bude UFW blokovať pripojenia z akejkoľvek IP adresy. Je možné deklarovať povolenie pripojenia z určitých IP adries. Ak chcete povoliť pripojenie z IP adresy, použite nasledujúcu štruktúru príkazu:
|
1 |
$ sudo ufw allow from <ip_address> |
Môžete tiež deklarovať konkrétne porty, ku ktorým sa IP adresa môže pripojiť. Ak to chcete urobiť, pridajte k príkazu to any port nasledované číslom portu:
|
1 |
$ sudo ufw allow from <ip_address> to any port <port> |
Podsiete
Ak potrebujete povoliť podsieť IP adries, je to možné urobiť pomocou zápisu CIDR. V tomto príklade UFW povolí pripojenie z IP adries v rozsahu od 203.0.113.1 do 203.0.113.254:
|
1 |
$ sudo ufw allow from 203.0.113.0/24 |
Podobne ako v predchádzajúcom kroku je tiež možné špecifikovať port, ku ktorému sa tieto IP adresy môžu pripojiť:
|
1 |
$ sudo ufw allow from 203.0.113.0/24 to any port <port> |
Pripojenie k špecifickému sieťovému rozhraniu
V serverovom prostredí môže byť k systému pripojených viacero sieťových rozhraní. Pomocou UFW je možné definovať, že určité pravidlo sa vzťahuje len na konkrétne sieťové rozhranie. Najprv skontrolujte všetky sieťové rozhrania pripojené k serveru. Hlavná pozornosť sa sústreďuje na názov cieľového sieťového rozhrania:
|
1 |
$ ip addr |
V našom prípade existuje iba jedno sieťové rozhranie ens3, ktoré sa pripája k verejnému internetu. Ak chcete povoliť prichádzajúce pripojenia z tohto sieťového rozhrania, použite nasledujúcu štruktúru príkazu:
|
1 |
$ sudo ufw allow in on <network_interface> |
Taktiež je možné definovať port, na ktorý môže prichádzať prevádzka zo sieťového rozhrania:
|
1 |
$ sudo ufw allow in on <network_interface> to any port <port> |
Odmietnutie pripojenia
Podľa predvolenej konfigurácie bude UFW odmietať pripojenie z akéhokoľvek zdroja (okrem deklarovaných výnimiek). Toto je odporúčaný spôsob používania UFW. Môže však byť potrebné zablokovať konkrétne pripojenia z určitej zdrojovej IP adresy alebo podsiete. Možno je predvolené správanie UFW nastavené tak, aby povoľovalo všetky pripojenia (neodporúča sa).
Na odmietnutie pripojenia z určitých IP adries vyžaduje UFW pravidlá odmietnutia. Písanie pravidiel odmietnutia je celkom jednoduché. Vezmite akékoľvek pravidlo povolenia, nahraďte výraz „allow“ výrazom „deny“ a voila! Stane sa z neho pravidlo odmietnutia.
Pozrite sa na nasledujúci príklad. Ak chcete odmietnuť akékoľvek HTTP pripojenie, použite nasledujúce pravidlo odmietnutia:
|
1 2 |
$ sudo ufw deny http $ sudo ufw deny 80 |
Na odmietnutie pripojenia z 203.0.113.1, použite nasledujúce pravidlo odmietnutia:
|
1 |
$ sudo ufw deny from 203.0.113.1 |
Vymazanie pravidiel
Všetko, čo sme sa doteraz naučili, je ako vytvárať pravidlá. Rovnako ako sa pravidlá vytvárajú, dajú sa aj vymazať. V prípade UFW existujú dva konkrétne spôsoby vymazania pravidla.
-
Vymazanie pravidla podľa čísla pravidla
Toto je najjednoduchší spôsob vymazania pravidla UFW. Každé pravidlo v UFW má svoje číslo. Nasledujúci príkaz vypíše všetky pravidlá UFW spolu s ich číslom:
|
1 |
$ sudo ufw status numbered |
Nasledujúci príkaz vymaže pravidlo určené číslom pravidla:
|
1 |
$ sudo ufw delete <rule_number> |
-
Vymazanie pravidla podľa samotného pravidla
Toto je zložitejšia metóda vymazania pravidla. Vyžaduje si manuálne zadanie samotného pravidla, ktoré chcete vymazať. V nasledujúcom príklade UFW vymaže pravidlo určené pomocou allow http:
|
1 |
$ sudo ufw delete allow http |
Pravidlo mohlo byť špecifikované aj pomocou allow 80. V takom prípade ho vymaže nasledujúci príkaz:
|
1 |
$ sudo ufw delete allow 80 |
Vymazaním pravidla sa vymaže pre IPv4 aj IPv6.
Kontrola stavu a pravidiel UFW
Je dôležité uistiť sa, či je UFW aktívny alebo nie. Ak chcete zistiť stav UFW, spustite nasledujúci príkaz:
|
1 |
$ sudo ufw status verbose |
Ak je stav „inactive“, aktivujte ho podľa kroku Enabling UFW vyššie. Ak je aktívny, UFW nahlási stav „active“ a vypíše všetky aktívne pravidlá.
Zakázanie UFW
Ak z nejakého dôvodu nebudete UFW používať, zakážte ho pomocou nasledujúceho príkazu:
|
1 |
$ sudo ufw disable |
Ak je UFW zakázaný, všetky vytvorené pravidlá už nie sú aktívne. Pravidlá sa však nevymažú. Po opätovnej aktivácii UFW budú všetky pravidlá opäť aktívne. Čo ak je aktuálna konfigurácia UFW v neporiadku? Namiesto postupného vymazávania pravidiel je možné vymazať ich všetky jedným príkazom. Ak chcete resetovať UFW, spustite nasledujúci príkaz:
|
1 |
$ sudo ufw reset |
Upozorňujeme, že to nezmení predvolené správanie UFW, ktoré bolo nakonfigurované na začiatku.
Záver
Správna konfigurácia firewallu je nevyhnutná na zaistenie bezpečnosti a funkčnosti. Mal by byť nakonfigurovaný tak, aby povoľoval iba potrebné prichádzajúce pripojenia a zároveň obmedzoval tie nepotrebné.
Ak sa chcete zoznámiť s ďalšími riešeniami firewallu, pozrite sa na náš blog pre ďalšie zdroje:
- Nastavenie firewallu pomocou FirewallD na CentOS 7
- Zoznam a vymazanie pravidiel firewallu Iptables
- Ako vybudovať robustné bezpečnostné opatrenia na ochranu vašich serverov
Príjemnú prácu s počítačom!











Komentáre
Zatiaľ žiadne komentáre. Buďte prvý.