Eldveggur á Linux gegnir mikilvægu hlutverki við að tryggja tölvukerfi. Það virkar sem hindrun, stjórnar og síar netumferð til að vernda kerfið fyrir óviðkomandi aðgangi, árásum og öðrum ógnum. Án rétt stilltans eldveggs gæti þjónninn verið viðkvæmur fyrir ýmsum gerðum netárása, sem leiðir til alvarlegra afleiðinga fyrir gagnaöryggi og trúnað.
Í þessari grein munum við skoða tvö helstu verkfæri til að stilla Linux eldvegginn: eldvegg og iptables. Við munum gera samanburðargreiningu á eiginleikum þeirra, virkni og kostum. Að auki munum við veita nákvæmar leiðbeiningar um uppsetningu og notkun hvers þessara verkfæra, auk þess að ræða bestu starfsvenjur til að tryggja kerfið þitt með eldvegg á Linux pallinum. Allar aðgerðir verða sýndar á a raunverulegur framreiðslumaður með rótaraðgangi.
Stillir eldvegg á Linux
Firewalld (Firewall Daemon) er forrit til að stjórna eldveggnum í Linux stýrikerfum. Það býður upp á notendaviðmót til að stilla eldveggsreglur, leyfa eða loka fyrir tengingar netforrita. Það er sjálfgefið fyrirfram uppsett í flestum netþjónadreifingum. Ef Firewalld er ekki foruppsett er hægt að setja það upp óháð opinberum geymslum dreifingarinnar.
Fyrir Red Hat kerfi (eins og RHEL, CentOS, Fedora) er uppsetningin framkvæmd með skipuninni:
yum install firewalld
Fyrir Debian/Ubuntu:
apt-get install firewalld
Eftir uppsetningu er hægt að ræsa hana og virkja strax með skipuninni:
systemctl start firewalld
Næst þarftu að bæta þjónustunni við ræsingu:
systemctl enable firewalld
Á þessum tímapunkti mælum við með að slökkva á ufw, þar sem ekki er mælt með samtímis notkun þessa tóls með eldvegg eða iptables. Athugaðu stöðuna:
systemctl status ufw
Til að stöðva það skaltu slá inn skipunina:
systemctl stop ufw
Fyrir algera óvirkjun:
ufw disable
Eftir þessar aðgerðir geturðu haldið áfram að stilla eldvegg.
Í fyrsta lagi er nauðsynlegt að skilgreina traustsvæði. Firewalld notar hugmyndina um svæði til að ákvarða hversu mikið traust er fyrir netviðmót. Hvert viðmót er úthlutað einu svæði og eldveggsreglum er beitt út frá svæðinu. Listinn yfir öll tiltæk svæði er opnuð með skipuninni:
firewall-cmd --get-zones
Venjulega eru 4 aðalsvæði notuð:
- Almenn: Þetta svæði er fyrir net sem þú telur óörugg;
- Einka: Á við um heimanet eða aðrar traustar nettengingar;
- Innri: Notað fyrir innri net, eins og þau innan stofnunar eða fyrirtækjanets;
- DMZ: Þetta svæði er þar sem netþjónar eru venjulega staðsettir sem ættu að vera aðgengilegir af internetinu.
Þetta er þó aðeins eitt dæmi. Þú getur bætt við þínu eigin svæði með skipuninni:
firewall-cmd --permanent --new-zone=nameyourzone
Eftir að hafa verið bætt við þarf endurhlaða:
firewall-cmd --reload
Til að eyða svæði er svipuð aðferð notuð
firewall-cmd --permanent --delete-zone=nameyourzone
Eftir að hafa skilgreint svæði er nauðsynlegt að leyfa umferð fyrir nauðsynlega þjónustu og hafnir. Til að leyfa ákveðna þjónustu, notaðu skipunina:
firewall-cmd --zone=public --add-service=name
hvar nafn er nafnið á þjónustunni. Til dæmis, til að leyfa umferð fyrir Apache:
firewall-cmd --zone=public --add-service=http
Til að skilgreina leyfilegar hafnir, notaðu skipunina:
firewall-cmd --zone=public --add-port=number/protocol
Til dæmis myndi staðlað 22 tengi fyrir SSH líta svona út:
firewall-cmd --zone=public --add-port=22/tcp
Á þessu stigi eru helstu reglurnar þegar búnar til. Næst skaltu ákvarða hvernig umferð verður unnin eftir uppruna, áfangastað, höfn og öðrum forsendum. Til að bæta við reglu (með því að nota opinber svæði sem dæmi):
firewall-cmd --zone=public rule
Til dæmis, til að leyfa komandi umferð frá hvaða uppruna sem er á höfn 80 (HTTP):
firewall-cmd --zone=public --add-port=80/tcp --permanent
Til að fjarlægja reglu:
firewall-cmd --permanent --remove-rule=rule_specification
hvar reglu er tegund reglu (td höfn, þjónusta, ríkur-regla osfrv.), og reglu_forskrift er forskrift reglunnar sjálfrar.
Eftir að hafa gert breytingar á uppsetningu Firewalld er nauðsynlegt að vista þær og nota þær. Til að vista breytingar, notaðu skipunina:
firewall-cmd --runtime-to-permanent
Til að beita breytingum:
firewall-cmd --reload
Þegar uppsetningunni er lokið geturðu staðfest valdar færibreytur með því að opna listann yfir allar reglur:
firewall-cmd --list-all
Ef einhver vandamál koma upp skaltu athuga Firewalld logs með skipuninni:
journalctl -u firewalld
Athugið: Við höfum aðeins fjallað um almenna reikniritið til að setja upp tenginguna. Tólið hefur mikla virkni. Fyrir allar upplýsingar um alla tiltæka valkosti geturðu notað opinber skjöl eða opna hjálp:
firewall-cmd --help
Stilla iptables á Linux
Ólíkt Firewalld er iptables eldra en samt mikið notað tól í Linux til að stjórna eldveggnum. Það veitir beinari og sveigjanlegri nálgun á reglum um pakkasíun á Linux kjarnastigi. Hins vegar krefjast iptables meiri þekkingu og reynslu samanborið við Firewalld, sem gerir það minna aðgengilegt fyrir byrjendur. Athugaðu fyrirfram uppsettu útgáfuna af tólinu með skipuninni:
iptables -V
Ef tólið er ekki uppsett þarf að setja það upp. Skipunin fyrir uppsetningu á Ubuntu, Debian:
apt install iptables
Fyrir Red Hat kerfi (td CentOS, Fedora):
yum install iptables
Skipunin til að virkja eftir uppsetningu:
systemctl start iptables
Til að bæta við ræsingu skaltu framkvæma:
systemctl enable iptables
Áður en byrjað er á uppsetningu iptables er mikilvægt að skilja hvernig það virkar. Þetta er hjálpað af setningafræði forritsins. Það lítur þannig út:
iptables -t table action chain additional_parameters
Við skulum kafa dýpra í hvert atriði.
Iptables hefur fjórar aðaltöflur: filter, nat, mangle og raw. Hver er hannaður til að vinna úr ákveðnum tegundum pakka og hefur sínar eigin reglur:
- sía: Þetta er sú tafla sem er oftast notuð og inniheldur pakkasíunarreglur. Það er notað til að taka ákvarðanir um hvort leyfa eigi eða hafna pökkum.
- nat: Þessi tafla er notuð til að breyta netföngum og höfnum í pökkum. Það er oft notað til að setja upp masquerading (NAT).
- mangle: Í þessari töflu geturðu breytt pakkahausum. Það er notað fyrir sérhæfðar pakkaaðgerðir, svo sem merkingar.
- hrár: Þessi tafla er notuð til að stilla reglur sem gilda áður en þær fara í gegnum tengingarrakningarkerfið. Það er venjulega notað til að setja upp reglur sem rakningarkerfið ætti ekki að breyta, svo sem að sleppa pökkum frá ákveðnum vistföngum.
Hvert borð inniheldur sett af keðjum. Keðjur eru röð reglna sem er athugað í röð. Það eru þrjár fyrirfram skilgreindar keðjur:
- INNTAK (komandi). Reglurnar í þessari keðju ákvarða hvað á að gera við komandi pakka.
- ÚTTAKA (á útleið). Þessi keðja á við um alla pakka sem tölvan þín sendir í önnur tæki eða tölvur á netinu.
- ÁFRAM (áframsending). Reglurnar í þessari keðju tilgreina hvað á að gera við framsenda pakka.
Að lokum hefur hver keðja einhverja virkni (markmið). Í reynd eru 5 meginaðgerðir notaðar:
- SAMÞYKKJA: Leyfðu pakkanum að fara í gegnum eldvegginn.
- DROP: Hafnaðu pakkanum og fargaðu honum án nokkurs svars.
- Hafna: Hafnaðu pakkanum og sendu sendanda ICMP villuboð.
- LOG: Skráðu pakkann í kerfisskránni og framkvæmdu aðra aðgerð (td SAMÞYKKJA eða SLIPPA).
- RETURN: Hættu að athuga reglurnar í núverandi keðju og farðu aftur í hringingarkeðjuna (ef við á).
Til að hefja uppsetninguna skaltu opna listann yfir gildandi reglur með skipuninni:
iptables -L
Sem leiðbeiningar um uppsetningu Iptables skulum við skoða hagnýt dæmi um algengustu skipanirnar. Til hægðarauka munum við skipta dæmunum í 3 hópa, allt eftir tiltekinni keðju.
keðja INPUT:
- Leyfa komandi umferð um TCP samskiptareglur á höfn 80:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
2. Leyfa komandi umferð í gegnum UDP samskiptareglur á höfn 22:
iptables -A INPUT -p udp --dport 22 -j ACCEPT
3. Lokaðu fyrir komandi umferð frá tilteknu IP-tölu:
iptables -A INPUT -s 192.168.1.100 -j DROP
keðja Output:
- Leyfa sendandi umferð um TCP samskiptareglur á höfn 443:
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT
2. Leyfa sendandi umferð í gegnum UDP samskiptareglur á tengi 80:
iptables -A OUTPUT -p udp --dport 80 -j ACCEPT
3. Lokaðu fyrir sendandi umferð á tiltekna höfn (til dæmis 21):
iptables -A OUTPUT -p tcp --dport 21 -j DROP
keðja FORWARD:
- Lokaðu fyrir áframsendri umferð frá ákveðnu úrvali IP-tala:
iptables -A FORWARD -s 172.16.0.0/24 -j DROP
2. Lokaðu fyrir framsendingu pakka frá tilteknu netviðmóti:
iptables -A FORWARD -i eth1 -j DROP
3. Takmarkaðu fjölda samtímis tenginga fyrir tiltekna höfn (í þessu dæmi, 10 tengingar á mínútu á höfn 80):
iptables -A INPUT -p tcp --dport 80 -m limit --limit 10/minute -j ACCEPT
Eins og þú sérð er viðbótarrök (skipun) notuð í hverju tilviki. Til að fá heildarlista yfir möguleg rök og heildarstuðning við virkni tólsins skaltu slá inn:
iptables -h
Til að tryggja að stillingarnar séu réttar skaltu slá inn skipunina aftur til að skoða listann yfir reglur:
iptables -L
Til að eyða ákveðinni reglu, notaðu skipunina:
iptables -D chain rule_number
Til dæmis, ef þú vilt eyða reglu númer 1 úr INPUT keðjunni, mun skipunin líta svona út:
iptables -D INPUT 1
Til að eyða öllum reglum með einni skipun:
iptables -F
Mikilvægur minnispunktur: Reglur iptables eru ekki vistaðar sjálfkrafa eftir endurræsingu á kerfinu eða þjónustunni. Til að vista reglurnar þarf að bæta þeim við stillingarskrá og endurheimta eftir endurræsingu. The iptables-vista og iptables-restore veitur geta aðstoðað við þetta. Til að vista reglurnar skaltu slá inn skipunina:
iptables-save > /etc/iptables/rules.v4
Þetta vistar núverandi iptables reglur í rules.v4 skránni. Til að endurræsa eftir endurræsingu skaltu slá inn:
iptables-restore < /etc/iptables/rules.v4
Þessi skipun endurheimtir reglurnar úr rule.v4 skránni.
Niðurstaða
Að stilla eldvegg á Linux með því að nota eldvegg eða iptables er mikilvægur þáttur í því að tryggja öryggi netþjónsins. Bæði verkfærin bjóða upp á áreiðanlegar leiðir til að stjórna netumferð og vernda kerfið fyrir óviðkomandi aðgangi og netárásum. Valið á milli eldveggs og iptables fer eftir sérstökum þörfum og óskum notandans, miðað við mismunandi virkni þeirra og styrkleika.