Баары куруу аткаруучусу VPN коногу колдонгон ошол эле хост сокетин талап кылганга чейин иштейт, анан эмне үчүн иш шлюздун ачкычтарын окуй аларын эч ким түшүндүрө албайт. Баары бир машинага орнотулду, анткени батты, жана ар бир конокко кенен жетүү берилди, анткени аны иштетүүнүн эң тез жолу ошол эле. Натыйжа — ишеним чеги электр кабели болгон хост. Ролдорду бөлүү угулганынан аз жумуш, жана ал аларга ат коюудан башталат.

Азыр баарын бөлүшкөн үч роль

VPN кирүү, жеке кызматтардын жыйындысы жана куруу аткаруучусу ар башка нерселерди каалашат. Биринчисине ачык порт жана жеке тарапта тар тармак керек. Экинчисине туруктуу сактоо жана колдонмо сырлары керек. Үчүнчүсү башка бирөө жазган кодду аткарат.

Үчөөнө тең бирдей жетүү берүү симптомду татаалдаштырат, анткени андан кийин алардын каалайыны калгандарына таасир эте алат. Гипервизор сокетине жеткен куруу иши VPNды токтото алган иш. Башкаруу тармагына маршруту бар кызмат коногу коммутатордун конфигурациясын өзгөртө алат. Укуктар — маселе, ал эми процесс тизмеси анын көрүнгөн жери гана. Ролдорду алдын ала атоо ар бир укукка жашоочу орун берет.

Төмөнкү эскиз ошол бөлүүнүн баштапкы чекити, жогорку жеткиликтүүлүктүн убадасы эмес. Аны текшерилүүчү божомол катары кабыл алыңыз, даяр долбоор катары эмес.

Үч процессти эмес, үч ролду бөлүңүз

Бир хосттогу үч конок үч укук жыйындысын жана үч тармактык абалды берет. Алар үч бузулуу доменин бербейт, жана долбоор муну катуу айтышы керек.

Бөлүү бир коноктогу бузулуу калгандарына укукту автоматтык түрдө бербегенде гана жардам берет, ал эми бул гипервизордун жөндөөсү, ат коюу салты эмес. VMди шлюз деп атоо башка коноктун хостко жетишине тоскоол болбойт. Хосттун атынын ордуна виртуалдык коммутатордун конфигурациясын окуңуз, анан ар бир конок сиз ойлогон жерде отурганын ырастаңыз.

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

Топологияны жазып алыңыз, анан аны ээлеген куралдар менен текшериңиз. Туура эмес көпүрөдө пайда болгон конок — бул деталь эмес, табылга. Кайсыл кызмат конфигурациясын өзгөртүүдөн мурун тармакты оңдоңуз.

VPN коногуна өзүнүн эшиктерин гана ачууга уруксат бериңиз

Туннелдин портун маршрутизатордо жарыялаңыз, башка эч нерсе жок. Конокторду башкаруу порттору башкаруу жолуна таандык, интернетке эмес, жана гипервизордун өз интерфейси да ошол жакка таандык.

Жеке тараптагы тармак алыскы колдонуучуларга керек кызматтарга жетиши керек жана ошол жерде токтошу керек. Колдонмо аутентификациясы күйүк бойдон калат, анткени туннель — транспорт, кирүү эмес. VPN коногунун маршруттоо таблицасын бир сүйлөм менен сүрөттөөгө боло тургандай кичине кармаңыз. Эгер аны ушунчалык жөнөкөй сүрөттөй албасаңыз, чек буга чейин бүдөмүк болгон.

virsh net-list --all
virsh net-dumpxml lab-private
sudo nft list ruleset | grep -n -E '51820|10.60'

Хостто угуп турган жана башкарууга керек эмес нерсенин баары такыр угууга тийиш эмес. Буга гипервизордун APIси кирет, аны ачык интерфейсте ачык калтыруу оңой.

Куруу иштерине башка типтеги чек керек

CI иши репозиторий башкарган буйруктарды аткарат, ошондуктан анын ишеними кодду ким жибере аларына көз каранды. Shell аткаруучусу бул буйруктарды хостто аткаруучунун колдонуучусу катары аткарат, жана бул жеткиликтүү эң кең чек.

Контейнер аткаруучулары тарыраак, ал эми артыкчылыктуу контейнер тарлардын катарында эмес. Аткаруучуну өзүнүн тармактык аумагы бар өз коногунда кармаңыз жана ага иштерге керек артефакт жана жайгаштыруу жетүүсүн гана бериңиз. Бир жолу колдонулуучу жумушчулар сакталган абалды азайтат; алар жеткиликтүүлүктү же сырлардын ачылышын азайтпайт. Экөөнө тең дагы так чектөөлөр керек.

Кызматтар коногу маалыматтарга ээ, ошондуктан анын камдык планы иштеши керек план. Репозиторийлерди, жүктөөлөрдү жана маалымат базасын бир графикте кармаңыз. Иштин абалын окуунун ордуна калыбына келтирүүнү текшериңиз.

Үчөө бөлүшкөн бузулууга план түзүңүз

Бир хост — бир бузулуу домени. Кайра жүктөө туннелди жана ар бир жеке кызматты бир эле учурда жок кылат, жана дал ошол учурда ичке кирүү жолу эң маанилүү болот.

VPN коногуна көз каранды эмес консол жетүүсүн сактаңыз, ал физикалык консол, тилкеден тышкаркы башкаруу интерфейси же провайдердин консолу болсун. Ошол эле дискте сакталган сүрөт көз карандысыз көчүрмө эмес, жана өзү коргогон коноктун ичинде иштеген камдык көчүрмө да эмес. Анан муздак баштоону текшерүү тизмеси катары эмес, ырааттуулук катары текшериңиз: хост, виртуалдык тармактар, туннелдин жолу жана жөнөкөй эсептеги бир аталган колдонмо.

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'

Процесстердин башталуу тартиби маршруттар жана DNS жөнүндө эч нерсени далилдебейт, ошондуктан бирдиктердин абалын эмес, жолду текшериңиз. Жол — алыскы колдонуучуга чындап керек болгон нерсе.

Тектеш макалалар