Otvorený port cmd brány firewall Centos 7

Nainštalované v operačný systém Firewall sa používa na zabránenie neoprávnenej premávke medzi nimi počítačové siete. Manuálne alebo automaticky sa vytvárajú špeciálne pravidlá pre firewall, ktoré sú zodpovedné za riadenie prístupu. Operačný systém vyvinutý na jadre Linuxu, CentOS 7 má vstavaný firewall a je spravovaný pomocou firewallu. FirewallD je predvolene povolený a dnes by sme chceli hovoriť o jeho nastavení.

Ako je uvedené vyššie, štandardným firewallom v CentOS 7 je nástroj FirewallD. Preto sa o nastavení brány firewall bude diskutovať pomocou tohto nástroja ako príkladu. Môžete nastaviť pravidlá filtrovania pomocou rovnakých iptables, ale to sa robí trochu iným spôsobom. Odporúčame, aby ste sa zoznámili s konfiguráciou spomínaného nástroja kliknutím na nasledujúci odkaz a začneme analyzovať FirewallD.

Základy brány firewall

Existuje niekoľko zón – súborov pravidiel pre riadenie prevádzky na základe dôvery v siete. Všetky majú svoje vlastné politiky, ktorých súhrn tvorí konfiguráciu firewallu. Ku každej zóne je priradené jedno alebo viac sieťových rozhraní, čo tiež umožňuje upraviť filtrovanie. Použité pravidlá priamo závisia od použitého rozhrania. Napríklad pri pripojení k verejnej sieti Wi-Fi POŽARNE DVERE zvýši úroveň kontroly a v domácej siete otvorí dodatočný prístup pre účastníkov reťazca. Daný firewall obsahuje nasledujúce zóny:

  • dôveryhodné — maximálna úroveň dôvery vo všetky sieťové zariadenia;
  • domov - skupina lokálna sieť. V prostredí existuje dôvera, ale prichádzajúce pripojenia sú dostupné len pre určité počítače;
  • práca - pracovná oblasť. Vo väčšine zariadení existuje dôvera a sú aktivované dodatočné služby;
  • dmz je zóna pre izolované počítače. Takéto zariadenia sú odpojené od zvyšku siete a umožňujú len určitú prichádzajúcu komunikáciu;
  • interná — zóna vnútorných sietí. Dôvera sa uplatňuje na všetky stroje, otvárajú sa ďalšie služby;
  • vonkajšia — zóna opačná k predchádzajúcej. V externých sieťach je aktívne maskovanie NAT, ktoré uzatvára internú sieť, ale neblokuje možnosť získať prístup;
  • verejné - zóna verejných sietí s nedôverou voči všetkým zariadeniam a individuálnym príjmom prichádzajúcej prevádzky;
  • blokovať - ​​všetky prichádzajúce požiadavky sa resetujú s odoslaním chyby icmp-host-zakázaný alebo icmp6-adm-zakázané;
  • pokles - minimálna úroveň dôvery. Prichádzajúce pripojenia sa prerušia bez akéhokoľvek upozornenia.

Samotné politiky môžu byť dočasné alebo trvalé. Keď sa parametre objavia alebo upravia, akcia brány firewall sa okamžite zmení bez potreby reštartu. Ak boli aplikované dočasné pravidlá, po reštartovaní FirewallD sa resetujú. Tak sa volá stále pravidlo – bude zachované trvalý základ pri použití argumentu -permanent.

Povolenie brány FirewallD

Najprv musíte spustiť FirewallD alebo sa uistiť, že je v aktívnom stave. Iba funkčný démon (bežiaci program pozadie) použije pravidlá brány firewall. Aktiváciu vykonáte niekoľkými kliknutiami:

  1. Spustite klasiku "Terminál" akoukoľvek pohodlnou metódou, napríklad prostredníctvom menu "aplikácie".
  2. Zadajte príkaz sudo systemctl start firewalld.service a stlačte kláves Zadajte.
  3. Pomôcka je spravovaná v mene superužívateľa, takže svoju pravosť budete musieť potvrdiť zadaním hesla.
  4. Aby ste sa uistili, že služba funguje, zadajte firewall-cmd --state .
  5. V otvorenom grafické okno znovu overiť.
  6. Zobrazí sa nový riadok. Význam "beh" indikuje, že firewall funguje.

Ak budete niekedy potrebovať dočasne alebo natrvalo vypnúť bránu firewall, odporúčame použiť pokyny uvedené v našom ďalšom článku na nasledujúcom odkaze.

Zobraziť predvolené pravidlá a dostupné zóny

Dokonca aj normálne fungujúci firewall má svoje špecifické pravidlá a prístupné zóny. Skôr ako začnete upravovať zásady, odporúčame vám oboznámiť sa s aktuálnou konfiguráciou. To sa vykonáva pomocou jednoduchých príkazov:

  1. Príkaz firewall-cmd --get-default-zone vám pomôže určiť predvolenú zónu.
  2. Po jeho aktivácii sa vám zobrazí nový riadok, kde sa zobrazí požadovaný parameter. Napríklad na obrázku nižšie je zóna považovaná za aktívnu "verejné".
  3. Naraz však môže byť aktívnych niekoľko zón, ktoré sú spojené so samostatným rozhraním. Zistite tieto informácie cez firewall-cmd --get-active-zones .
  4. Príkaz firewall-cmd --list-all zobrazí pravidlá nakonfigurované pre predvolenú zónu. Pozrite sa na snímku obrazovky nižšie. Vidíte, že aktívna zóna "verejné" pridelené pravidlo "predvolené"- predvolená prevádzka, rozhranie "enp0s3" a pribudli dve služby.
  5. Ak chcete zistiť všetky dostupné zóny brány firewall, zadajte firewall-cmd --get-zones .
  6. Parametre konkrétnej zóny sa určujú cez firewall-cmd --zone=name --list-all , kde názov— názov zóny.

Po určení potrebných parametrov môžete pristúpiť k ich zmene a pridávaniu. Pozrime sa bližšie na niekoľko najpopulárnejších konfigurácií.

Nastavenie zón rozhrania

