Seva moja ya maabara, majukumu matatu ya uaminifu, kikoa kimoja cha hitilafu
Kiingilio cha VPN, huduma za kibinafsi na kazi za CI zinahitaji ruhusa tofauti hata kwenye seva moja. Gawanya majukumu, tenga mitandao na uhifadhi urejeshaji kupitia konsoli.
Kila kitu hufanya kazi hadi kiongozi wa ujenzi anahitaji soketi ile ile ya mwenyeji ambayo mgeni wa VPN hutumia, na hapo hakuna anayeweza kueleza kwa nini kazi inaweza kusoma funguo za lango. Kila kitu kiliwekwa kwenye mashine moja kwa sababu kilitoshea, na kila mgeni alipewa ufikiaji mpana kwa sababu hiyo ilikuwa njia ya haraka zaidi ya kuifanya ifanye kazi. Matokeo ni mwenyeji ambaye mpaka wake wa uaminifu ni kebo ya umeme. Kugawanya majukumu kunahitaji kazi ndogo kuliko inavyosikika, na huanza kwa kuyapa majina.
Majukumu matatu ambayo sasa yanashiriki kila kitu
Kiingilio cha VPN, kundi la huduma za kibinafsi na kiongozi wa ujenzi wanataka vitu tofauti. Wa kwanza unahitaji lango la umma na mtandao mwembamba upande wa kibinafsi. Wa pili unahitaji hifadhi ya kudumu na siri za programu. Wa tatu hutekeleza msimbo ambao mtu mwingine aliandika.
Kuwapa wote watatu ufikiaji sawa ndiko kunakofanya dalili kuwa yenye mkanganyiko, kwa sababu hapo yeyote wao anaweza kuathiri wengine. Kazi ya ujenzi inayoweza kufikia soketi ya hypervisor ni kazi inayoweza kusimamisha VPN. Mgeni wa huduma aliye na njia ya kufikia mtandao wa usimamizi anaweza kubadilisha usanidi wa swichi. Tatizo ni ruhusa, na orodha ya michakato ni mahali tu inapoonekana. Kutaja majukumu kwanza kunapa kila ruhusa mahali pa kuishi.
Mchoro hapa chini ni mahali pa kuanzia kwa mgawanyiko huo, si ahadi ya upatikanaji wa juu. Ichukulie kama dhana ya kuthibitisha, si kama muundo uliokamilika.
Gawanya majukumu matatu, si michakato mitatu
Wageni watatu kwenye mwenyeji mmoja wanatoa seti tatu za ruhusa na nafasi tatu za mtandao. Hawatoi vikoa vitatu vya hitilafu, na muundo unapaswa kusema hivyo kwa sauti.
Kutenganisha kunasaidia tu ikiwa kukiuka kwa mgeni mmoja hakuwapi wengine ufikiaji kiotomatiki, na hilo ni mpangilio wa hypervisor, si mkataba wa majina. Kuita VM lango hakuzuii mgeni mwingine kufikia mwenyeji. Soma usanidi wa swichi pepe badala ya jina la mwenyeji, kisha thibitisha kwamba kila mgeni yuko mahali unapodhani.
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
Andika topolojia kisha ithibitishe kwa zana zinazoimiliki. Mgeni anayeonekana kwenye daraja lisilofaa ni ugunduzi, si maelezo. Rekebisha mtandao kabla ya kubadilisha usanidi wowote wa huduma.
Acha mgeni wa VPN afungue milango anayomiliki tu
Tangaza lango la handaki kwenye kipanga njia na hakuna kingine. Lango za usimamizi wa wageni ni za njia ya usimamizi, si za mtandao, na kiolesura cha hypervisor yenyewe ni cha hapo pia.
Mtandao upande wa kibinafsi unapaswa kufikia huduma ambazo watumiaji wa mbali wanahitaji na kuishia hapo. Uthibitishaji wa programu unabaki umewashwa, kwa sababu handaki ni usafirishaji si kuingia. Weka jedwali la njia la mgeni wa VPN dogo vya kutosha kulieleza kwa sentensi moja. Ikiwa huwezi kulieleza kwa urahisi hivyo, mpaka tayari umefifia.
virsh net-list --all
virsh net-dumpxml lab-private
sudo nft list ruleset | grep -n -E '51820|10.60'
Kitu chochote kinachosikiliza kwenye mwenyeji na hakihitajiki kwa usimamizi hakipaswi kusikiliza kabisa. Hii inajumuisha API ya hypervisor, ambayo ni rahisi kuiacha wazi kwenye kiolesura cha umma.
Kazi za ujenzi zinahitaji aina nyingine ya mpaka
Kazi ya CI huendesha amri zinazodhibitiwa na hazina, kwa hivyo uaminifu wake unategemea nani anaweza kusukuma msimbo. Kitekelezaji cha shell huendesha amri hizo kama mtumiaji wa kiongozi kwenye mwenyeji, na huo ni mpaka mpana zaidi unaopatikana.
Vitekelezaji vya kontena ni vyembamba, na kontena lenye upendeleo si moja ya vyembamba. Weka kiongozi kwenye mgeni wake mwenyewe na wigo wake wa mtandao, na mpe tu ufikiaji wa vizalia na usambazaji unaohitajika na kazi. Wafanyakazi wa matumizi ya mara moja hupunguza hali iliyohifadhiwa; hawapunguzi ufikikaji au kufichuliwa kwa siri. Zote mbili bado zinahitaji mipaka iliyo wazi.
Mgeni wa huduma anamiliki data, kwa hivyo mpango wake wa nakala rudufu ndio lazima ufanye kazi. Weka hazina, upakiaji na hifadhidata katika ratiba moja. Jaribu urejeshaji badala ya kusoma hali ya kazi.
Panga kwa ajili ya hitilafu ambayo wote watatu wanashiriki
Mwenyeji mmoja ni kikoa kimoja cha hitilafu. Kuwasha upya huondoa handaki na kila huduma ya kibinafsi kwa wakati mmoja, na hapo ndipo njia ya kuingia inapokuwa muhimu zaidi.
Hifadhi ufikiaji wa konsoli ambao hautegemei mgeni wa VPN, iwe ni konsoli halisi, kiolesura cha usimamizi nje ya bendi au konsoli ya mtoa huduma. Picha iliyohifadhiwa kwenye diski hiyo hiyo si nakala huru, na wala si nakala rudufu inayoendeshwa ndani ya mgeni inayolinda. Kisha jaribu kuanza baridi kama mfuatano, si kama orodha hakiki: mwenyeji, mitandao pepe, njia ya handaki na programu moja iliyotajwa chini ya akaunti ya kawaida.
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'
Mfuatano wa kuanza michakato hauthibitishi chochote kuhusu njia na DNS, kwa hivyo jaribu njia badala ya hali za vitengo. Njia ndiyo ambayo mtumiaji wa mbali anaihitaji kwa kweli.