Hvernig á að setja upp, stilla og nota Firewalld í CentOS og Ubuntu


Firewalld (eldveggspúki) er valkostur við iptables þjónustuna, til að stjórna eldvegg kerfis á virkan hátt með stuðningi fyrir net (eða eldvegg) svæði og veitir D-Bus viðmót til að stjórna stillingum. Það er auðvelt í notkun og stilla, og það er nú sjálfgefið eldveggsstjórnunartól á RHEL/CentOS, Fedora og nokkrum öðrum Linux dreifingum.

Í þessari grein munum við ræða hvernig á að stilla eldvegg kerfisins með eldvegg og innleiða grunn pakkasíun í CentOS/RHEL 7 og Ubuntu.

Grunnatriðin um Firewalld

Firewalld samanstendur af þremur lögum, sem eru:

  • kjarnalag: ábyrgt fyrir meðhöndlun stillingar og bakenda (talin upp hér að neðan).
  • D-Bus viðmót: aðal leiðin til að breyta og búa til eldveggstillingu.
  • backends: fyrir samskipti við netfilter (innfædda kjarnaeiningin sem notuð er fyrir eldvegg). Þeir innihalda iptables, ip6tables, ebtables, ipset, nft, linnftables; netstjóri; og einingar.

Það stjórnar eldveggsreglum með því að innleiða net-/eldveggssvæði sem skilgreina trauststig nettenginga eða viðmóta. Aðrir studdir eldveggseiginleikar fela í sér þjónustu, bein stilling (notuð til að fara beint í gegnum hráa iptables setningafræði), IPS-sett sem og ICMP tegundir.

Tvær gerðir af stillingarumhverfi eru studdar af eldvegg:

  • keyrslutímastillingar sem eru aðeins virkar þar til vélin hefur verið endurræst eða eldveggsþjónustan hefur verið endurræst
  • varanleg stilling sem er vistuð og virkar stöðugt.

Firewall-cmd skipanalínutólið er notað til að stjórna keyrslutíma og varanlegum stillingum. Að öðrum kosti geturðu notað eldveggsstillingar fyrir grafíska notendaviðmótið (GUI) til að hafa samskipti við púkann.

Að auki býður firewalld upp á vel skilgreint viðmót fyrir aðra staðbundna þjónustu eða forrit til að biðja beint um breytingar á eldveggsreglunum, ef þær eru í gangi með rótarréttindi.

Alþjóðlega stillingarskráin fyrir eldvegg er staðsett á /etc/firewalld/firewalld.conf og eiginleikar eldveggs eru stilltir á XML sniði.

Skilningur á mikilvægum eiginleikum Firewalld

Aðalatriðið í eldvegg er net-/eldveggssvæði. Sérhver annar eiginleiki er bundinn við svæði. Eldveggssvæði lýsir traustsstigi fyrir tengingu, viðmót eða upprunavistfangabindingu.

Sjálfgefin uppsetning kemur með fjölda fyrirframskilgreindra svæða sem flokkað er í samræmi við sjálfgefið trauststig svæðanna frá ótraust til trausts: falla, loka, opinbert, ytra, dmz, vinna, heima, innra og traust. Þau eru skilgreind í skrám sem eru geymdar undir /usr/lib/firewalld/zones skránni.

Þú getur stillt eða bætt við sérsniðnum svæðum þínum með því að nota CLI biðlarann eða einfaldlega búið til eða afritað svæðisskrá í /etc/firewalld/zones úr núverandi skrám og breytt henni.

Annað mikilvægt hugtak undir eldvegg er þjónusta. Þjónusta er skilgreind með höfnum og samskiptareglum; þessar skilgreiningar tákna tiltekna sérþjónustu eins og vefþjón eða fjaraðgangsþjónustu. Þjónusta er skilgreind í skrám sem eru geymdar undir /usr/lib/firewalld/services/ eða /etc/firewalld/services/ möppunni.

Ef þú þekkir grunnhugtök iptables/ip6tables/ebtables geturðu líka notað beint viðmótið (eða stillingarnar) til að fá beinan aðgang að eldveggnum. En fyrir þá sem hafa ekki þekkingu á iptables geturðu notað hið ríka tungumál til að búa til flóknari eldveggsreglur fyrir IPv4 og IPv6.

Hvernig á að setja upp Firewalld pakka í Linux

Á CentOS 7 kemur eldveggspakkinn fyrirfram uppsettur og þú getur staðfest með eftirfarandi skipun.

$ rpm -qa firewalld

Á Ubuntu 16.04 og 18.04 geturðu sett það upp með því að nota sjálfgefna pakkastjórann eins og sýnt er.

$ sudo apt install firewalld