Ako viete z vyššie uvedených informácií, každé rozhranie má svoju vlastnú predvolenú zónu. Zostane tam, kým sa nastavenia nezmenia užívateľom alebo programovo. Pre jednu reláciu je možné manuálne preniesť rozhranie do zóny, a to aktiváciou príkazu sudo firewall-cmd --zone=home --change-interface=eth0 . Výsledok "úspech" znamená, že prenos bol úspešný. Pripomeňme, že takéto nastavenia sa resetujú ihneď po reštarte brány firewall.

Pri zmene parametrov, ako je táto, by ste mali vziať do úvahy, že služby sa môžu resetovať. Niektoré z nich napríklad nepodporujú prevádzku v určitých zónach, hoci je k dispozícii SSH "Domov", ale vo vlastných alebo špeciálnych služba odmietne fungovať. Úspešné prepojenie rozhrania s novou vetvou môžete overiť zadaním firewall-cmd --get-active-zones .

Ak chcete obnoviť predtým vykonané nastavenia, jednoducho reštartujte bránu firewall: sudo systemctl restart firewalld.service .

Niekedy nie je vždy vhodné zmeniť zónu rozhrania len na jednu reláciu. V tomto prípade budete musieť upraviť konfiguračný súbor, aby sa všetky nastavenia zadali natrvalo. Na tento účel odporúčame použiť textový editor nano, ktorý sa inštaluje z oficiálneho úložiska pomocou sudo yum install nano . Ďalej zostáva už len urobiť nasledovné:

  1. Otvorte konfiguračný súbor pomocou editora zadaním sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0 , kde eth0— názov požadovaného rozhrania.
  2. Potvrďte pravosť účtu vykonať ďalšie úkony.
  3. Nájdite parameter "ZONE" a zmeňte jeho hodnotu na požadovanú hodnotu, napríklad verejné alebo domáce .
  4. Podržte klávesy Ctrl+O na uloženie zmien.
  5. Nemeňte názov súboru, len kliknite na Zadajte.
  6. VÝCHOD textový editor cez Ctrl+X.

Teraz bude zóna rozhrania taká, ako ste ju určili, až do ďalšej úpravy konfiguračného súboru. Aby sa aktualizované nastavenia prejavili, spustite sudo systemctl restart network.service a sudo systemctl restart firewalld.service .

Nastavenie predvolenej zóny

Vyššie sme už demonštrovali príkaz, ktorý nám umožnil zistiť predvolenú zónu. Dá sa zmeniť aj nastavením parametra podľa vlastného výberu. Ak to chcete urobiť, stačí zadať sudo firewall-cmd --set-default-zone=name do konzoly, kde názov— názov požadovanej zóny.

Úspešnosť príkazu bude označená nápisom "úspech" na samostatnom riadku. Potom budú všetky aktuálne rozhrania viazané na zadanú zónu, pokiaľ nie je v konfiguračných súboroch uvedené inak.

Vytváranie pravidiel pre programy a pomôcky

Na samom začiatku článku sme hovorili o pôsobení každej zóny. Definovanie služieb, utilít a programov v takýchto odvetviach vám umožní aplikovať individuálne parametre pre každú z nich, aby vyhovovali potrebám každého používateľa. Ak chcete začať, odporúčame vám oboznámiť sa s úplným zoznamom dostupných na tento moment služby: firewall-cmd --get-services .

Výsledok sa zobrazí priamo v konzole. Každý server je oddelený medzerou a v zozname ľahko nájdete nástroj, ktorý vás zaujíma. Ak požadovaná služba nie je k dispozícii, mala by byť dodatočne nainštalovaná. Prečítajte si o pravidlách inštalácie v oficiálnej softvérovej dokumentácii.

Vyššie uvedený príkaz zobrazuje iba názvy služieb. Podrobné informácie o každom z nich sa získavajú prostredníctvom samostatného súboru umiestneného pozdĺž cesty /usr/lib/firewalld/services. Takéto dokumenty sú vo formáte XML, cesta napríklad k SSH vyzerá takto: /usr/lib/firewalld/services/ssh.xml a dokument má nasledujúci obsah:

SSH
Secure Shell (SSH) je protokol na prihlasovanie a vykonávanie príkazov na vzdialených počítačoch. Poskytuje bezpečnú šifrovanú komunikáciu. Ak plánujete vzdialený prístup k vášmu počítaču cez SSH cez firewallované rozhranie, povoľte túto možnosť. Aby bola táto možnosť užitočná, musíte mať nainštalovaný balík openssh-server.

Servisná podpora v konkrétnej zóne sa aktivuje manuálne. IN "Terminál" mali by ste zadať príkaz sudo firewall-cmd --zone=public --add-service=http , kde --zóna=verejné- zóna pre aktiváciu a --add-service=http— názov služby. Upozorňujeme, že takáto zmena sa bude týkať iba jednej relácie.

Trvalé pridanie sa vykonáva cez sudo firewall-cmd --zone=public --permanent --add-service=http a výsledok "úspech" označuje úspešné dokončenie operácie.

vyhliadka úplný zoznam Trvalé pravidlá pre konkrétnu zónu môžete vytvoriť zobrazením zoznamu v samostatnom riadku konzoly: sudo firewall-cmd --zone=public --permanent --list-services .

Riešenie problému s nedostatočným prístupom k službe

Pravidlá brány firewall štandardne uvádzajú najobľúbenejšie a najbezpečnejšie služby ako povolené, ale niektoré štandardné resp aplikácie tretích strán blokuje. V tomto prípade bude musieť používateľ manuálne zmeniť nastavenia, aby vyriešil problém s prístupom. Dá sa to urobiť dvoma rôznymi spôsobmi.

Presmerovanie portov

Ako viete, všetky sieťové služby používajú špecifický port. Firewall ho ľahko zistí a pomocou neho je možné vykonať blokovanie. Aby ste sa vyhli takýmto akciám z firewallu, musíte otvoriť požadovaný port príkazom sudo firewall-cmd --zone=public --add-port=0000/tcp , kde --zóna=verejné- prístavná oblasť, --add-port=0000/tcp— číslo portu a protokol. Voľba firewall-cmd --list-ports zobrazí zoznam otvorených portov.

