Calicoga vÔrgu poliitikate rakendamise variantide mÔistmine.

Calicoga vÔrgu poliitikate rakendamise variantide mÔistmine.

Calico vĂ”rgulisand pakub laialdast poliitika komplekti ĂŒhtse sĂŒntaksiga, et kaitsta hoste, virtuaalmasinaid ja pod'e. Need poliitikad vĂ”ivad olla rakendatavad nimede ruumi tasandil vĂ”i olla globaalsete vĂ”rgupoliitikatena, mis rakenduvad host endpoint (rakenduste kaitsmiseks, mis töötavad otse hostis — host vĂ”ib olla kas server vĂ”i virtuaalmasin) vĂ”i workload endpoint (rakenduste kaitsmiseks, mis töötavad konteinerites vĂ”i virtuaalmasinates, mis on hostis. Calico poliitikad vĂ”imaldavad rakendada turvameetmeid erinevates paketiteedepunktides, kasutades selliseid parameetreid nagu preDNAT, unraracked ja applyOnForward. Nende valikute toimimise mĂ”istmine vĂ”ib aidata suurendada sĂŒsteemi ĂŒldist turvalisust ja jĂ”udlust. KĂ€esolevas artiklis selgitatakse Calico poliitikate (preDNAT, unraracked ja applyOnForward) olemust, mis rakendatakse host endpointidele, keskendudes sellele, mis juhtub pakettide töötlemise teedes (iptabelite ahelates).

KÀesolev artikkel eeldab, et teil on teadmised Kubernetes ja Calico vÔrgupoliitikate pÔhitÔdedest. Kui ei, siis soovitame proovida alusvÔrgu poliitika Ôpik ja hosti kaitse Ôpik kasutades Calicot, enne selle artikli lugemist. Eeldame samuti, et teil on pÔhiteadmised iptables Linuxi kohta.

Calico globaalne vĂ”rgu poliitika vĂ”imaldab teil rakendada juurdepÀÀsureeglite kogumit etikettide (hostide ja workloads/podide rĂŒhmade) jĂ€rgi. See on vĂ€ga kasulik, kui kasutate koos erinevaid sĂŒsteeme — virtuaalmasinad, otse raual töötav sĂŒsteem vĂ”i Kubernetes infrastruktuur. Samuti saate kaitsta oma klastrit (noode) deklaratiivsete poliitikate kogumiga ja rakendada vĂ”rgu poliitikaid sissetulevale liiklusele (nt lĂ€bi NodePorts vĂ”i vĂ€liste IP-de teenuse).

Aluselt, kui Calico ĂŒhendab pod'i vĂ”rku (vt allolevat diagrammi), ĂŒhendab ta selle hostiga virtuaalse Etherneti liidese (veth) kaudu. Pod'i edastatud liiklus jĂ”uab hosti sellel virtuaalsel liidesel ja töödeldakse nagu fĂŒĂŒsiliselt vĂ”rguliideselt tulnud liiklus. Vaikimisi nimetab Calico neid liideseid caliXXX. Kuna liiklus siseneb virtuaalse liidese kaudu, lĂ€bib see iptables, nagu oleks pod ĂŒhe hop'i kaugusel. SeetĂ”ttu, kui liiklus jĂ”uab/ĂŒles tĂ”useb pod'ist, suunatakse see hosti seisukohalt edasi.

Kubernetes'i sĂ”lmel, kus Calico on kĂ€imas, saate virtuaalse liidese (veth) vastandada töökoormusele jĂ€rgmiselt. Allolevas nĂ€ites nĂ€ete, et veth#10 (calic1cbf1ca0f8) on ĂŒhendatud cnx-manager- * calico-monitoring namespace'is.

[centos@ip-172-31-31-46 K8S]$ sudo ip a
...
10: calic1cbf1ca0f8@if4:  mtu 1440 qdisc noqueue state UP group default
    link/ether ee:ee:ee:ee:ee:ee brd ff:ff:ff:ff:ff:ff link-netnsid 5
    inet6 fe80::ecee:eeff:feee:eeee/64 scope link
       valid_lft forever preferred_lft forever
...

[centos@ip-172-31-31-46 K8S]$ calicoctl get wep --all-namespaces
...
calico-monitoring cnx-manager-8f778bd66-lz45m                            ip-172-31-31-46.ec2.internal 192.168.103.134/32
calic1cbf1ca0f8
...