Hvernig á að stjórna Firewalld Service í Linux

Firewalld er venjuleg kerfisþjónusta sem hægt er að stjórna með systemctl skipuninni.

 
$ sudo systemctl start firewalld	#start the service for the mean time
$ sudo systemctl enable firewalld	#enable the service to auto-start at boot time
$ sudo systemctl status firewalld	#view service status

Eftir að eldveggsþjónusta hefur verið hafin geturðu líka athugað hvort púkinn sé í gangi eða ekki, með því að nota eldvegg-cmd tólið (ef það er ekki virkt mun þessi skipun gefa út ekki í gangi).

$ sudo firewall-cmd --state

Ef þú vistar breytingar varanlega geturðu endurhlaða eldvegg. Þetta mun endurhlaða eldveggsreglur og geyma ríkisupplýsingar. Núverandi varanleg uppsetning verður ný keyrslustillingar.

$ sudo firewall-cmd --reload

Hvernig á að vinna með eldveggssvæði í Firewalld

Til að fá lista yfir öll tiltæk eldveggssvæði og þjónustu skaltu keyra þessar skipanir.

$ sudo firewall-cmd --get-zones
$ sudo firewall-cmd --get-services

Sjálfgefið svæði er svæðið sem er notað fyrir hvern eldveggseiginleika sem er ekki beinlínis bundinn við annað svæði. Þú getur fengið sjálfgefið svæði stillt fyrir nettengingar og viðmót með því að keyra.

$ sudo firewall-cmd --get-default-zone

Til að stilla sjálfgefið svæði, til dæmis á ytra, notaðu eftirfarandi skipun. Athugaðu að með því að bæta við valkostinum --varanleg setur stillingarnar varanlega (eða gerir fyrirspurn um upplýsingar úr varanlegu stillingaumhverfinu).

$ sudo firewall-cmd --set-default-zone=external
OR
$ sudo firewall-cmd --set-default-zone=external --permanent
$ sudo firewall-cmd --reload 

Næst skulum við skoða hvernig á að bæta viðmóti við svæði. Þetta dæmi sýnir hvernig á að bæta þráðlausa netkortinu þínu (wlp1s0) við heimasvæði, sem er notað á heimasvæðum.

$ sudo firewall-cmd --zone=home --add-interface=wlp1s0

Aðeins er hægt að bæta viðmóti við eitt svæði. Til að færa það á annað svæði, notaðu --change-interface rofann eins og sýnt er, eða fjarlægðu hann úr fyrra svæði með því að nota –remove-interface rofann, bættu því síðan við nýja svæðið.

Miðað við að þú viljir tengjast almennu WI-FI neti ættir þú að færa þráðlausa viðmótið þitt aftur á almenningssvæðið, svona:

$ sudo firewall-cmd --zone=public --add-interface=wlp1s0
$ sudo firewall-cmd --zone=public --change-interface=wlp1s0

Þú getur notað mörg svæði á sama tíma. Til að fá lista yfir öll virk svæði með virka eiginleika eins og viðmót, þjónustu, höfn, samskiptareglur skaltu keyra:

$ sudo firewall-cmd --get-active-zones

Í tengslum við fyrri lið, ef þú vilt finna frekari upplýsingar um tiltekið svæði, þ.e. allt sem bætt er við eða virkt á því, notaðu eina af þessum skipunum:

$ sudo firewall-cmd --zone=home --list-all
OR
$ sudo firewall-cmd --info-zone public

Annar gagnlegur valkostur er --get-target, sem sýnir þér markmið varanlegs svæðis. Markmið er eitt af: sjálfgefið, SAMÞYKKJA, SLIPPA, HAFNA. Þú getur athugað markmið ýmissa svæða:

$ sudo firewall-cmd --permanent --zone=public --get-target  
$ sudo firewall-cmd --permanent --zone=block --get-target  
$ sudo firewall-cmd --permanent --zone=dmz --get-target  
$ sudo firewall-cmd --permanent --zone=external --get-target
$ sudo firewall-cmd --permanent --zone=drop --get-target

Hvernig á að opna og loka fyrir höfn í Firewalld

Til að opna gátt (eða gátt/samskiptareglur) í eldveggnum skaltu einfaldlega bæta því við svæði með --add-port valkostinum. Ef þú tilgreinir ekki svæðið sérstaklega verður það virkt á sjálfgefnu svæði.

Eftirfarandi dæmi sýnir hvernig á að bæta við tengi 80 og 443 til að leyfa innlenda vefumferð um HTTP og HTTPS samskiptareglur, í sömu röð:

$ sudo firewall-cmd --zone=public --permanent --add-port=80/tcp --add-port=443/tcp