Ak potrebujete otvoriť porty zahrnuté v rozsahu, použite riadok sudo firewall-cmd --zone=public --add-port=0000-9999/udp , kde --add-port=0000-9999/udp— rozsah portov a ich protokol.

Vyššie uvedené príkazy vám umožnia iba otestovať použitie takýchto parametrov. Ak to bolo úspešné, mali by ste pridať rovnaké porty do trvalých nastavení, a to zadaním sudo firewall-cmd --zone=public --permanent --add-port=0000/tcp alebo sudo firewall-cmd -- zóna=public --permanent --add-port=0000-9999/udp . Zoznam otvorených trvalých portov sa zobrazuje takto: sudo firewall-cmd --zone=public --permanent --list-ports .

Definícia služby

Ako vidíte, pridávanie portov nespôsobuje žiadne ťažkosti, ale postup sa skomplikuje pri použití veľkého množstva aplikácií. Je ťažké sledovať všetky používané porty, takže lepšou možnosťou by bolo definovať službu:


Stačí si vybrať najvhodnejší spôsob riešenia problémov s prístupom k službe a postupovať podľa uvedených pokynov. Ako vidíte, všetky akcie sa vykonávajú pomerne ľahko a nemali by vzniknúť žiadne ťažkosti.

Vytváranie vlastných zón

Už viete, že FirewallD spočiatku vytvoril veľké množstvo rôznych zón s určitými pravidlami. Sú však situácie, kedy systémový administrátor musíte si vytvoriť vlastnú zónu, ako napr "verejný web" pre nainštalovaný webový server resp "súkromné ​​DNS"— pre server DNS. Pomocou týchto dvoch príkladov sa pozrieme na pridávanie vetiev:


V tomto článku ste sa naučili vytvárať vlastné zóny a pridávať do nich služby. O ich predvolenom nastavení a priradení rozhraní sme už hovorili vyššie, všetko, čo musíte urobiť, je uviesť správne názvy. Po vykonaní akýchkoľvek trvalých zmien nezabudnite reštartovať bránu firewall.

Ako vidíte, firewall FirewallD je pomerne komplexný nástroj, ktorý vám umožňuje vytvoriť najflexibilnejšiu konfiguráciu brány firewall. Zostáva len uistiť sa, že nástroj sa spustí so systémom a zadané pravidlá okamžite začnú pracovať. Urobte to príkazom sudo systemctl enable firewalld.

Prvým krokom k ochrane servera pred vonkajšími hrozbami je firewall, ktorý filtruje prichádzajúcu a odchádzajúce prenosy. V tomto článku chcem diskutovať o nastavení iptables, špeciálnom prípade brány firewall na CentOS, a tiež o jej inštalácii a deaktivácii. Môj návod nebude vyčerpávajúci, zohľadním len tie aspekty, ktoré považujem za najdôležitejšie a ktoré sám používam vo svojej práci.

Tento článok je súčasťou jednej série článkov o serveri.

Úvod

Iptables je v súčasnosti de facto štandardom medzi modernými distribúciami Linuxu. Hneď si ani nepamätám, čo sa ešte používa ako firewall. Takže každý administrátor Linuxu sa musí pri svojej práci zaoberať nastavením tohto firewallu.

Existujú rôzne pripojenia k tomuto firewallu, ktoré sa používajú na „pohodlnejšiu“ konfiguráciu. Ubuntu má ufw, v centoch - firewalld, ostatných nepoznám. Osobne nevidím žiadne pohodlie pri používaní týchto nástrojov. Ako som sa naučil na úplnom začiatku svojej práce, som zvyknutý nastaviť linuxový firewall po starom. Myslím, že toto je najjednoduchší a najpohodlnejší spôsob, o ktorý sa s vami podelím. Jeho podstata spočíva v tom, že skript je vytvorený s pravidlami brány firewall. Tento skript je možné ľahko upraviť podľa vašich potrieb a preniesť zo servera na server.

Vypnutie brány firewall

Problematike vypnutia firewallu som sa už dotkol v téme na . Najprv zakážme firewalld, ktorý je štandardne prítomný v Centos 7 ihneď po inštalácii:

# systemctl stop firewalld

Teraz ho odstránime zo spustenia, aby sa po reštarte znova nezapol:

# systemctl zakázať firewall

Potom sa nastavenia brány firewall na serveri úplne otvoria. Pravidlá iptables môžete zobraziť príkazom:

Inštalácia iptables

V skutočnosti už máme na našom serveri firewall a funguje to, jednoducho neexistujú žiadne pravidlá, všetko je otvorené. Budeme musieť nainštalovať ďalšie nástroje na správu, bez ktorých nie je možné nakonfigurovať iptables. Napríklad nebude možné reštartovať bránu firewall:

# systemctl reštart iptables.service Nepodarilo sa spustiť volanie metódy: Nepodarilo sa načítať jednotku iptables.service: Žiadny takýto súbor alebo adresár.

Alebo ho nebudete môcť pridať do automatického spustenia:

# systemctl enable iptables.service Nepodarilo sa spustiť volanie metódy: Žiadny takýto súbor alebo adresár

Aby ste predišli takýmto chybám, nainštalujte potrebný balík s nástrojmi:

# yum -y nainštalujte iptables-services

Teraz môžete pridať iptables do spustenia a spustiť:

# systemctl povoliť iptables.service # systemctl spustiť iptables.service

Nastavenie brány firewall

Na správu pravidiel brány firewall používam skript. Poďme si ho vytvoriť:

# mcedit /etc/iptables.sh

Ďalej ho naplníme potrebnými pravidlami. Budem analyzovať všetky dôležité časti scenára a Dám to v plnom rozsahu vo forme textový súbor na konci článku. Pravidlá sú vytvorené vo forme obrázkov, ktoré zakazujú kopírovanie a vkladanie. To môže viesť k chybám vo fungovaní pravidiel, s ktorými som sa sám stretol pri príprave článku.

Budeme uvažovať o situácii, keď je server bránou do internetu pre lokálnu sieť.