Calicoga vÔrgu poliitikate rakendamise variantide mÔistmine.

Arvestades, et Calico loob iga töökoormuse jaoks veth-liidese, kuidas see poliitikaid rakendab? Selleks loob Calico konksud mitmetesse pakettide töötlemise ketidesse, kasutades iptables'i.

Alloleval diagrammil on nĂ€idatud chainid, mis osalevad pakettide töötlemises iptables'is (vĂ”i netfilter'i sĂŒsteemis). Kui paketid tulevad lĂ€bi vĂ”rguliidese, lĂ€bivad need esmalt PREROUTING ketti. SeejĂ€rel langetatakse marsruutimise otsus, ning selle alusel lĂ€bib paket kas INPUT ketti (suunatud hosti protsessidele) vĂ”i FORWARD ketti (suunatud pod'ile vĂ”i teisele nodile vĂ”rgus). Kohalikku protsessi minnes lĂ€bib pakett OUTPUT ketti ja seejĂ€rel POSTROUTING'i enne edastamist kaabli kaudu.

Pange tĂ€hele, et pod on samuti vĂ€line objekt (ĂŒhendatud veth'iga) iptables'i töötlemise jaoks. KokkuvĂ”tteks:

  • Edastatav (forwarded) liiklus (nat, marsruutimisvĂ”ime vĂ”i pod'i sisse/ vĂ€lja) lĂ€bib PREROUTING — FORWARD — POSTROUTING ketid.
  • Kohalikku hosti protsessile suunatud liiklus lĂ€bib PREROUTING — INPUT ketti.
  • Kohalikust hosti protsessist tulenev liiklus lĂ€bib OUTPUT — POSTROUTING ketti.

Calicoga vÔrgu poliitikate rakendamise variantide mÔistmine.

Calico pakub poliitikate valikuid, mille abil saab rakendada poliitikaid kĂ”igile ahelatele. Arvesse vĂ”ttes seda, vaatame erinevaid poliitikate seadistamise vĂ”imalusi, mis on saadaval Calicos. Allpool olevate valikute numbrid vastavad ĂŒlaltoodud diagrammi numbritele.

  1. Töökoha lÔpp-punkti poliitika
  2. Gost lÔpp-punkti poliitika
  3. Valik ApplyOnForward
  4. PreDNAT poliitika
  5. Untracked poliitika

Alustame sellest, kuidas poliitikaid rakendatakse töökoha lĂ”pp-punktidele (Kubernetes pod’idele vĂ”i OpenStack VM-idele), seejĂ€rel vaatame host-lĂ”pp-punktide poliitika valikuid.

Töökoha lÔpp-punktid

Töökoha lÔpp-punkti poliitika (1)

See on valik teie Kubernetes pod'ide kaitsmiseks. Calico toetab Kubernetes NetworkPolicy'd, kuid see pakub ka tĂ€iendavaid poliitikaid — Calico NetworkPolicy ja GlobalNetworkPolicy. Calico loob iga pod'i (töökoha) jaoks ahela ja ĂŒhendab töökoha ahelad INPUT ja OUTPUT ahelate filtri tabelisse.

Gost lÔpp-punktid

Gost lÔpp-punkti poliitika (2)

Lisaks CNI-le (konteineri vĂ”rgu liides) pakuvad Calico poliitikad vĂ”imalust kaitsta otse hosti. Calicos saate luua hosti lĂ”pp-punkti, mÀÀrates hosti liidese ning vajadusel ka pordi numbrid. Nende poliitikate rakendamine selle ĂŒksuse jaoks toimub FILTER tabeli abil INPUT ja OUTPUT ahelates. Nagu diagrammilt nĂ€ha, (2) rakendatakse neid kohalikest protsessidest sĂ”lmes/hostis. See tĂ€hendab, et kui loote poliitika, mis rakendub hosti lĂ”pp-punktile, ei mĂ”juta see liiklust, mis suundub teie pod'ide poole vĂ”i sealt Ă€ra. Kuid selle abil tagatakse ĂŒhtne liides/sĂŒntaks liikluse blokeerimise jaoks teie hostile ja pod'idele Calico poliitikate abil. See lihtsustab poliitikate haldamise protsessi erinevas vĂ”rgus. Host lĂ”pp-punktide poliitikate seadistamine klastrikaitse tugevdamiseks on veel ĂŒks oluline kasutusjuht.

ApplyOnForward Policy (3)

ApplyOnForward valik on saadaval Calico globaalsete vÔrgupoliitikate puhul, et vÔimaldada poliitikate rakendamist kogu liiklusele, mis lÀbib hosti lÔpp-punkti, sealhulgas liiklusele, mis suunatakse hosti (edastatakse). See liiklus hÔlmab ka liiklust, mis edastatakse kohalikku podi vÔi mÔnda muud punkti vÔrgus. Calico nÔuab, et see valik oleks aktiveeritud poliitikate puhul, mis kasutavad PreDNAT ja untracked, vt jÀrgmisi jaotisi. Lisaks saab ApplyOnForward'i kasutada hosti liikluse jÀlgimiseks, kui kasutatakse virtuaalset ruuterit vÔi tarkvara NAT-i.

MĂ€rkusena, kui on vaja rakendada sama vĂ”rgupoliitikat nii hosti protsesside kui ka pod'ide jaoks, ei ole sul vaja kasutada ApplyOnForward valikut. Piisab, kui loo soovitud hosti lĂ”pp-punkti ja töökoha lĂ”pp-punkti (pod) jaoks label. Calico on piisavalt nutikas, et rakendada poliitikat pĂ”hjal labels'i, sĂ”ltumata lĂ”pp-punkti tĂŒĂŒbist (hostendpoint vĂ”i workload).

PreDNAT poliitika (4)

Kubernetesis vĂ”ivad teenuse ĂŒksuste pordid vĂ€ljast suunata, kasutades NodePort'i valikut vĂ”i, valikuliselt (kui kasutatakse Calicot), mÀÀrates neid Cluster IP-de vĂ”i External IP-de kaudu. Kube-proxy tasakaalustab teenusele suunatud sissetulevat liiklust, suunates selle vastavatesse pod'idesse, kasutades DNAT-i. Arvestades seda, kuidas rakendada poliitikaid NodePortide kaudu saabuvale liiklusele? Et need poliitikad kehtiksid enne, kui liiklus töödeldakse DNAT-i (mis on hosti ja pordi ning vastava teenuse vastavustĂ€his), pakub Calico globalNetworkPolicy jaoks parameetrit nimega „preDNAT: true”.

Kui pre-DNAT on lubatud, rakendatakse neid poliitikaid (4) diagrammil — PREROUTINGi mangle-ahelas — vahetult enne DNAT-i. Tavalist poliitikate jĂ€rjekorda (order) siin ei jĂ€rgita, kuna nende poliitikate rakendamine toimub liikluse töötlemise teel palju varem. Sellegipoolest jĂ€rgivad preDNAT poliitikad ĂŒksteise vahel rakendamise jĂ€rjekorda (order).

Pre-DNAT poliitika loomisel on tĂ€htis pöörata tĂ€helepanu sellele, millist liiklust soovite töödelda, ja lasta enamiku liiklusest tagasi lĂŒkata. Pre-DNAT poliitikas mĂ€rgitud liiklus, mis on ‘lubatud’, ei kontrollita enam hostendpoint poliitika jĂ€rgi, samas kui liiklus, mis ebaĂ”nnestub pre-DNAT poliitika lĂ€bimisel, jĂ€tkab teed ĂŒlejÀÀnud ahelate kaudu.
Calico on teinud nÔutuks applyOnForward valiku lubamise preDNATi kasutamisel, kuna sihtkoht on liikluse mÀÀratlemisel veel valimata. Liiklus vÔib suunata host-protsessi, vÔi see vÔib suunata podi vÔi teisele sÔlmele.

Untracked Policy (5)

VĂ”rgud ja rakendused vĂ”ivad kĂ€ituda vĂ€ga erinevalt. MĂ”nes ÀÀrmuslikus olukorras vĂ”ivad rakendused genereerida hulgaliselt lĂŒhikese kestusega ĂŒhendusi. See vĂ”ib pĂ”hjustada mĂ€lupuudust conntrackis (Linuxi vĂ”rgualuse peamine komponent). Traditsiooniliselt nĂ”uab selliste rakenduste kĂ€itamine Linuxis conntracki kĂ€sitsi seadistamist vĂ”i vĂ€ljalĂŒlitamist, vĂ”i iptablesi reeglite kirjutamist conntracki ĂŒmbersĂ”itmiseks. Untracked policy Calicos on lihtsam ja efektiivsem valik, kui soovite kĂ€sitleda ĂŒhendusi maksimaalselt kiiresti. NĂ€iteks kui kasutate massiivset memcache vĂ”i tĂ€iendava kaitsemeetmena DDOS.

Lugege seda blogipostitust (vĂ”i meie tĂ”lgete kohta) tĂ€iendavateks ĂŒksikasjadeks, sealhulgas jĂ”udlustestid untracked policy kasutamisel.

Kui mÀÀrate "doNotTrack: true" valiku Calico globalNetworkPolicy-s, muutub see **mitte jĂ€lgitavaks** poliitikaks ja rakendatakse Linuxi pakettide töötlemise torus vĂ€ga varakult. Kui vaadata ĂŒlaltoodud diagrammi, rakendatakse jĂ€lgimata poliitikaid PREROUTING ja OUTPUT ahelates raw tabelis enne, kui ĂŒhenduste jĂ€lgimine (conntrack) kĂ€ivitatakse. Kui pakett on jĂ€lgimata poliitika poolt lubatud, mĂ€rgistatakse see, et keelata selle paketi ĂŒhenduse jĂ€lgimine. See tĂ€hendab:

  • JĂ€lgimata poliitika rakendatakse iga paketi jaoks. Ühenduse (vĂ”i voolu) mĂ”istet ei ole. Ühenduste puudumine toob kaasa mitmeid olulisi tagajĂ€rgi:
  • Kui soovite lubada nii pĂ€ringutrafiku kui ka vastustranspordi, peate looma reegli nii sissetuleva kui ka vĂ€ljuva (kuna Calico kasutab tavaliselt conntracki, et mĂ€rkida vastutrĂ€fik lubatud).
  • JĂ€lgimata poliitika ei tööta Kubernetes töökoormuse (pod'ide) jaoks, kuna selles olukorras pole vĂ”imalik jĂ€lgida pod'ist vĂ€ljuvat ĂŒhendust.
  • NAT ei tööta Ă”igesti jĂ€lgimata pakettide puhul (kuna kernal salvestab NAT-i vastavuse conntrackis).
  • Kui untracked-poliitika kaudu kĂ€ib reegel "luba kĂ”ik", siis kĂ”ik paketid mĂ€rgitakse kui mittejĂ€lgitavad. See pole tavaliselt see, mida vajate, seega on oluline olla vĂ€ga valiv lubatud paketide osas untracked-poliitikate puhul (ja lasta suuremal osal liiklusest lĂ€bi minna tavapĂ€raste jĂ€lgitavate poliitikate).
  • Untracked-poliitikad kehtivad pakettide töötlemise toru alguses. See on vĂ€ga oluline mĂ”ista Calico poliitikate loomisel. Teil vĂ”ib olla pod'i poliitika, mille jĂ€rjekord on 1, ja untracked-poliitika, mille jĂ€rjekord on 1000. See ei oma tĂ€htsust. Untracked-poliitika rakendatakse enne pod'i poliitikat. Untracked-poliitikad jĂ€rgivad jĂ€rjekorda ainult omavahel.

Kuna policy doNotTrack eesmÀrk on sundida poliitika rakendamist Linuxi pakettide töötlemise toru varases etapis, teeb Calico doNotTrack kasutamisel applyOnForward valiku mÀÀramise kohustuslikuks. Vaadates paketitöötlemise diagrammi, mÀrkage, et untracked-poliitika (5) rakendatakse enne rajaotsuste tegemist. Liiklus vÔib suunata host-protsessile vÔi suunata pod'i vÔi teise sÔlme.

KokkuvÔte

Oleme uurinud erinevaid poliitikavĂ”imalusi (Host endpoint, ApplyOnForward, preDNAT ja Untracked) Calicos ja kuidas need pakettide töötlemise teekonnas rakenduvad. Nende toimimise mĂ”istmine aitab vĂ€lja töötada tĂ”husad ja turvalised poliitikad. Calico abil saate kasutada globaalset vĂ”rgupoliitikat, mis rakendub silti (node'ide ja pod'ide rĂŒhmale) ning rakendada poliitikaid erinevate parameetritega. See vĂ”imaldab turbe- ja vĂ”rguarhitektuuri spetsialistidel mugavalt kaitsta kohe kĂ”ike (endpoints tĂŒĂŒbid), kasutades ĂŒhtset poliitikakeelt Calico poliitikatega.

TĂ€nu: Soovisin tĂ€nada Sean Crumptoni ja Alex Pollitti nende ĂŒlevaate ja vÀÀrtusliku teabe eest.

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster