Otvorený port brány firewall Centos 7. Predvolené pravidlá brány firewall

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 verejnosti Wi-Fi sieť obrazovka zvýši úroveň ovládania 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ôvera 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á zóna. 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ú. Trvalé pravidlo sa nazýva týmto spôsobom - bude uložené natrvalo, keď sa použije argument -permanent.

Povolenie brány FirewallD

Najprv musíte spustiť FirewallD alebo sa uistiť, že je v aktívnom stave. Iba funkčný démon (program spustený v 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 grafickom okne, ktoré sa otvorí, znova potvrďte svoju pravosť.
  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 definovaní požadované parametre môžete pokračovať v ich úprave a pridávaní. 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 tak, aby vyhovovali potrebám každého používateľa. Najprv vám odporúčame oboznámiť sa s úplným zoznamom aktuálne dostupných služieb: 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. Detailné informácie pre každý z nich sa získa prostredníctvom samostatného súboru umiestneného pozdĺž cesty /usr/lib/firewalld/services. Takéto dokumenty majú XML formát, 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 pri používaní aplikácií sa postup skomplikuje veľké množstvo. 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.

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 správy sieťové paketyžiadna odpoveď, iba odchádzajúca 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á 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 je 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á.

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 prevádzku DNS servery, musíte otvoriť UDP port 53

Presmerovanie 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 k počítaču 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 vykonávať 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 prihlásenie sú potrebné základné znalosti sietí a inštalácie 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.
  • Ovládanie moderných metód a nástrojov na analýzu a spracovanie dát.
  • 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.

Príkazy iptables sú však zložité a mnohí používatelia majú problém zapamätať si všetky možnosti a kedy ich použiť. Preto vývojári distribúcie vytvárajú svoje vlastné doplnky cez iptables, ktoré pomáhajú zjednodušiť správu brány firewall. CentOS má doplnok na správu iptables s názvom Firewalld.

Firewalld má niekoľko dôležitých rozdielov v porovnaní s iptables. Tu sa kontrola prístupu k sieti vykonáva na úrovni zón a služieb, a nie na úrovni reťazcov a pravidiel. A tiež pravidlá sa aktualizujú dynamicky, bez prerušenia bežiacich relácií. Tento článok sa bude zaoberať nastavením Firewallu CentOS 7 pomocou Firewalldu ako príkladu.

Ako som povedal vyššie, Firewalld nepracuje s reťazami pravidiel, ale so zónami. Každému sieťovému rozhraniu je možné priradiť konkrétnu zónu. Zóna je súbor pravidiel, obmedzení a povolení, ktoré sa vzťahujú na toto sieťové rozhranie. Pre každé rozhranie je možné vybrať len jednu zónu. Vývojári vytvorili niekoľko prednastavených zón:

  • pokles- blokovať všetky prichádzajúce pakety, povoliť iba odchádzajúce
  • blokovať- na rozdiel od predchádzajúcej možnosti bude odosielateľovi balíka odoslaná správa o zablokovaní jeho balíka;
  • verejnosti- prichádzajúce pripojenia sú podporované iba pre ssh a dhclient;
  • externé- podporuje NAT na skrytie vnútornej siete;
  • interné- sú povolené služby ssh, samba, mdns a dhcp;
  • dmz- používa sa pre izolované servery, ktoré nemajú prístup do siete. Povolené sú iba pripojenia cez SSH;
  • práca- služby ssh a dhcp sú povolené;
  • Domov- podobný vnútornému;
  • dôveryhodný- všetko je dovolené.

Ak teda chcete povoliť alebo zakázať službu, stačí ju pridať alebo odstrániť z aktuálnej zóny alebo zmeniť zónu rozhrania na takú, kde je povolená. Analógiu možno nakresliť s predvolenou politikou akcií pre pakety v iptables. Dôveryhodná zóna má politiku ACCEPT a povoľuje všetky pripojenia, bloková zóna má politiku DENY, ktorá zakazuje všetky pripojenia a všetky ostatné zóny možno považovať za nástupcov blokovej zóny, navyše už majú preddefinované pravidlá na povolenie sieťových pripojení pre niektoré služby.

Firewall má tiež dva typy konfigurácie:

  • beh programu- platí len do reštartu, na túto konfiguráciu sa vzťahujú všetky zmeny, ktoré nie sú výslovne uvedené inak;
  • trvalé- trvalé nastavenia, ktoré budú fungovať aj po reštarte.

Teraz už viete všetko, čo potrebujete, a tak prejdime k obslužnému programu firewalld-cmd.

Syntax a možnosti brány firewall-cmd

Nastavenia brány firewall môžete spravovať pomocou: konzolový nástroj firewall-cmd a in grafické rozhranie. CentOS sa najčastejšie používa na serveroch, takže budete musieť pracovať v termináli. Pozrime sa na syntax nástroja:

možnosti firewall-cmd

Na správu zón sa používa nasledujúca syntax:

firewall-cmd --konfigurácia --zone=zóna možností

Ako konfiguráciu musíte zadať možnosť --permanent na uloženie zmien po reštarte alebo nešpecifikovať nič, potom budú zmeny platné iba do reštartu. Pre zónu použite názov požadovanej zóny. Pozrime sa na možnosti pomôcky:

  • --štát- zobraziť stav brány firewall;
  • -- znovu načítať- znovu načítať pravidlá z trvalej konfigurácie;
  • --complete-reload - tvrdý reštart pravidlá s prerušením všetkých spojení;
  • --runtime-to-permanent- preniesť nastavenia konfigurácie runtime do trvalej konfigurácie;
  • --trvalé- použiť trvalú konfiguráciu;
  • --get-default-zone- zobraziť predvolenú zónu;
  • --set-default-zone- nastaviť predvolenú zónu;
  • --get-active-zones- zobrazenie aktívnych zón;
  • --get-zones- zobraziť všetky dostupné zóny;
  • --get-services- zobraziť preddefinované služby;
  • --list-all-zones- zobrazenie konfigurácie všetkých zón;
  • --nová-zóna- vytvoriť novú zónu;
  • --delete-zone- vymazať zónu;
  • --list-all- zobraziť všetko, čo bolo pridané z vybranej zóny;
  • --zoznam-služieb- zobraziť všetky služby pridané do zóny;
  • --add-service- pridať službu do zóny;
  • --remove-service- odstrániť službu zo zóny;
  • --list-ports- zobrazovacie porty pridané do zóny;
  • --add-port- pridať port do zóny;
  • --remove-port- odstrániť port zo zóny;
  • --query-port- ukázať, či bol port pridaný do zóny;
  • --zoznam-protokolov- zobrazovacie protokoly pridané do zóny;
  • --pridať-protokol- pridať protokol do zóny;
  • --odstrániť-protokol- vymazať protokol zo zóny;
  • --list-source-ports- zobrazenie zdrojových portov pridaných do zóny;
  • --add-source-port- pridať zdrojový port do zóny;
  • --remove-source-port- odstrániť zdrojový port zo zóny;
  • --list-icmp-blocks- zobraziť zoznam blokovania icmp;
  • --add-icmp-block- pridať blokovanie icmp;
  • --add-icmp-block- odstrániť blokovanie icmp;
  • --add-forward-port- pridať port pre presmerovanie na NAT;
  • --remove-forward-port- odstráňte port pre presmerovanie na NAT;
  • --add-maškaráda- povoliť NAT;
  • --odstrániť-maškaráda- odstrániť NAT.

Toto nie sú všetky možnosti pomôcky, ale pre tento článok nám budú stačiť.

Nastavenie brány firewall v systéme CentOS 7

1. Stav brány firewall

Prvým krokom je pozrieť sa na stav brány firewall. Ak to chcete urobiť, spustite:

stav sudo systemctl firewalld

Ak je služba Firewall zakázaná, musíte ju povoliť:

sudo systemctl spustiť firewalld
sudo systemctl povoliť firewalld

Teraz musíte zistiť, či je spustený Firewalld pomocou príkazu firewall-cmd:

sudo firewall-cmd --state

Ak je program spustený a všetko je v poriadku, dostanete správu „spustená“.

2. Manažment zón

Ako ste už pochopili, zóny sú hlavným nástrojom riadenia sieťové pripojenia. Ak chcete zobraziť predvolenú zónu, spustite:

sudo firewall-cmd --get-default-zone

V mojom prípade je to verejná zóna. Aktuálnu zónu môžete zmeniť pomocou voľby --set-default-zone:

sudo firewall-cmd --set-default-zone=public

Ak chcete zistiť, ktoré zóny sa používajú pre všetky sieťové rozhrania, spustite:

sudo firewall-cmd --get-active-zones

V zozname sa zobrazia zóny a rozhrania, ku ktorým sú priradené. Pomocou tohto príkazu môžete zobraziť konfiguráciu pre konkrétnu zónu. Napríklad pre verejnú zónu:

3. Nastavenie služieb

Všetky preddefinované služby môžete zobraziť príkazom:

sudo firewall-cmd --get-services

Príkaz zobrazí zoznam všetkých dostupných služieb, ktorúkoľvek z nich môžete pridať do zóny, aby ste to povolili. Povoľme napríklad pripojenie k http:

sudo firewall-cmd --zone=public --add-service=http --permanent

A na odstránenie tejto služby spustite:

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

V oboch prípadoch sme použili možnosť --permanent, aby sme zaistili, že konfigurácia pretrvá aj po reštarte. Po zmenách je potrebné aktualizovať pravidlá:

sudo firewall-cmd --reload

Ak sa potom pozriete na konfiguráciu zóny, zobrazí sa tam pridaná služba:

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

4. Ako otvoriť port v Firewallde

Ak pre program, ktorý potrebujete, neexistuje žiadna služba, môžete jeho port otvoriť manuálne. Ak to chcete urobiť, jednoducho pridajte požadovaný port do zóny. Napríklad port 8083:

sudo firewall-cmd --zone=public --add-port=8083/tcp --permanent

Ak chcete odstrániť tento port zo zóny, spustite:

sudo firewall-cmd --zone=public --remove-port=8083/tcp --permanent

Podobne ako služby na otvorenie portu firewall centos 7 musíte reštartovať bránu firewall.

sudo firewall-cmd --reload

5. Presmerovanie portov brány firewall

Snímanie portov vo Firewallde je oveľa jednoduchšie konfigurovať ako v iptables. Ak potrebujete napríklad presmerovať prevádzku z portu 2223 na port 22, stačí pridať presmerovanie do zóny:

sudo firewall-cmd --zone=public --add-forward-port=port=2223:proto=tcp:toport=22

Tu sa presmerovanie vykoná iba na aktuálnom stroji. Ak chcete nastaviť sieť NAT a poslať port na iný počítač, musíte najprv povoliť podporu maškarád:

sudo firewall-cmd --zone=public --add-masquerade

Potom môžete pridať port:

sudo firewall-cmd --zone=public --add-forward-port=port=2223:proto=tcp:toport=22:toaddr=192.168.56.4

6. Pokročilé pravidlá

Ak vám funkčnosť zón nestačí, môžete využiť pokročilé pravidlá. Všeobecná syntax pre rozšírené pravidlá je:

pravidlo rodina = "rodina" zdrojová hodnota cieľová hodnota protokol auditu akcie

Tu sú významy hlavných parametrov:

  • Ako protokolárne rodiny môžete zadať ipv4 alebo ipv6 alebo nešpecifikovať nič, potom sa pravidlo bude vzťahovať na oba protokoly;
  • zdroj A destinácia je odosielateľ a príjemca paketu. Tieto parametre môžu byť IP adresa, názov služby, port, protokol atď.;
  • log- umožňuje zaznamenať prechod paketov, napríklad v syslog. V tomto nastavení môžete zadať predponu riadku protokolu a úroveň podrobností protokolovania;
  • audit- Toto alternatívny spôsob protokolovanie, kedy budú správy odoslané auditovanej službe.
  • Akcia je akcia, ktorú je potrebné vykonať na zhodnom pakete. Dostupné: prijať, zahodiť, odmietnuť, označiť.

Pozrime sa na pár príkladov. Potrebujeme zablokovať prístup na server pre používateľa s IP 135.152.53.5:

sudo firewall-cmd --zone=public --add-rich-rule "rule family="ipv4" zdrojová adresa=135.152.53.5 odmietnutie"

Alebo musíme tomu istému používateľovi zakázať prístup iba k portu 22:

sudo firewall-cmd --zone=public --add-rich-rule "rule family="ipv4" zdrojová adresa=135.152.53.5 port port=22 protokol=tcp odmietnutie"

Všetky rozšírené pravidlá môžete zobraziť pomocou príkazu:

sudo firewall-cmd --list-rich-rules

závery

V tomto článku sme sa pozreli na to, ako sa to robí nastavenie firewallu v CentOS 7 a aké úlohy s ním možno vykonávať. Program je oveľa jednoduchší na používanie ako iptables, ale podľa môjho názoru sa doplnok Ubuntu firewall používa ešte jednoduchšie.

Centos 7, na rozdiel od CentOS 6, prichádza s novým firewallom v databáze – firewalld. Dá sa deaktivovať a nahradiť starými dobrými iptables, ale ak na to nie sú žiadne priame predpoklady, potom je lepšie zvyknúť si na niečo nové, ako sa spoliehať na staré. To neznamená Windows 10 lepšie ako Windows 7 a Windows XP je lepší ako Windows 7 ;) Dobrý príklad na túto tému - selinux. Ak to spočiatku takmer všetci (vrátane mňa) vypínali a aj trochu pokarhali, teraz to už neradí takmer nikto, iba ak sú si istí, že je to potrebné. Naopak, mnohí si už na semanáž zvykli (alebo si zvykajú). Firewall hneď nevypneme, ale skúsme, ako chutí.

