Späť na blog

Nastavenie brány firewall s FirewallD na CentOS 7

Nastavenie brány firewall s FirewallD na CentOS 7

Úvod

Firewalld je riešenie na správu firewallu, ktoré je k dispozícii pre mnohé distribúcie Linuxu. Slúži ako rozhranie pre systém filtrovania paketov iptables poskytovaný jadrom Linuxu. V tejto príručke sa dozviete, ako nakonfigurovať firewall pre váš server. Ukážeme vám tiež základy správy firewallu pomocou nástroja na správu firewall-cmd.

Základy Firewalld

FirewallD využíva koncepty zón a služieb, namiesto reťazcov a pravidiel iptables. V závislosti od zón a služieb, ktoré nakonfigurujete, môžete riadiť, aká prevádzka je povolená alebo zakázaná smerom do a zo systému. FirewallD je možné konfigurovať a spravovať pomocou nástroja príkazového riadka firewall-cmd.

Inštalácia a povolenie spustenia firewallu pri štarte

Na väčšine distribúcií Linuxu je už firewallD nainštalovaný. Ak ho však potrebujete nainštalovať sami, zadajte syntax nižšie:

Po nainštalovaní firewalld môžete službu povoliť a reštartovať server:

Následne reštartujte server. Váš firewall bude povolený po úspešnom reštartovaní servera. Potom pomocou príkazu nižšie overte, či bola služba aktivovaná:

check firewall state FirewallD

Výstup ukazuje, že predvolené nastavenie firewallu funguje.

Kontrola predvolených nastavení

Zónu vybranú serverom môžete skontrolovať pomocou tohto príkazu:

check firewall default zone

Overte aktívnu zónu zadaním:

firewall active zones

Vytlačte konfiguráciu predvolenej zóny, aby ste zistili pravidlá priradené k verejnej oblasti, pomocou tejto syntaxe:

list all rules FirewallD

Výstup naznačuje, že táto zóna je predvolená aj aktívna. Ukazuje tiež, že k tejto zóne sú priradené rozhrania eth0 a eth1.

Kontrola alternatívnych zón

Okrem predvolených a aktívnych zón existujú aj ďalšie zóny, ktoré môžete preskúmať. Zadajte tento príkaz, aby ste videli všetky dostupné zóny:

firewall check other zones

Skontrolujte konkrétnu konfiguráciu priradenú k zóne pridaním parametra –zone= do príkazu –list-all:

check zone configuration FirewallD

 Zmena zóny rozhrania

Zónu rozhrania môžete jednoducho zmeniť pomocou možnosti –change-interface v kombinácii s možnosťou –change-interface. Nasledujúci príkaz priradí rozhranie eth1 k pracovnému priestoru (work):

Zmeny môžete overiť zadaním:

changing firewall interface zones FirewallD

Zmena predvolenej zóny

Ak chcete zmeniť predvolenú zónu, použite parameter –set-default-zone nasledovaný názvom zóny, ktorú chcete nastaviť ako predvolenú. Napríklad na zmenu predvolenej zóny na start by ste mali spustiť nasledujúci príkaz:

Následne môžete zmeny overiť pomocou:

firewall change default zone

Nastavenie pravidiel pre vaše aplikácie

Prejdime si základy potrebné na definovanie výnimiek firewallu pre služby:

Pridanie služby do vašich zón

Najpriamejší spôsob je pridať potrebné porty alebo služby do zón, ktoré používate. Podobne môžete použiť možnosť –get-services na zobrazenie všetkých dostupných služieb:

firewall get services FirewallD

Službu pre zónu môžete aktivovať pomocou parametra –add-service =. Akcia cieľuje na predvolenú zónu alebo akúkoľvek zónu definovanú parametrom –zone =. V predvolenom nastavení je nakonfigurovaná iba aktuálna relácia firewallu. Trvalú konfiguráciu firewallu môžete nastaviť aktivovaním príznaku –permanent. Napríklad, ak prevádzkujete webový server, ktorý poskytuje bežnú HTTP prevádzku, môžete túto prevádzku povoliť pre rozhrania v našej zóne “public” pre túto reláciu zadaním:

Ak chcete zmeniť predvolenú zónu, môžete parameter –zone = vynechať. Úspešnosť operácie môžete skontrolovať pomocou operácií –list-all alebo –list-services:

add service to zone

Keď overíte, že všetko funguje podľa očakávania, s najväčšou pravdepodobnosťou budete chcieť zmeniť trvalé pravidlá firewallu, aby bola vaša služba dostupná aj po reštarte. Zmenu v našej zóne “public” môžeme vykonať natrvalo zadaním syntaxe:

Či to bolo úspešné, môžete skontrolovať pridaním príznaku –permanent k operácii –list-services. Pre všetky trvalé operácie (–permanent) musíte použiť sudo:

Vaša zóna “public” teraz povoľuje HTTP prevádzku na porte 80. Toto môžete pridať do aktuálnej relácie a sady trvalých pravidiel pomocou príkazu nižšie:

Ak neexistujú žiadne služby, ktoré by vyhovovali vašim požiadavkám, máte dve vynikajúce možnosti, ako túto situáciu vyriešiť:

  1. Otvorenie portu pre vaše zóny

