Konfigurirajte FirewallD na strežniku s CentOS 8 in 7

Od CentoOS 7 se je pojavilo novo orodje za konfiguriranje pravil filtriranja prometa. firewalld. Priporočljivo je, da ga uporabite za upravljanje pravil iptables. V CentOS 8 namesto standardnega paketa za filtriranje iptables se zdaj uporablja okvir nftables in ko konfigurirate pravila požarnega zidu prek firewalld, dejansko konfigurirate nftables. V tem članku bomo razmislili o namestitvi, osnovnih konceptih in konfiguraciji požarnega zvoka na strežniku, ki poganja CentOS 8 (v CentOS 7 je vse isto).


Vsebina:

  • Ključni pojmi, cone in pravila Firewallda
  • Namestite in omogočite firewalld v CentOS-u
  • Delajte s pravili firewalld
  • Firewalld: Blokiranje IP, izjema
  • Posredovanje pristanišča v firewalldu

Firewalld - požarni zid za zaščito strežnika pred neželenim prometom s podporo za dinamično upravljanje pravil (brez ponovnega zagona) in izvajanje obstojnih pravil požarnega zidu. Deluje kot vmesnik za iptables in nftables. FirewallD je mogoče uporabiti v skoraj vseh distribucijah Linuxa.

Ključni pojmi, cone in pravila Firewallda

Preden začnete namestitev in konfiguracijo firewalld, seznanili se bomo s pojmom con, ki se uporablja za določanje stopnje zaupanja v različne spojine. Za različne cone firewalld lahko uporabite različna pravila filtriranja, določite možnosti aktivnega požarnega zidu v obliki vnaprej določenih storitev, protokolov in vrat, posredovanje vrat in bogatih pravil.

Firewalld filtrira dohodni promet po območjih, odvisno od pravil, ki se nanašajo na cono. Če IP-naslov pošiljatelja zahteve je v skladu s pravili katere koli cone, paket bo poslan prek te cone. Če se naslov ne ujema z nobeno od con, konfiguriranih na strežniku, bo paket obdelal privzeto območje. Pri nameščanju firewalld prikliče se privzeto območje javnosti.

V firewalld-u obstajajo cone, kjer so dovoljenja za različne storitve že vnaprej nastavljena. Te nastavitve lahko uporabite ali ustvarite svoje cone. Seznam privzetih con, ki so ustvarjeni med namestitvijo firewallda (shranjen v / usr / lib / firewalld / conah / direktoriju):

padecminimalna raven zaupanja. Vse dohodne povezave so blokirane brez odziva, dovoljene so le odhodne povezave;
blokcona je podobna prejšnji, toda ko se dohodne zahteve zavrnejo, se pošlje icmp-gostiteljsko prepovedano sporočilo za Ipv4 ali icmp6-adm sporočilo za Ipv6;
javnostiPredstavlja javna, nezaupanja omrežja. Izbrane vhodne povezave lahko omogočite posamezno;
zunanjizunanja omrežja, ko požarni zid uporabljate kot prehod. Konfigurirano je tako, da prikrije NAT, zato vaše notranje omrežje ostane zasebno, a dostopno;
notranjiantonim zunanje cone. Gostitelj ima zadostno stopnjo zaupanja, na voljo so številne dodatne storitve;
dmzuporablja se za računalnike, ki se nahajajo v DMZ (izolirani računalniki brez dostopa do preostalega omrežja). Dovoljeni so le določeni vhodni priključki;
delaticona za delujoče stroje (večina računalnikov v omrežju je zaupanja vredna);
domovcona domačega omrežja. Zaupate lahko večini osebnih računalnikov, vendar so podprte le nekatere vhodne povezave;
zaupatiZaupajte vsem strojem v omrežju. Najbolj odprta od vseh razpoložljivih možnosti zahteva zavestno uporabo.

V firewalld uporabljata se dva sklopa pravil - trajna in začasna. Začasna pravila delujejo, dokler se strežnik ne zažene. Privzeto pri dodajanju pravil v firewalld, pravila veljajo za začasna (čas izvajanja) Če želite stalno dodajati pravilo, morate uporabiti zastavico - stalna. Ta pravila bodo veljala po ponovnem zagonu strežnika..

Namestite in omogočite firewalld v CentOS-u

V CentOS 7/8 je firewalld privzeto nameščen pri nameščanju operacijskega sistema. Če ste ga izbrisali in želite namestiti firewalld, lahko uporabite standardni yum / dnf manager:

# yum namestite firewalld -y - za Centos 7
# dnf namestite firewalld -y - za Centos 8

Do demona firewalld samodejno se je začel z zagonom strežnika, morate ga dodati v zagon:

# systemctl omogoči firewalld

In zaženite:

# systemctl start firewalld

Preverite stanje storitve:

# systemctl status firewalld

● firewalld.service - firewalld - dinamični demon požarnega zidu Naložen: naložen (/usr/lib/systemd/system/firewalld.service; omogočen; prednastavitev ponudnika: omogočeno) Aktivno: aktivno (deluje) od pon 2019-10-14 14:54 : 40 +06; Pred 22 leti Dokumenti: moški: firewalld (1) Glavni PID: 13646 (firewalld) CGroup: /system.slice/firewalld.service └─13646 / usr / bin / python2 -Es / usr / sbin / firewalld --nofork --nopid 14. oktober 14:54:40 server.vpn.ru systemd [1]: Začetek firewalld - dinamični požarni zid ... 14. oktober 14:54:40 server.vpn.ru systemd [1]: Začetek firewalld - dinamični požarni zid daemon.

Ali z ukazom:

# požarni zid-cmd - država

Ukaz cmd požarnega zidu je firewalld sočelje nftables / iptables.

# požarni zid-cmd - država

tek

Delajte s pravili firewalld

Privzeta pravila:

Pred konfiguriranjem pravil firewalld morate preveriti, katero območje je privzeto uporabljeno:

# požarni zid-cmd - privzeto območje

Ker smo pravkar namestili in nismo konfigurirali firewalld-a, imamo privzeto območje javnosti.

Preverite jedro. Je tudi ena - javna:

# požarni zid-cmd - območja, ki so aktivna

javni vmesniki: eth0

Kot vidite, omrežni vmesnik eth0 nadzoruje območje. javnosti.

Prikaže se seznam omrežnih vmesnikov CentOS:

# ip povezava kaže
Or
# nmcli stanje naprave

Če si želite ogledati osnovna pravila, vnesite:

# požarni zid-cmd - seznam-vse

javni (aktivni) cilj: privzeti icmp-block-inverzija: brez vmesnikov: eth0 viri: storitve: dhcpv6-odjemalca ssh ports: protokoli: maskarada: ni naprej-ports: izvori ports: icmp-bloki: obogatena pravila:

Kot je razvidno iz seznama, so na to območje dodane običajne operacije, povezane s DHCP odjemalcem in ssh..

Razpoložljive cone

Če si želite ogledati seznam vseh con, morate zagnati ukaz:

# požarni zid-cmd --get-cone

Dobil sem naslednji seznam:

blok dmz spusti zunanje domače notranje javno zaupno delo

Če želite preveriti pravila določenega območja, dodajte oznako cone.

# požarni zid-cmd --zone = domača - seznam-vse

domači cilj: privzeti icmp-block-inverzija: ni vmesnikov: viri: storitve: dhcpv6-odjemalec mdns samba-client ssh pristanišča: protokoli: maskarada: ni naprej-portov: izvorni pristanišča: icmp-bloki: obogatena pravila:

Pravila vseh con si lahko ogledate z ukazom:

# požarni zid-cmd - seznam-vse-cone

Uvrstitev na seznam bo precej velika, saj je lahko veliko con.

Spremeni privzeto območje.

Privzeto so vsi omrežni vmesniki v območju javnosti, vendar jih je mogoče prenesti na katero koli območje z ukazom:

# požarni zid-cmd --zone = home -change-interface = eth0

Po parametru -cona = določite želeno cono.

Če želite spremeniti privzeto območje, uporabite ukaz:

# požarni zid-cmd --set-default-zone = home

Dodajanje pravil za aplikacije

Če želite odpreti vrata za aplikacijo, lahko izjemam dodate storitev. Prikažite seznam storitev, ki so na voljo:

# požarni zid-cmd --get-services

Rezultat bo vseboval veliko število storitev. Podrobnosti storitve so v xml datoteka. Te datoteke se nahajajo v imeniku / usr / lib / firewalld / storitve.

Na primer:

# cd / usr / lib / firewalld / storitve

# mačka smtp.xml

  Pošta (SMTP) Ta možnost omogoča dohodno pošiljanje pošte SMTP. Če morate omogočiti oddaljenim gostiteljem, da se neposredno povežejo s strojem za dostavo pošte, omogočite to možnost. Tega vam ni treba omogočiti, če poštno sporočilo zbirate s strežnika ponudnika internetnih storitev s protokolom POP3 ali IMAP ali če uporabljate orodje, na primer fetchmail. Upoštevajte, da lahko nepravilno konfiguriran strežnik SMTP oddaljenim računalnikom dovoli uporabo vašega strežnika za pošiljanje neželene pošte.  

Datoteka XML vsebuje opis storitve, protokol in številko vrat, ki se odprejo v firewalld-u.

Pri dodajanju pravil lahko uporabite parameter -dodatna storitev, Če želite odpreti dostop do določene storitve:

# požarni zid-cmd --zone = javni --add-service = http

uspeh

# požarni zid-cmd --zone = javni --add-service = https

uspeh

Po dodajanju pravil lahko preverite, ali so storitve dodane v določeno območje:

# požarni zid-cmd --zone = javni - seznam-storitve

dhcpv6-odjemalec http https ssh

Če želite ta pravila narediti trajna, morate pri dodajanju dodati parameter -stalna.

Če želite odstraniti storitev iz območja:

# požarni zid-cmd - stalni --zone = javni - odstrani-storitev = http

# požarni zid-cmd --zone = javni - stalni - seznam-storitve

dhcpv6-odjemalec https ssh test

Če želite storitvam dodati izjeme, lahko ustvarite datoteko xml sebe in ga izpolnite. Podatke lahko kopirate iz katere koli storitve, spremenite ime, opis in številko vrat.

Kopirajte datoteko smtp.xml v imenik za delo z uporabniškimi storitvami:

# cp /usr/lib/firewalld/services/smtp.xml / itd / firewalld / storitve

Spremenite opis storitve v datoteki.

Tudi datoteko xml je treba preimenovati z imenom vaše storitve. Po tem morate znova zagnati firewalld in preveriti, ali je naša storitev na seznamu:

# požarni zid-cmd --get-services

Poklical sem službo test in na seznamu se je pojavil:

syslog-tls telnet test tftp

Zdaj lahko ustvarjeno storitev dodate v katero koli cono:

# požarni zid-cmd --zone = javni --add-service = test - stalni

uspeh

# požarni zid-cmd --zone = javni - stalni - seznam-storitve

dhcpv6-odjemalec http https ssh test

Če na seznamu niste našli želene storitve, lahko z ukazom odprete želeno vrata na firewalld:

# požarni zid-cmd --zone = javni -add-port = 77 / tcp - odprto vrata 77 tcp
# požarni zid-cmd --zone = javni -add-port = 77 / udp - odprto vrata 77 udp
# požarni zid-cmd --zone = javni -add-port = 77-88 / udp - odprto območje vrat 77-88 udp
# požarni zid-cmd --zone = javni -list-pristanišča - preverite seznam dovoljenih vrat

Blokiraj / dovolite odzive ICMP:

# požarni zid-cmd --zone = javni --add-icmp-block = odmeven odgovor
# firewall-cmd --zone = public --remove-icmp-block = odmeven odgovor

Izbriši dodana vrata:

# požarni zid-cmd --zone = public -remove-port = 77 / udp - odstrani začasno pravilo 77 udp

# požarni zid-cmd - stalni --zone = javni -remove-port = 77 / udp - odstranite obstojno pravilo

Dodajanje območij po meri

Lahko ustvarite svojo cono (poimenoval jo bom naše):

# požarni zid-cmd - trajna - nova cona = naša

Ko ustvarite novo cono, pa tudi po ustvarjanju storitve, morate znova zagnati firewalld:

# požarni zid-cmd - naloži

uspeh

# požarni zid-cmd --get-cone

blok dmz spusti zunanji dom notranje naše zaupanja vredno delo

Cona naše na voljo. Vanj lahko dodate storitve ali odprete določena vrata.

Firewalld: Blokiranje IP, izjema

V izjeme firewalld lahko dodate zaupanja vredne naslove IP ali blokirate neželene.

Če želite z izjemami dodati poseben naslov IP (na primer 8.8.8.8) na strežniku firewalld, uporabite ukaz:

# firewall-cmd --zone = public --add-rich-rule = 'družina pravil = "ipv4" vir vira = "8.8.8.8" sprejme "

Preverite območje in se prepričajte IP dodane izjemam iz pravila o bogatih pravilih:

# požarni zid-cmd --zone = javni - seznam-vse

javni (aktivni) cilj: privzeti icmp-block-inverzija: ni vmesnikov: izvori0: storitve: dhcpv6-odjemalec http https ssh testna pristanišča: protokoli: maskarada: brez vhodnih vrat: izvori-porti: icmp-bloki: obogatena pravila: družina pravil = "ipv4" izvorni naslov = "8.8.8.8" sprejme

Za blokiranje IP, treba zamenjati sprejeti naprej zavrniti:

# firewall-cmd --zone = public --add-rich-rule = 'družina pravil = "ipv4" vir vira = "8.8.4.4" zavrni "

# požarni zid-cmd --zone = javni - seznam-vse

javni (aktivni) cilj: privzeti icmp-block-inverzija: ni vmesnikov: izvori0: storitve: dhcpv6-odjemalec http https ssh testna pristanišča: protokoli: maskarada: brez vhodnih vrat: izvori-porti: icmp-bloki: obogatena pravila: družina pravil = "ipv4" izvorni naslov = "8.8.8.8" sprejme družino pravil = "ipv4" vir vira = "8.8.4.4" zavrni

Konkretno storitev lahko omogočite samo za zahteve z določenega naslova IP:

# požarni zid-cmd - stalna --add-rich-rule "družina pravil = izvorni naslov ipv4" = ime storitve 10.10.1.0/24 "=" https "sprejme"

Če morate nujno blokirati vse zahteve strežniku, uporabite ukaz panika:

# požarni zid-cmd --panic-on

Način panike lahko onemogočite bodisi z ukazom:

# požarni zid-cmd - izklopljen

Ali pa znova zaženite strežnik.

Konfiguracijo firewalld lahko blokirate tako, da lokalne storitve s korenskimi privilegiji ne morejo spremeniti pravil požarnega zidu, ki ste jih ustvarili:

# požarni zid-cmd - zaklepanje

Onemogoči način zaklepanja:

# požarni zid-cmd - zaklepanje

Posredovanje pristanišča v firewalldu

Pravilo za posredovanje vrat lahko ustvarite v firewalldu. Za posredovanje vrat 443 do 9090:

# požarni zid-cmd --zone = javni --add-forward-port = port = 443: proto = tcp: toport = 9090 - stalni

V operacijskem sistemu Windows lahko konfigurirate posredovanje vrat z netsh.

Če želite odstraniti pravilo za posredovanje vrat:

# požarni zid-cmd --zone = javni - odstranite-naprej-port = port = 443: proto = tcp: toport = 9090