V prvom rade si nastavme všetky premenné, ktoré budeme v skripte používať. Nie je to potrebné, ale odporúča sa to, pretože je vhodné prenášať nastavenia zo servera na server. Bude stačiť jednoducho premenné priradiť.

Pred aplikáciou nových pravidiel vyčistíme všetky reťazce:

Blokujeme všetku premávku, ktorá nezodpovedá žiadnemu z pravidiel:

Povoliť všetok localhost a lokálny prenos:

Povoľujeme ping:

Ak to nepotrebujete, nepridávajte pravidlá povolenia pre icmp.

Otvárame internetový prístup k samotnému serveru:

Ak chcete otvoriť všetky prichádzajúce pripojenia k serveru, pridajte nasledujúce pravidlo:

Teraz pridajme ochranu proti najbežnejším sieťovým útokom. Najprv zahoďme všetky pakety, ktoré nemajú žiadny stav:

Blokovanie nulových paketov:

Chráňte sa pred útokmi syn-flood:

Ak nenastavíte obmedzenia prístupu z lokálnej siete, umožníme každému prístup na internet:

Ďalej zakážeme prístup z internetu do lokálnej siete:

Aby naša lokálna sieť mohla používať internet, povoľujeme nat:

Aby sme nestratili prístup k serveru, po aplikovaní pravidiel povoľujeme pripojenia cez ssh:

A na konci si zapíšeme pravidlá, aby platili po reštarte:

Zostavili sme jednoduchú konfiguráciu, ktorá blokuje všetky prichádzajúce pripojenia okrem ssh a umožňuje prístup z lokálnej siete na internet. Zároveň sme sa chránili pred niektorými sieťovými útokmi.

Uložte skript, urobte ho spustiteľným a spustite:

# chmod 0740 /etc/iptables.sh # /etc/iptables.sh

Pozrime sa na pravidlá a skontrolujte, či sú všetky pravidlá na mieste:

# iptables -L -v -n

Upozorňujeme, že pravidlá musíte použiť iba vtedy, ak máte prístup ku konzole servera. Ak je v nastaveniach chyba, môžete stratiť prístup. Uistite sa, že v prípade núdze môžete vypnúť bránu firewall a upraviť nastavenia.

Otváranie portov

Teraz trochu rozšírime našu konfiguráciu a otvoríme porty v iptables pre niektoré služby. Povedzme, že máme spustený webový server a potrebujeme k nemu otvoriť prístup z internetu. Pridajte pravidlá pre webovú návštevnosť:

Pribudlo povolenie pre prichádzajúce spojenia na portoch 80 a 443, ktoré webový server pri svojej práci využíva.

Ak ste nainštalovali poštový server, potom musíte povoliť prichádzajúce pripojenia k nemu na všetkých použitých portoch:

Pre správnu činnosť DNS servery, musíte otvoriť UDP port 53

Preposielanie portov

Zoberme si situáciu, keď je potrebné presmerovať porty z externého rozhrania na niektorý počítač v lokálnej sieti. Povedzme, že potrebujete získať rdp prístup do počítača 10.1.3.50 z internetu. Preposielame TCP port 3389:

Ak nechcete odhaliť známy port zvonku, môžete presmerovať z neštandardného portu na port rdp cieľového počítača:

Ak posielate port zvonku do lokálnej siete, nezabudnite zakomentovať pravidlo, ktoré blokuje prístup z externej siete do internej siete. V mojom príklade je toto pravidlo: $IPT -A FORWARD -i $WAN -o $LAN1 -j REJECT

Alebo pred týmto pravidlom vytvorte povoľovacie pravidlo pre externý prístup k internej službe, napríklad takto:

$IPT -A FORWARD -i $WAN -d 10.1.3.50 -p tcp -m tcp --dport 3389 -j PRIJAŤ

Povolenie denníkov

Počas nastavovania je užitočné povoliť protokoly na sledovanie zablokovaných balíkov a zisťovanie, prečo nie je prístup k potrebným službám, ktoré už zrejme máme otvorené. Všetky zablokované pakety posielam do samostatných reťazcov (block_in, block_out, block_fw) zodpovedajúcich smeru prevádzky a každý smer označím v protokoloch. Vďaka tomu je pohodlnejšie robiť debrífing. Pred uložením nastavení pridajte na úplný koniec skriptu nasledujúce pravidlá:

Všetky zablokované balíky môžete sledovať v súbore /var/log/messages.

Po dokončení nastavenia zakomentujte tieto riadky a vypnite protokolovanie. Určite to stojí za to urobiť, pretože polená rastú veľmi rýchlo. Osobne nevidím žiadny praktický zmysel v uchovávaní takýchto informácií.

Ako zakázať iptables

Ak sa náhle rozhodnete, že firewall už nepotrebujete, môžete ho vypnúť takto:

# systemctl stop iptables.service

Tento príkaz zastaví bránu firewall. A nasledujúce ho odstráni zo spustenia:

# systemctl zakázať iptables.service

Vypnutím brány firewall sme povolili všetky pripojenia.

Záver

Ako som sľúbil, zverejňujem hotový skript so základným súborom pravidiel, ktoré sme zvážili

Ešte raz podotýkam, že pri nastavovaní iptables treba byť maximálne opatrný. Nezačínajte túto firmu, ak nemáte prístup ku konzole servera. Dokonca aj počas písania tohto článku som stratil prístup na server kvôli smiešnej chybe v pravidlách. Táto chyba vznikla kopírovaním a stratou dvojitej pomlčky - bola nahradená jedinou.

online kurz “Linux Administrator” na OTUS. Kurz nie je pre začiatočníkov, na prijatie sú potrebné základné znalosti sietí a Inštalácia Linuxu na virtuálny stroj. Školenie trvá 5 mesiacov, po ktorých budú môcť úspešní absolventi kurzu absolvovať pohovory s partnermi. Čo vám tento kurz dá:

  • Znalosť architektúry Linuxu.
  • rozvoj moderné metódy a nástroje na analýzu a spracovanie údajov.
  • Možnosť výberu konfigurácie pre požadované úlohy, riadenie procesov a zaistenie bezpečnosti systému.
  • Ovláda základné pracovné nástroje správcu systému.
  • Pochopenie špecifík nasadzovania, konfigurácie a údržby sietí postavených na Linuxe.
  • Schopnosť rýchlo riešiť vznikajúce problémy a zabezpečiť stabilnú a neprerušovanú prevádzku systému.
