Server wieħed tal-laboratorju, tliet rwoli ta' fiduċja, dominju wieħed ta' falliment
Dħul VPN, servizzi privati u xogħlijiet CI jeħtieġu privileġġi separati anki fuq server wieħed. Aqsam ir-rwoli, iżola n-netwerks, żomm l-irkupru mill-console.
Kollox jaħdem sakemm ir-runner tal-bini jeħtieġ l-istess socket tal-host li juża l-mistieden VPN, u mbagħad ħadd ma jista' jispjega għaliex xogħol jista' jaqra ċ-ċwievet tal-gateway. Kollox ġie installat fuq magna waħda għax daħal, u kull mistieden ingħata aċċess wiesa' għax dik kienet l-iktar triq mgħaġġla biex jaħdem. Ir-riżultat huwa host li l-fruntiera tal-fiduċja tiegħu hija l-kejbil tal-enerġija. Is-separazzjoni tar-rwoli teħtieġ inqas xogħol milli jidher, u tibda billi tagħtihom isem.
Tliet rwoli li bħalissa jaqsmu kollox
Dħul VPN, sett ta' servizzi privati u runner tal-bini jridu affarijiet differenti. L-ewwel jeħtieġ port pubbliku u netwerk dejjaq fuq in-naħa privata. It-tieni jeħtieġ ħażna persistenti u sigrieti tal-applikazzjoni. It-tielet iħaddem kodiċi li kiteb xi ħadd ieħor.
Huwa propju li tagħti l-istess aċċess lit-tlieta li jagħmel is-sintomu konfuż, għax imbagħad kull wieħed minnhom jista' jaffettwa lill-oħrajn. Xogħol tal-bini li jasal għas-socket tal-hypervisor huwa xogħol li jista' jwaqqaf il-VPN. Mistieden tas-servizzi b'rotta għan-netwerk tal-ġestjoni jista' jbiddel il-konfigurazzjoni tal-iswiċċ. Il-privileġġi huma l-problema, u l-lista tal-proċessi hija biss il-post fejn tidher. L-għoti ta' isem lir-rwoli l-ewwel jagħti lil kull privileġġ post fejn jgħix.
L-abbozz hawn taħt huwa punt tat-tluq għal dik is-separazzjoni, mhux wegħda ta' disponibbiltà għolja. Ittrattah bħala ipoteżi li trid tiġi vverifikata, mhux bħala disinn lest.
Aqsam tliet rwoli, mhux tliet proċessi
Tliet mistednin fuq host wieħed jagħtu tliet settijiet ta' privileġġi u tliet pożizzjonijiet tan-netwerk. Ma jagħtux tliet dominji ta' falliment, u d-disinn għandu jgħid dan b'leħen għoli.
Is-separazzjoni tgħin biss jekk kompromess f'mistieden wieħed ma jagħtix privileġġi lill-oħrajn awtomatikament, u dan huwa setting tal-hypervisor, mhux konvenzjoni tal-ismijiet. Li ssejjaħ VM gateway ma jwaqqafx mistieden ieħor milli jasal għall-host. Aqra l-konfigurazzjoni tal-iswiċċ virtwali minflok l-isem tal-host, imbagħad ikkonferma li kull mistieden qiegħed fejn taħseb int.
host
├─ vpn-gw 10.60.10.2/24 public 51820/udp only
├─ services 10.60.0.10/24 no route to the management network
└─ ci-runner 10.60.20.2/24 outbound only, no host socket
Ikteb it-topoloġija u mbagħad ivverifikaha bl-għodda li tippossjediha. Mistieden li jidher fuq il-pont żbaljat huwa sejba, mhux dettall. Ikkoreġi n-netwerk qabel ma tbiddel xi konfigurazzjoni tas-servizz.
Ħalli l-mistieden VPN jiftaħ biss il-bibien li jippossjedi
Ippubblika l-port tat-tunnel fuq ir-router u xejn aktar. Il-portijiet tal-amministrazzjoni tal-mistednin jappartjenu għal mogħdija tal-ġestjoni, mhux għall-internet, u l-interface tal-hypervisor innifsu wkoll tappartjeni hemmhekk.
In-netwerk fuq in-naħa privata għandu jasal għas-servizzi li l-utenti remoti jeħtieġu u jieqaf hemm. L-awtentikazzjoni tal-applikazzjoni tibqa' mixgħula, għax tunnel huwa trasport u mhux login. Żomm it-tabella tal-routing tal-mistieden VPN żgħira biżżejjed biex tiddeskriviha f'sentenza waħda. Jekk ma tistax tiddeskriviha daqshekk sempliċi, il-fruntiera diġà ntabgħet.
virsh net-list --all
virsh net-dumpxml lab-private
sudo nft list ruleset | grep -n -E '51820|10.60'
Kull ħaġa li tisma' fuq il-host u mhix meħtieġa għall-ġestjoni m'għandhiex tisma' xejn. Dan jinkludi l-API tal-hypervisor, li huwa faċli li titħalla esposta fuq interface pubblika.
Ix-xogħlijiet tal-bini jeħtieġu tip differenti ta' fruntiera
Xogħol CI iħaddem kmandi kkontrollati mir-repożitorju, allura l-fiduċja tiegħu tiddependi min min jista' jimbotta kodiċi. Eżekutur tal-qoxra jħaddem dawk il-kmandi bħala l-utent tar-runner fuq il-host, u dik hija l-iktar fruntiera wiesgħa disponibbli.
L-eżekuturi tal-kontenituri huma eqreb, u kontenitur privileġġjat mhuwiex minn dawk dejqa. Żomm ir-runner fil-mistieden tiegħu stess bl-ambitu tan-netwerk tiegħu stess, u agħtih biss l-aċċess għall-artefatti u d-deployment li jeħtieġu x-xogħlijiet. Ħaddiema li jintremew inaqqsu l-istat miżmum; ma jnaqqsux l-aċċessibbiltà jew l-espożizzjoni tas-sigrieti. It-tnejn għadhom jeħtieġu limiti espliċiti.
Il-mistieden tas-servizzi jippossjedi d-dejta, allura l-pjan tiegħu ta' backup huwa dak li għandu jaħdem. Żomm ir-repożitorji, it-tlugħ u d-database fl-istess skeda. Ittestja restawr minflok ma taqra l-istat tax-xogħol.
Ippjana għall-falliment li jaqsmu t-tlieta
Host wieħed huwa dominju wieħed ta' falliment. Reboot ineħħi t-tunnel u kull servizz privat fl-istess mument, u propju dak il-ħin triq 'il ġewwa timporta l-iktar.
Żomm aċċess għall-console li ma jiddependix mill-mistieden VPN, kemm jekk hija console fiżika, interface tal-ġestjoni barra l-medda jew console tal-fornitur. Snapshot maħżun fuq l-istess diska mhuwiex kopja indipendenti, u lanqas backup li jgħaddi ġewwa l-mistieden li jipproteġi. Imbagħad ittestja bidu kiesaħ bħala sekwenza mhux bħala lista: host, netwerks virtwali, mogħdija tat-tunnel u applikazzjoni waħda msemmija taħt kont ordinarju.
virsh list --all
systemctl is-active libvirtd
curl -sS -m 5 -o /dev/null -w '%{http_code}\n' https://10.60.0.10/
ss -ltnp | grep -E ':51820|:443'
L-ordni tal-bidu tal-proċessi ma tipprova xejn dwar rotot u DNS, allura ittestja l-mogħdija mhux l-istati tal-unitajiet. Il-mogħdija hija dak li utent remot verament jeħtieġ.