Næst skaltu endurhlaða eldvegg og athuga virku eiginleikana á almenningssvæðinu einu sinni enn, þú ættir að geta séð höfnin sem nýlega var bætt við.

$ sudo firewall-cmd --reload
$ sudo firewall-cmd --info-zone public

Það er jafn auðvelt að loka eða loka gátt í eldveggnum, einfaldlega fjarlægðu það af svæði með --remove-port valkostinum. Til dæmis að loka höfnum 80 og 443 á almenningssvæði.

$ sudo firewall-cmd --zone=public --permanent --remove-port=80/tcp --remove-port=443/tcp

Í stað þess að nota höfn eða gátt/samskiptareglur samsetningu geturðu notað þjónustuheitið sem höfn er úthlutað eins og útskýrt er í næsta kafla.

Hvernig á að opna og loka fyrir þjónustu í Firewalld

Til að opna þjónustu í eldveggnum skaltu virkja hana með --add-service valkostinum. Ef svæði er sleppt verður sjálfgefið svæði notað.

Eftirfarandi skipun mun varanlega virkja http þjónustuna á almenningssvæðinu.

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

Hægt er að nota valkostinn --remove-service til að slökkva á þjónustu.

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

Hvernig á að virkja og slökkva á IP Masquerading með Firewalld

IP Masquerading (einnig þekkt sem IPMASQ eða MASQ) er NAT (Network Address Translation) vélbúnaður í Linux netkerfi sem gerir gestgjöfum þínum í neti, með einka IP tölum, kleift að eiga samskipti við internetið með því að nota Linux netþjóninn þinn (IPMASQ gátt) úthlutað opinberri IP heimilisfang.

Það er einn á marga kortlagningu. Umferð frá ósýnilegu vélunum þínum mun birtast öðrum tölvum á internetinu eins og hún kæmi frá Linux netþjóninum þínum.

Þú getur virkjað IP-grímu á tilteknu svæði, til dæmis almenningssvæðinu. En áður en þú gerir það skaltu fyrst athuga hvort grímugerð er virk eða ekki („nei“ þýðir að það er óvirkt og „já“ þýðir annað).

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

Dæmigert notkunartilvik fyrir grímugerð er að framkvæma framsendingu hafna. Að því gefnu að þú viljir SSH frá ytri vél til hýsils á innra neti þínu með IP 10.20.1.3, sem sshd púkinn hlustar á á port 5000.

Þú getur framsent allar tengingar á höfn 22 á Linux netþjóninum þínum á fyrirhugaða höfn á miðhýslinum þínum með því að gefa út:

$ sudo firewall-cmd --zone=public --add-forward-port=port=22=proto=tcp:toport=5000:toaddr=10.20.1.3

Til að slökkva á grímugerð á svæði, notaðu --remove-masquerade rofann.

$ sudo firewall-cmd --zone=public --remove-masquerade

Hvernig á að virkja og slökkva á IMCP skilaboðum í Firewalld

ICMP (Internet Control Message Protocol) skilaboð eru annað hvort upplýsingabeiðnir eða svör við upplýsingabeiðnum eða í villuskilyrðum.

Þú getur virkjað eða slökkt á ICMP-skilaboðum í eldveggnum, en áður en það gerist skaltu fyrst lista allar studdar icmp-gerðir.

$ sudo firewall-cmd --get-icmptypes

Til að bæta við eða fjarlægja blokkartegund sem þú vilt.

$ sudo firewall-cmd --zone=home --add-icmp-block=echo-reply
OR
$ sudo firewall-cmd --zone=home --remove-icmp-block=echo-reply

Þú getur skoðað allar icmp tegundir sem bætt er við á svæði með því að nota --list-icmp-blocks rofann.

$ sudo firewall-cmd --zone=home --list-icmp-blocks

Hvernig á að nota beint viðmót til að senda Raw iptables skipanir

Firewall-cmd býður einnig upp á beinan möguleika (--direct) fyrir þig til að fá beinan aðgang að eldveggnum. Þetta er gagnlegt fyrir þá sem hafa grunnþekkingu á iptables.

Mikilvægt: Þú ættir aðeins að nota beinu valkostina sem síðasta úrræði þegar það er ekki hægt að nota venjulega eldvegg-cmd valkostina sem lýst er hér að ofan.

Hér er dæmi um hvernig á að standast hráa iptables reglu, með því að nota --add-rules rofann. Þú getur auðveldlega fjarlægt þessar reglur með því að skipta út --add-rule fyrir --remove-rule:

$ sudo firewall-cmd --direct --add-rule ipv4 filter IN_public_allow 0 -m tcp -p tcp --dport 80 -j ACCEPT