Otestujte sa na vstupnom teste a pozrite si program, kde nájdete ďalšie podrobnosti.

FirewallD je nástroj na správu brány firewall, ktorý je štandardne k dispozícii na serveroch CentOS 7. Ide v podstate o obal okolo IPTables a dodáva sa s grafickým konfiguračným nástrojom, konfiguráciou firewallu a konfiguračným nástrojom firewallu. príkazový riadok firewall-cmd. So službou IPtables si každá zmena vyžaduje vymazanie starých pravidiel a vytvorenie nových pravidiel v súbore ` /etc/sysconfig/iptables` a pri firewalld sa použijú iba rozdiely.

FirewallD zóny

FirewallD používa služby a zóny namiesto pravidiel a reťazcov v Iptables. V predvolenom nastavení sú k dispozícii nasledujúce zóny:

  • pokles– Zahodiť všetky prichádzajúce sieťové pakety bez odpovede, iba tie odchádzajúce sieťové pripojenia k dispozícii.
  • blokovať– Odmietnuť všetky prichádzajúce sieťové pakety so správou icmp-host-prohibited, povolené sú iba odchádzajúce sieťové pripojenia.
  • verejnosti– akceptované sú iba vybrané prichádzajúce spojenia na použitie vo verejných priestoroch
  • externé– Pre externé siete s maskovaním sú akceptované iba vybrané prichádzajúce spojenia.
  • dmz– demilitarizovaná zóna DMZ, verejne prístupná z obmedzený prístup do internej siete sú akceptované iba vybrané prichádzajúce spojenia.
  • práca
  • Domov– Pre počítače v domácej zóne sú akceptované iba vybrané prichádzajúce pripojenia.
  • interné– Pre počítače vo vašej internej sieti sú akceptované iba vybrané prichádzajúce pripojenia.
  • dôveryhodný– Všetky sieťové pripojenia sú akceptované.

Ak chcete získať zoznam všetkých dostupných zón:

# firewall-cmd --get-zones work drop interný externý dôveryhodný domáci dmz verejný blok

Ak chcete zobraziť zoznam predvolených zón:

# firewall-cmd --get-default-zone public

Ak chcete zmeniť predvolenú zónu:

Firewall služby

Služby FirewallD sú konfiguračné súbory XML obsahujúce informácie o položke služby pre firewalld. Ak chcete získať zoznam všetkých dostupných služieb:

# firewall-cmd --get-services amanda-client amanda-k5-client bacula bacula-client ceph ceph-mon dhcp dhcpv6 dhcpv6-client dns docker-registry dropbox-lansync freeipa-ldap freeipa-ldapsftp freeipa-replication http https imap imaps ipp ipp-client ipsec iscsi-target kadmin kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mosh mountd ms-wbt mysql nfs ntp openvpn proxy pmcd pmproxy pmwebapi pulseq post popgress puppetmaster rádius rpc-bind rsyncd samba samba-client sane smtp smtps snmp snmptrap squid ssh synergia syslog syslog-tls telnet tftp tftp-client tinc tor-socks prenosový-klient vdsm vnc-server wbem-https xmpp-bosh xmpp-server xmpp

Konfiguračné súbory XML sú uložené v adresároch /usr/lib/firewalld/services/ A /etc/firewalld/services/.

Nastavenie brány firewall pomocou brány FirewallD

Ako príklad uvádzame, ako môžete nakonfigurovať bránu firewall pomocou brány FirewallD, ak máte spustený webový server, SSH na porte 7022 a poštový server.

Najprv nastavíme predvolenú zónu pre DMZ.

# firewall-cmd --set-default-zone=dmz # firewall-cmd --get-default-zone dmz

Ak chcete pridať trvalé pravidlá služby pre HTTP a HTTPS do DMZ, spustite nasledujúci príkaz:

# firewall-cmd --zone=dmz --add-service=http --permanent # firewall-cmd --zone=dmz --add-service=https --permanent

Otvorte port 25 (SMTP) a port 465 (SMTPS):

Firewall-cmd --zone=dmz --add-service=smtp --permanent firewall-cmd --zone=dmz --add-service=smtps --permanent

Otvorené, IMAP, IMAPS, POP3 a POP3S porty:

Firewall-cmd --zone=dmz --add-service=imap --trvalý firewall-cmd --zone=dmz --add-service=imaps --trvalý firewall-cmd --zone=dmz --add-service= pop3 --permanent firewall-cmd --zone=dmz --add-service=pop3s --permanent

Keďže port SSH sa zmenil na 7022, odstránime službu SSH (port 22) a otvoríme port 7022

Firewall-cmd --remove-service=ssh --permanent firewall-cmd --add-port=7022/tcp --permanent

Na implementáciu zmien musíme reštartovať firewall:

Firewall-cmd --reload

Nakoniec môžete uviesť pravidlá.

FirewallD je nástroj na správu brány firewall, ktorý je štandardne k dispozícii na serveroch CentOS 7. Ide v podstate o obal okolo IPTables a dodáva sa s grafickým konfiguračným nástrojom firewall-config a nástrojom príkazového riadka, firewall-cmd. So službou IPtables si každá zmena vyžaduje vymazanie starých pravidiel a vytvorenie nových pravidiel v súbore ` /etc/sysconfig/iptables` a pri firewalld sa použijú iba rozdiely.

FirewallD zóny

FirewallD používa služby a zóny namiesto pravidiel a reťazcov v Iptables. V predvolenom nastavení sú k dispozícii nasledujúce zóny:

  • pokles– Zahodiť všetky prichádzajúce sieťové pakety bez odpovede, dostupné sú iba odchádzajúce sieťové pripojenia.
  • blokovať– Odmietnuť všetky prichádzajúce sieťové pakety so správou icmp-host-prohibited, povolené sú iba odchádzajúce sieťové pripojenia.
  • verejnosti– akceptované sú iba vybrané prichádzajúce spojenia na použitie vo verejných priestoroch
  • externé– Pre externé siete s maskovaním sú akceptované iba vybrané prichádzajúce spojenia.
  • dmz– demilitarizovaná zóna DMZ, verejne prístupná s obmedzeným prístupom do vnútornej siete, akceptované sú len vybrané prichádzajúce spojenia.
  • práca
  • Domov– Pre počítače v domácej zóne sú akceptované iba vybrané prichádzajúce pripojenia.
  • interné– Pre počítače vo vašej internej sieti sú akceptované iba vybrané prichádzajúce pripojenia.
  • dôveryhodný– Všetky sieťové pripojenia sú akceptované.

Ak chcete získať zoznam všetkých dostupných zón:

# firewall-cmd --get-zones work drop interný externý dôveryhodný domáci dmz verejný blok

Ak chcete zobraziť zoznam predvolených zón:

# firewall-cmd --get-default-zone public

Ak chcete zmeniť predvolenú zónu:

Firewall služby

Služby FirewallD sú konfiguračné súbory XML obsahujúce informácie o položke služby pre firewalld. Ak chcete získať zoznam všetkých dostupných služieb:

# firewall-cmd --get-services amanda-client amanda-k5-client bacula bacula-client ceph ceph-mon dhcp dhcpv6 dhcpv6-client dns docker-registry dropbox-lansync freeipa-ldap freeipa-ldapsftp freeipa-replication http https imap imaps ipp ipp-client ipsec iscsi-target kadmin kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mosh mountd ms-wbt mysql nfs ntp openvpn proxy pmcd pmproxy pmwebapi pulseq post popgress puppetmaster rádius rpc-bind rsyncd samba samba-client sane smtp smtps snmp snmptrap squid ssh synergia syslog syslog-tls telnet tftp tftp-client tinc tor-socks prenosový-klient vdsm vnc-server wbem-https xmpp-bosh xmpp-server xmpp

Konfiguračné súbory XML sú uložené v adresároch /usr/lib/firewalld/services/ A /etc/firewalld/services/.

Nastavenie brány firewall pomocou brány FirewallD

Ako príklad uvádzame, ako môžete nakonfigurovať bránu firewall pomocou brány FirewallD, ak máte spustený webový server, SSH na porte 7022 a poštový server.

Najprv nastavíme predvolenú zónu pre DMZ.

# firewall-cmd --set-default-zone=dmz # firewall-cmd --get-default-zone dmz

Ak chcete pridať trvalé pravidlá služby pre HTTP a HTTPS do DMZ, spustite nasledujúci príkaz:

# firewall-cmd --zone=dmz --add-service=http --permanent # firewall-cmd --zone=dmz --add-service=https --permanent

Otvorte port 25 (SMTP) a port 465 (SMTPS):

Firewall-cmd --zone=dmz --add-service=smtp --permanent firewall-cmd --zone=dmz --add-service=smtps --permanent

Otvorené, IMAP, IMAPS, POP3 a POP3S porty:

Firewall-cmd --zone=dmz --add-service=imap --trvalý firewall-cmd --zone=dmz --add-service=imaps --trvalý firewall-cmd --zone=dmz --add-service= pop3 --permanent firewall-cmd --zone=dmz --add-service=pop3s --permanent

Keďže port SSH sa zmenil na 7022, odstránime službu SSH (port 22) a otvoríme port 7022

Firewall-cmd --remove-service=ssh --permanent firewall-cmd --add-port=7022/tcp --permanent

Na implementáciu zmien musíme reštartovať firewall:

Firewall-cmd --reload

Nakoniec môžete uviesť pravidlá.

Počnúc CentoOS 7 sa objavil nový nástroj na konfiguráciu pravidiel filtrovania návštevnosti firewalld. Odporúča sa používať ho na správu pravidiel iptables. V CentOS 8 sa namiesto štandardného filtrovacieho balíka iptables teraz používa rámec nftables a keď konfigurujete pravidlá brány firewall cez firewalld, v skutočnosti konfigurujete nftables. V tomto článku sa pozrieme na inštaláciu, základné koncepty a konfiguráciu brány firewall na serveri so systémom CentOS 8 (CentOS 7 je rovnaký).


FirewallD– firewall na ochranu servera pred nežiaducou prevádzkou s podporou dynamickej správy pravidiel (bez reštartovania) a implementáciou trvalých pravidiel brány firewall. Funguje ako rozhranie pre a nftables. FirewallD je možné použiť na takmer všetkých distribúciách Linuxu.

Základné firewallové koncepty, zóny a pravidlá

Pred začatím inštalácie a konfigurácie firewalld, predstavíme koncept zón, pomocou ktorých sa zisťuje miera dôvery v rôzne spojenia. Pre rôzne zóny firewalld môžete použiť rôzne pravidlá filtrovania, špecifikujte aktívne možnosti firewall vo forme preddefinovaných služieb, protokolov a portov, presmerovania portov a bohatých pravidiel.

Firewall filtruje prichádzajúcu komunikáciu podľa zóny v závislosti od pravidiel aplikovaných na zónu. Ak IP- adresa odosielateľa požiadavky zodpovedá pravidlám určitej zóny, potom bude paket odoslaný cez túto zónu. Ak adresa nezodpovedá žiadnej zo zón nakonfigurovaných na serveri, paket spracuje predvolená zóna. Pri inštalácii firewalld volá sa predvolená zóna verejnosti.

Firewalld má zóny, ktoré sú vopred nakonfigurované s povoleniami pre rôzne služby. Môžete použiť tieto nastavenia alebo si vytvoriť vlastné zóny. Zoznam predvolených zón, ktoré sa vytvoria pri inštalácii firewalld (uložené v adresári /usr/lib/firewalld/zones/):

pokles minimálna úroveň dôvery. Všetky prichádzajúce spojenia sú blokované bez odozvy, povolené sú iba odchádzajúce spojenia;
blokovať zóna je podobná predchádzajúcej, ale pri odmietnutí prichádzajúcich požiadaviek sa odošle správa icmp-host-prohibited pre Ipv4 alebo icmp6-adm-prohibited pre Ipv6;
verejnosti predstavuje verejné, nedôveryhodné siete. Vybrané prichádzajúce spojenia môžete povoliť individuálne;
externé externých sietí pri použití brány firewall ako brány. Je nakonfigurovaný na maskovanie NAT, takže vaša interná sieť zostáva súkromná, ale prístupná;
interné antonymum vonkajšej zóny. Hostiteľ má dostatočnú úroveň dôvery, k dispozícii je množstvo doplnkových služieb;
dmz používa sa pre počítače umiestnené v DMZ (izolované počítače bez prístupu k zvyšku siete). Povolené sú len určité prichádzajúce spojenia;
práca zóna pre pracovné stroje (väčšina počítačov v sieti je dôveryhodná);
Domov zóna domácej siete. Väčšine počítačov možno dôverovať, ale sú podporované iba niektoré prichádzajúce pripojenia;
dôveryhodný dôverujte všetkým počítačom v sieti. Najotvorenejšia zo všetkých dostupných možností, vyžaduje si vedomé používanie.

IN firewalld používajú sa dva súbory pravidiel – trvalé a dočasné. Dočasné pravidlá fungujú, kým sa server nereštartuje. V predvolenom nastavení pri pridávaní pravidiel do firewalld, pravidlá sa považujú za dočasné ( beh programu). Ak chcete pridať pravidlo natrvalo, musíte použiť príznak - trvalý. Takéto pravidlá sa použijú po reštarte servera.

Inštalácia a aktivácia brány firewall na CentOS

V CentOS 7/8 je firewalld štandardne nainštalovaný s OS. Ak ste ho odstránili a chcete nainštalovať firewalld, môžete použiť štandardného správcu /dnf:

# yum install firewalld -y - pre Centos 7
# dnf install firewalld -y - pre Centos 8

K démonovi firewalld spustil automaticky pri spustení servera, musíte ho pridať do:

# systemctl povoliť firewall

A bež:

# systemctl spustite firewalld

Skontrolujte stav služby:

# systemctl stav firewalld

● firewalld.service - firewalld - dynamický démon brány firewall Načítané: načítané (/usr/lib/systemd/system/firewalld.service; povolené; prednastavené výrobcom: povolené) Aktívne: aktívne (spustené) od Po 2019-10-14 14:54 :40 +06; Pred 22s Dokumenty: man:firewalld(1) Hlavné PID: 13646 (firewalld) CGroup: /system.slice/firewalld.service └─13646 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid 14. októbra 14:54:40 server.vpn.ru systemd: Spúšťa sa firewalld – démon dynamického firewallu... 14. októbra 14:54:40 server.vpn.ru systemd: Spustený firewalld – démon dynamického firewallu.

Alebo príkazom:

# firewall-cmd --state

Príkaz firewall-cmd je firewalld frontend pre nftables/iptables.

# firewall-cmd --state

Práca s pravidlami brány firewall

Predvolené pravidlá:

Pred nastavením pravidiel brány firewall musíte skontrolovať, ktorá zóna sa používa predvolene:

# firewall-cmd --get-default-zone

Keďže sme práve nainštalovali firewall a ešte sme ho nenakonfigurovali, máme predvolenú zónu verejnosti.

Skontrolujeme aktívnu zónu. Existuje aj jeden - verejný:

# firewall-cmd --get-active-zones

Verejné rozhrania: eth0

Ako vidíte, sieťové rozhranie eth0 je riadené zónou verejnosti.

Ak chcete zobraziť základné pravidlá, zadajte:

# firewall-cmd --list-all

Verejný (aktívny) cieľ: predvolený icmp-block-inversion: žiadne rozhrania: eth0 zdroje: služby: dhcpv6-client ssh porty: protokoly: maškaráda: žiadne forwardové porty: zdrojové porty: icmp-bloky: bohaté pravidlá:

Z výpisu môžete vidieť, že do tejto zóny boli pridané obvyklé operácie súvisiace s DHCP klientom a ssh.

Dostupné zóny

Ak chcete zobraziť zoznam všetkých zón, musíte spustiť príkaz:

# firewall-cmd --get-zones

Dostal som nasledujúci zoznam:

Blokovať dmz drop externé domáce interné verejné dôveryhodné dielo

Ak chcete skontrolovať pravidlá konkrétnej zóny, musíte pridať vlajku - zónu.

# firewall-cmd --zone=home --list-all

Domovský cieľ: predvolená inverzia icmp-bloku: žiadne rozhrania: zdroje: služby: dhcpv6-client mdns samba-client ssh porty: protokoly: maškaráda: žiadne dopredné porty: zdrojové porty: icmp-bloky: bohaté pravidlá:

Pravidlá všetkých zón je možné zobraziť príkazom:

# firewall-cmd --list-all-zones

Zoznam bude pomerne veľký, pretože môže existovať veľa zón.

Zmeňte predvolenú zónu.

Predvolená hodnota je všetko sieťové rozhrania nachádza v oblasti verejnosti, ale môžu byť prenesené do ktorejkoľvek zo zón príkazom:

# firewall-cmd --zone=home -change-interface=eth0

Po parametri --zóna= označte požadovanú zónu.

Ak chcete zmeniť predvolenú zónu, musíte použiť príkaz:

# firewall-cmd --set-default-zone=home

Pridanie pravidiel aplikácie

Ak chcete otvoriť port pre aplikáciu, môžete do výnimiek pridať službu. Zobraziť zoznam dostupných služieb:

Výstup bude obsahovať veľké množstvo služieb. detailné informácie o službe je obsiahnutá v jej xml súbor. Tieto súbory sa nachádzajú v adresári /usr/lib/firewalld/services.

Napríklad:

# cd /usr/lib/firewalld/services

Mail (SMTP) Táto možnosť umožňuje doručovanie prichádzajúcej pošty SMTP. Ak potrebujete povoliť vzdialeným hostiteľom pripojiť sa priamo k vášmu zariadeniu na doručovanie pošty, povoľte túto možnosť. Nemusíte to povoliť, ak zhromažďujete poštu zo servera vášho poskytovateľa internetových služieb prostredníctvom protokolu POP3 alebo IMAP alebo ak používate nástroj, ako je fetchmail. Upozorňujeme, že nesprávne nakonfigurovaný protokol SMTP server môže povoliť vzdialeným počítačom používať váš server na odosielanie spamu.

Súbor XML obsahuje popis služby, protokolu a čísla portu, ktorý sa otvorí vo firewalle.

Pri pridávaní pravidiel môžete použiť parameter --add-service na otvorenie prístupu ku konkrétnej službe:

# firewall-cmd --zone=public --add-service=http

# firewall-cmd --zone=public --add-service=https

Po pridaní pravidiel môžete skontrolovať, či boli do zadanej zóny pridané služby:

# firewall-cmd --zone=public --list-services

Dhcpv6-client http https ssh

Ak chcete, aby tieto pravidlá boli trvalé, musíte pri pridávaní pridať parameter — trvalé.

Odstránenie služby zo zóny:

# firewall-cmd --permanent --zone=public --remove-service=http

Test https ssh klienta Dhcpv6

Ak chcete pridať svoju službu do výnimiek, môžete vytvoriť súbor xml sami a vyplňte ho. Môžete kopírovať údaje z ľubovoľnej služby, zmeniť názov, popis a číslo portu.

Skopírujeme súbor smtp.xml do adresára pre prácu s užívateľskými službami:

# cp /usr/lib/firewalld/services/smtp.xml /etc/firewalld/services

Zmeňte popis služby v súbore.

Ja sám xml súbor Musíte ho tiež premenovať podľa názvu vašej služby. Potom musíte reštartovať bránu firewall a skontrolovať, či je naša služba v zozname:

Volal som do servisu test a objavilo sa v zozname:

Syslog-tls telnet test tftp

Teraz môžete pridať vytvorenú službu do ľubovoľnej zóny:

# firewall-cmd --zone=public --add-service=test --permanent

# firewall-cmd --zone=public --permanent --list-services

Dhcpv6-client http https test ssh

Ak ste v zozname nenašli službu, ktorú potrebujete, môžete požadovaný port otvoriť na firewalle príkazom:

# firewall-cmd --zone=public -add-port=77/tcp - otvorený port 77 TCP
# firewall-cmd --zone=public -add-port=77/udp - otvorený port 77 udp
# firewall-cmd --zone=public -add-port=77-88/udp - rozsah otvorených portov 77-88 udp
# firewall-cmd --zone=public -list-ports - skontrolujte zoznam povolených portov

Blokovať/povoliť odpovede ICMP:

# firewall-cmd --zone=public --add-icmp-block=echo-reply
# firewall-cmd --zone= public --remove-icmp-block=echo-reply

Odstrániť pridaný port:

# firewall-cmd --zone=public -remove-port=77/udp - odstrániť dočasné pravidlo 77 udp

# firewall-cmd --permanent --zone=public -remove-port=77/udp - odstrániť trvalé pravidlo

Pridanie vlastných zón

Môžete si vytvoriť vlastnú zónu (nazvem to náš):

# firewall-cmd --permanent --new-zone=náš

Po vytvorení novej zóny, ako aj po vytvorení služby je potrebný reštart firewalld:

# firewall-cmd --reload

# firewall-cmd --get-zones

Blokovať dmz drop externé domáce interné naše verejné dôveryhodné dielo

Zóna náš k dispozícii. Môžete doň pridať služby alebo otvoriť konkrétne porty.

Firewall: blokovanie IP adries, vytváranie výnimiek

Do výnimiek brány firewall môžete pridať dôveryhodné adresy IP alebo blokovať nechcené.

Na pridanie konkrétneho k výnimkám IP adresa(napríklad 8.8.8.8) na vašom serveri cez firewalld, použite príkaz:

# firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" source address="8.8.8.8" accept"

Skontrolujte oblasť a uistite sa IP pridané k výnimkám v bohatých pravidlách:

Verejný (aktívny) cieľ: predvolená icmp-block-inversion: žiadne rozhrania: eth0 zdroje: služby: dhcpv6-client http https ssh testovacie porty: protokoly: maškaráda: žiadne forwardové porty: zdrojové-porty: icmp-bloky: bohaté pravidlá: pravidlo family="ipv4" source address="8.8.8.8" prijať

Blokovať IP, treba vymeniť súhlasiť na odmietnuť:

# firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" source address="8.8.4.4" odmietať"

# firewall-cmd --zone=public --list-all

Verejný (aktívny) cieľ: predvolená icmp-block-inversion: žiadne rozhrania: eth0 zdroje: služby: dhcpv6-client http https ssh testovacie porty: protokoly: maškaráda: žiadne forwardové porty: zdrojové-porty: icmp-bloky: bohaté pravidlá: pravidlo family="ipv4" source address="8.8.8.8" prijať pravidlo family="ipv4" source address="8.8.4.4" odmietnuť

Konkrétnu službu môžete povoliť iba pre požiadavky z konkrétnej adresy IP:

#firewall-cmd --permanent --add-rich-rule "rule family="ipv4" source address="10.10.1.0/24" service name="https" accept"

Ak potrebujete súrne zablokovať všetky požiadavky na server, použite príkaz panika:

# firewall-cmd --panic-on

Panický režim môžete vypnúť buď príkazom:

# firewall-cmd --panic-off

Alebo reštartovaním servera.

Môžete zablokovať konfiguráciu brány firewall tak, aby lokálne služby s root práva nepodarilo sa zmeniť pravidlá brány firewall, ktoré ste vytvorili:

# firewall-cmd --lockdown-on

Zakázať režim blokovania:

# firewall-cmd --lockdown-off

Presmerovanie portov vo firewalle

Vo firewalle môžete vytvoriť pravidlo presmerovania portov. Preposlanie portu 443 na 9090:

# firewall-cmd --zone=public --add-forward-port=port=443:proto=tcp:toport=9090 --permanent

Ak chcete odstrániť pravidlo presmerovania portov:

# firewall-cmd --zone=public --remove-forward-port=port=443:proto=tcp:toport=9090




Hore