Najjednoduchší spôsob, ako pridať podporu pre vašu konkrétnu aplikáciu, je otvoriť porty používané v každej zóne. Je to také jednoduché, ako určiť port alebo rozsah portov a príslušný protokol pre porty, ktoré potrebujete otvoriť. Napríklad, ak vaša aplikácia beží na porte 5000 a používa TCP, môžete ju pridať do zóny “public” pre túto reláciu pomocou parametra –add-port =. Protokoly môžu byť TCP alebo UDP:

Ak chcete skontrolovať, či bola operácia úspešná, použite operáciu –list-ports:

Môžete tiež zadať rozsah pre sériové rozhranie oddelením počiatočného a koncového portu v rozsahu spojovníkom. Napríklad, ak vaša aplikácia používa UDP porty 4990 až 4999, môžete ich otvoriť v zóne “public” zadaním:

Po otestovaní ich pravdepodobne budeme chcieť pridať do trvalého firewallu. Môžete to urobiť zadaním nasledujúceho:

adding ports to permanent firewall

  1. Definovanie služby

Služba je kolekcia portov s priradeným názvom a popisom. Služby sa spravujú jednoduchšie ako porty, vyžaduje si to však trochu počiatočnej práce. Najjednoduchší spôsob, ako začať, je skopírovať existujúci skript (v / usr / lib / firewalld / services) do adresára /etc/firewalld/services. Môžete napríklad skopírovať definíciu služby SSH a použiť ju v definícii služby “example” nasledovne. Názov súboru bez prípony XML určuje názov služby v zozname služieb firewallu:

V tomto bode môžete upraviť definíciu v skopírovanom súbore:

Najprv súbor obsahuje definíciu SSH, ktorú ste skopírovali:

Väčšina tejto definície pozostáva z metadát. Musíte zmeniť krátky názov služby v značkách <short>. Toto je čitateľný názov služby. Predstavte si, že pre našu službu “example” musíme otvoriť port 7777 pre TCP a 8888 pre UDP. Existujúcu definíciu môžete zmeniť prechodom do režimu INSERT stlačením klávesu i:

Potom stlačte kláves ESC a napíšte: x pre uloženie a zatvorenie súboru. Potom zadajte príkaz nižšie na reštartovanie firewallu, aby ste mali prístup k novej službe;

Potom použite príkaz nižšie na získanie zoznamu dostupných služieb:

get services

Táto služba je teraz dostupná vo vašej zóne.

Vytvorenie vlastných zón

Hoci preddefinované zóny budú pravdepodobne pre väčšinu používateľov postačujúce, môže byť užitočné definovať si vlastné zóny, ktoré lepšie popisujú ich funkciu.

Pri pridávaní zóny ju pridajte do trvalých nastavení firewallu. Potom môžete vykonať reload, aby sa nastavenia preniesli do vašej relácie. Napríklad môžete vytvoriť dve skôr spomínané zóny zadaním:

Pomocou tohto príkazu môžete potvrdiť, že sa nachádzajú vo vašej trvalej konfigurácii:

firewall zones

Znova načítajte firewall, aby sa tieto nové zóny preniesli do aktívnej konfigurácie:

Teraz môžete priradiť príslušné služby a porty vašim zónam. Napríklad pre zónu “publicweb” by ste mohli chcieť pridať služby SSH, HTTP a HTTPS:

list public web zone

 

Taktiež môžete pridať službu DNS do vašej zóny “privateDNS” pomocou tohto príkazu:

list privateDNS zone FirewallD

Ďalej môžete zmeniť svoje rozhrania na tieto nové zóny, aby ste ich otestovali:

Otestujte konfiguráciu, aby ste zistili, či funguje. Ak vám tieto hodnoty vyhovujú, musíte pridať rovnaké pravidlá do trvalej konfigurácie. Môžete to urobiť opätovným použitím pravidiel s indikátorom —permanent:

 

Po trvalom použití týchto pravidiel môžete reštartovať sieť a znova načítať službu firewallu:

Skontrolujte, či boli zóny priradené správne:

check active zones FirewallD

Okrem toho sa uistite, že obe zóny majú správnu službu:

Ak chcete nastaviť jednu zo svojich zón ako predvolenú pre ostatné rozhrania, musíte toto správanie nakonfigurovať pomocou parametra –set-default-zone= pomocou tohto príkazu:

Záver

V tomto bode ste úspešne vytvorili svoje vlastné zóny. Mali by ste mať základné znalosti o správe služby firewalld vo vašom systéme CentOS pre každodenné použitie. Dobré pochopenie služby firewalld vám umožní naplno využiť jej silu a flexibilitu.

Príjemnú prácu s počítačom!

 

author

Akshay Nagpal

Autor · CloudSigma

Preslav Dobrev je kreatívny dizajnér v spoločnosti CloudSigma, ktorý sa zameriava na konzistentnú firemnú identitu prostredníctvom tradičných a inovatívnych marketingových kanálov. Dokáže brilantne spájať umeleckú víziu so strategickým marketingom, čím vytvára pôsobivé príbehy značky.

Komentáre

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