Fyrir frekari upplýsingar um iptables, sjá þessa handbók: Hvernig á að setja upp Iptables eldvegg til að virkja fjaraðgang að þjónustu í Linux.

Ef þú þekkir ekki setningafræði iptables geturðu valið um „ríkt tungumál“ Firewalld til að búa til flóknari eldveggsreglur á auðskiljanlegan hátt eins og útskýrt er næst.

Hvernig á að nota Rich Language í Firewalld

Ríka tungumálið (einnig þekkt sem ríkar reglur) er notað til að bæta við flóknari eldveggsreglum fyrir IPv4 og IPv6 án þess að hafa vitneskju um setningafræði iptables.

Það útvíkkar svæðiseiginleikana (þjónustu, höfn, icmp-blokk, grímu og framhlið) sem við höfum fjallað um. Það styður uppruna- og áfangaföng, skráningu, aðgerðir og takmörk fyrir annála og aðgerðir.

--add-rich-reglan er notuð til að bæta við ríkum reglum. Þetta dæmi sýnir hvernig á að leyfa nýjar IPv4 og IPv6 tengingar fyrir þjónustu http og skrá 1 á mínútu með endurskoðun:

$ sudo firewall-cmd --add-rich-rule='rule service name="http" audit limit value="1/m" accept'

Til að fjarlægja regluna sem bætt var við skaltu skipta út --add-rich-rule valkostinum fyrir --remove-rich-rule.

$ sudo firewall-cmd --remove-rich-rule='rule service name="http" audit limit value="1/m" accept'

Þessi eiginleiki gerir einnig kleift að loka fyrir eða leyfa umferð frá tilteknu IP-tölu. Eftirfarandi dæmi sýnir hvernig á að hafna tengingum frá IP 10.20.1.20.

$ sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.0.254" reject'

Hvernig á að virkja og slökkva á lætiham í Firewalld

Panic mode er sérstakur hamur undir eldvegg þar sem allir pakkar á innleið og útleið falla niður og virkar tengingar munu renna út þegar þær hafa verið virkjaðar.
Þú getur virkjað þessa stillingu í neyðartilvikum þar sem ógn við netumhverfið þitt hættir.

Til að spyrjast fyrir um lætiham, notaðu --query-panic valkostinn.

$ sudo firewall-cmd --query-panic

Til að virkja lætiham, notaðu --panic-on valkostinn. Þú getur prófað hvort það virki með því að nota ping skipunina eins og sýnt er. Vegna þess að pakkinn er sleppt er ekki hægt að leysa nafnið www.google.com, þess vegna birtist villan.

$ sudo firewall-cmd --panic-on
$ ping -c 2 www.google.com

Til að slökkva á lætiham, notaðu --panic-off valkostinn.

$ sudo firewall-cmd --panic-off

Hvernig á að læsa eldvegg

Mundu að við nefndum undir grunnatriði um eldvegg að staðbundin forrit eða þjónusta geta breytt eldveggstillingunni ef þau eru í gangi með rótarréttindi. Þú getur stjórnað því hvaða forrit geta beðið um breytingar á eldvegg með því að tilgreina það á hvítalista fyrir lokun.

Sjálfgefið er slökkt á þessum eiginleika, þú getur virkjað eða slökkt á honum með --lockdown-on eða --lockdown rofanum.

$ sudo firewall-cmd --lockdown-on
OR
$ sudo firewall-cmd --lockdown-off

Athugaðu að mælt er með því að virkja eða slökkva á þessum eiginleika með því að breyta aðalstillingarskránni, vegna þess að eldveggurinn-cmd gæti ekki verið til á undanþágulista þegar þú kveikir á læsingu.

$ sudo vim /etc/firewalld/firewalld.conf

Finndu færibreytuna Lockdown og breyttu gildi hennar úr nei (þýðir slökkt) í (merkir á).

Lockdown=yes

Til að gera þessa stillingu varanlega skaltu endurhlaða eldvegg.

$ sudo firewall-cmd --reload

Firewalld er auðveld í notkun í staðinn fyrir iptables þjónustuna, sem notar iptables sem bakenda. Í þessari grein höfum við sýnt hvernig á að setja upp firewalld pakka, útskýrt mikilvæga eiginleika Firewalld og rætt hvernig á að stilla þá í keyrslutíma og varanlegu stillingarumhverfi.

Ef þú hefur einhverjar spurningar eða athugasemdir skaltu ekki hika við að hafa samband við okkur í gegnum athugasemdareyðublaðið hér að neðan. Þú getur vísað á eldveggshandbókarsíðuna (man firewalld) eða eldveggskjölin á vefsíðu verkefnisins fyrir frekari upplýsingar.