Firewalld nie je zásadne odlišný firewall. Ide o ďalší doplnok k netfilteru, takže ak máte skúsenosti s iptables, tak po menších problémoch môžete nový nástroj jednoducho začať používať.

Spustenie a zastavenie brány firewall

Skontrolujte, či je spustený firewalld:

# systemctl stav firewalld

Tu budú ďalšie informácie. Ak chcete krátko povedať áno (funguje to) alebo nie, môžete to urobiť takto:

# firewall-cmd --state
beh

Ok, funguje to.

Zastavenie brány firewall:

# systemctl stop firewalld

Zákaz automatického spustenia:

# systemctl zakázať firewall

Spustite firewall:

# systemctl spustite firewalld

Povolenie automatického spustenia:

# systemctl povoliť firewall

Firewallové zóny

Firewalld vo veľkej miere využíva koncept zóny. Predvolene zoznam všetkých platných zón:

# firewall-cmd --get-zones
blokovať dmz drop externé domáce interné verejné dôveryhodné dielo

Účel zón (samozrejme podmienečne):

  • drop - všetky prichádzajúce pakety sú zahodené (drop) bez odozvy. Povolené sú len odchádzajúce spojenia.
  • blokovať - ​​prichádzajúce spojenia sú odmietnuté (odmietnuté) s odpoveďou icmp-host-prohibited (alebo icmp6-adm-prohibited). Povolené sú iba pripojenia iniciované systémom.
  • verejnosť - predvolená zóna. Už z názvu je zrejmé, že táto zóna je zameraná na prácu vo verejných sieťach. Tejto sieti nedôverujeme a povoľujeme len určité prichádzajúce pripojenia.
  • externá - zóna pre vonkajšie rozhranie smerovača (tzv. maskovanie). Povolené sú iba nami definované prichádzajúce spojenia.
  • dmz - zóna DMZ, povolené sú len určité prichádzajúce spojenia.
  • práca - pracovná sieťová zóna. Stále nikomu neveríme, ale už nie tak ako predtým :) Povolené sú len určité prichádzajúce spojenia.
  • domov - domáca zóna. Dôverujeme okoliu, ale povolené sú len určité prichádzajúce spojenia
  • vnútorná - vnútorná zóna. Dôverujeme okoliu, ale povolené sú len určité prichádzajúce spojenia
  • dôveryhodný - všetko je dovolené.

Zoznam všetkých aktívnych zón:

# firewall-cmd --get-active-zones
verejnosti
rozhrania: enp1s0

Áno, verejná zóna, ku ktorej je pripojené sieťové rozhranie enp1so. Ďalej do verejnej zóny pridáme nový port, na ktorom bude visieť sshd.

Keď poznáte názov sieťového rozhrania (napríklad enp1s0), môžete zistiť, do ktorej zóny patrí:

# firewall-cmd --get-zone-of-interface=enp1s0
verejnosti

Môžete zistiť, ktoré rozhrania patria do konkrétnej zóny:

# firewall-cmd --zone=public --list-interfaces
enp1s0

Príklad: povolenie ssh na neštandardnom porte

Povoľme prístup k serveru cez ssh na porte 2234/tcp, a nie na 22/tcp, ako je predvolené. Po ceste sa trochu dotkneme selinuxu.

Najprv sa pozrime, čo je na našom serveri všeobecne povolené:

# firewall-cmd --permanent --list-all
verejné (predvolené)
rozhrania:
zdroje:
služby: ssh dhcpv6-client
maškaráda: nie
dopredné porty:
icmp bloky:
bohaté pravidlá:

Zatiaľ nepoužívam ipv6, takže zodpovedajúci okamžite odstránim. pravidlo z firewalld:

# firewall-cmd --permanent --zone=public --remove-service=dhcpv6-client

Natrvalo povolme (aby sa po reštarte nestratilo) pripojenie na port 2234/tcp (zavesíme naň sshd):

# firewall-cmd --permanent --zone=public --add-port=2234/tcp

Znova načítajme pravidlá:

# firewall-cmd --reload

Skontrolujme to:

# firewall-cmd --zone=public --list-ports
2234/tcp

Dobre, prístav je otvorený. Úprava konfigurácie sshd:

# nano /etc/ssh/sshd_config
...
port 2234
...

# systemctl reštartujte sshd.service

Ale SELinux, ktorý ste, dúfajme, nezakázali, vám nedovolí pripojiť sa k ssh na neštandardnom porte (port 2234/tcp pre sshd je neštandardný). Tento krok môžete preskočiť a skontrolovať, ako funguje ochrana SELinux, alebo môžete všetko ihneď nakonfigurovať:

# yum poskytuje riadenie
# yum nainštalovať policycoreutils-python
# semanage port -a -t ssh_port_t -p tcp 2234

Teraz je všetko ok. Skontrolujeme pripojenie ssh na novom porte. Ak je všetko v poriadku, zatvorte prístup k portu 22:

# firewall-cmd --permanent --zone=public --remove-service=ssh
# firewall-cmd --reload

Pozrime sa, čo sa stalo:

# firewall-cmd --list-all
verejné (predvolené, aktívne)
rozhrania:
zdroje:
služby:
porty: 2234/tcp
maškaráda: nie
dopredné porty:
icmp bloky:
bohaté pravidlá:

To je všetko.

Rôzne užitočné príkazy:

Povoliť režim blokovania pre všetky odchádzajúce a prichádzajúce pakety:

# firewall-cmd --panic-on

Zakázať režim blokovania pre všetky odchádzajúce a prichádzajúce pakety:

# firewall-cmd --panic-off

Zistite, či je povolený režim blokovania pre všetky odchádzajúce a prichádzajúce pakety:

# firewall-cmd --query-panic

Znovu načítajte pravidlá brány firewall bez straty aktuálnych pripojení:

# firewall-cmd --reload

Znovu načítajte pravidlá brány firewall a resetujte aktuálne pripojenia (odporúča sa len v prípade problémov):

# firewall-cmd --complete-reload

Pridajte do zóny sieťové rozhranie:

# firewall-cmd --zone=public --add-interface=em1

Pridajte do zóny sieťové rozhranie (uloží sa po reštarte brány firewall):

# firewall-cmd --zone=public --permanent --add-interface=em1

V konfigurácii ifcfg-enp1s0 môžete určiť, do ktorej zóny toto rozhranie patrí. Ak to chcete urobiť, pridajte ZONE=work do súboru /etc/sysconfig/network-scripts/ifcfg-enp1s0. Ak parameter ZONE nie je zadaný, priradí sa predvolená zóna (parameter DefaultZone v súbore /etc/firewalld/firewalld.conf.

Povoliť rozsah portov:

# firewall-cmd --zone=public --add-port=5059-5061/udp

Masquerade (maškaráda, aka nat, aka...):

Skontrolovať stav:

# firewall-cmd --zone=external --query-masquerade

Zapnúť:

# firewall-cmd --zone=external --add-masquerade

Tu je potrebné poznamenať, že napríklad pre verejnú zónu môžete povoliť maškarádu.

Presmerujte prichádzajúce správy na porte 22 na iného hostiteľa:

# firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toaddr=192.168.1.23

Presmerujte prichádzajúce správy na porte 22 na iného hostiteľa zmenou cieľového portu (z 22 na 192.168.1.23:2055):

# firewall-cmd --zone=external /
--add-forward-port=port=22:proto=tcp:toport=2055:toaddr=192.168.1.23

Tu končím, pretože... príkladov môže byť nekonečné množstvo. Len dodám, že ja osobne som si svoj názor na firewalld inováciu úplne nevytvoril, pretože... Zvyknúť si na syntax trvá dlho a ak sú vo vašej zoo rôzne OS Linux, tak v prvom rade môžu byť problémy so zvykom. Ovládanie firewalld vám však rozšíri obzory – častokrát to stojí za námahu.

Výhody firewallu

Hlavnou výhodou je, že ste trochu abstrahovaní od reťazcov iptables.Ak chcete povoliť presmerovanie portov, nemusíte okrem FORWARD myslieť aj na PREROUTING alebo POSTROUTING. Dostanete "IPtables API od výrobcu", niečo také. Ak ste povolili nat, tak je jedno, kde presne (pod akým poradovým číslom aktuálnych pravidiel) sa pravidlo nachádza. Jednoducho označíte - povoľte nat na eth0. A žiadne nezmysly ;) To môže byť výhodné, ak potrebujete zorganizovať webové rozhranie na správu vášho firewallu.

Je možné skontrolovať stav (napríklad či je nat povolený alebo nie!). A použite to aj vo svojich skriptoch, napríklad v logike vašej aplikácie. Neviem, ako vytvoriť žiadosť o stav (zapnuté / vypnuté) v iptables. Môžete, samozrejme, urobiť niečo ako iptables -L -t nat | grep "...", ale musíte uznať, že je to trochu iné ako spustenie "firewall-cmd --zone=external --query-masquerade". Existujú napríklad stovky VM s CentOS, v ktorých sa názvy rozhraní wan alebo niečo podobné môžu mierne líšiť. A tak máte univerzálny cmdlet, ktorý poskytne očakávaný výsledok na rôznych strojoch.

Nevýhody firewallu

Hlavnou nevýhodou podľa mňa je, že keď si na to zvyknete, začnete si zvykať na „čisté“ iptables, ktoré sú v Debiane, v Ubuntu, v CentOS a vo všeobecnosti všade. Dokonca, mimochodom, v Mikrotiku sú syntax a reťazce podobné typu ako iptables. To samozrejme nie je pre každého. A profesionálovi je jedno, s čím má pracovať; ak existujú špecifické podmienky, bude pracovať s tým, čo má. Ale... Som retrográdna osoba a zúfalo odolávam (pri absencii zjavných výhod) novým produktom, ktoré každý hlavný hráč implementuje pre seba. RedHatu by prospelo, keby sa stále viac a viac nových špecialistov stalo firewallovými esami.

A ak ste prešli na firewalld, potom vám čistá syntax iptables bude len prekážať – vznikne neporiadok alebo sa firewall jednoducho pokazí, ak začnete meniť/pridávať pravidlá nepoužívajúc štandardnú syntax firewalld.

Nechcem firewall! Vráťte mi moje staré iptables!

Ak sa stále chcete vrátiť do minulosti a nahradiť firewalld iptables, potom to nie je vôbec ťažké:

Toto nie je miesto pre začiatočníkov:

# systemctl zakázať firewall
# systemctl stop firewalld

Nainštalujte staré dobré iptables:

# yum nainštalovať iptables-services

Spustite firewall:

# systemctl spustí iptables
# systemctl spustí ip6tables

Autoštart pri zapnutí:

# systemctl povoliť iptables
# systemctl povoliť ip6tables

Uloženie pravidiel iptables po reštarte:

# /sbin/iptables-save > /etc/sysconfig/iptables
# /sbin/ip6tables-save > /etc/sysconfig/ip6tables

Alebo staromódny spôsob:

Uložiť # iptables služby

Aktuálne pravidlá sú v súboroch:
/etc/sysconfig/iptables
/etc/sysconfig/ip6tables

Reštartovanie iptables (napríklad po vykonaní akýchkoľvek zmien):

# systemctl reštartujte iptables.service