Megjelent egy minimalista Linux disztribúció, a Bottlerocket konténerek futtatásához. A legfontosabb vele kapcsolatban

Megjelent egy minimalista Linux disztribúció, a Bottlerocket konténerek futtatásához. A legfontosabb vele kapcsolatban

amazon bejelentett a végleges megjelenésről Palackzseb — speciális disztribúció a konténerek üzemeltetéséhez és hatékony kezeléséhez.

A Bottlerocket (egyébként a kis házi fekete por rakéták elnevezése) nem az első konténerekre szánt operációs rendszer, de valószínűleg az AWS szolgáltatásokkal való alapértelmezett integrációnak köszönhetően széles körben elterjed. Bár a rendszer az Amazon felhőjére koncentrál, a nyílt forráskóddal bárhol meg lehet építeni: lokálisan szerveren, Raspberry Pi-n, bármely konkurens felhőben, sőt konténer nélküli környezetben is.

Ez teljesen méltó helyettesítője a CoreOS disztribúciónak, amelyet a Red Hat elásott.

Valójában az Amazon Web Services részleg már rendelkezik Amazon Linuxszal, amely nemrég jelent meg a második verziójában: ez egy általános célú disztribúció, amely Docker konténerben vagy Linux KVM-mel, Microsoft Hyper-V-vel és VMware-rel futtatható. ESXi hipervizorok. Az AWS felhőn való futtatásra optimalizálták, de a Bottlerocket megjelenésével mindenkit arra ösztönöznek, hogy frissítsen egy új rendszerre, amely biztonságosabb, modernebb és kevesebb erőforrást használ.

Az AWS bejelentette a Bottlerocket 2020 márciusában. Azonnal elismerte, hogy nem ez az első „Linux konténerekhez”, a CoreOS-re, a Rancher OS-re és a Project Atomic-ra hivatkozva ihletforrásként. A fejlesztők azt írták, hogy az operációs rendszer "a leckéknek, amelyeket az Amazon méretű termelési szolgáltatásainak hosszú ideig történő futtatása során tanultunk meg, és az elmúlt hat év során szerzett tapasztalatainknak a konténerek futtatásával kapcsolatban".

Extrém minimalizmus

A Linuxtól megfosztanak mindent, ami a konténerek futtatásához nem szükséges. Ez a kialakítás a cég szerint csökkenti a támadási felületet.

Ez azt jelenti, hogy kevesebb csomag van telepítve az alaprendszerre, ami megkönnyíti az operációs rendszer karbantartását és frissítését, valamint csökkenti a függőségek miatti problémák valószínűségét, csökkentve az erőforrás-felhasználást. Alapvetően itt minden külön konténerekben működik, és az alaprendszer gyakorlatilag csupasz.

Az Amazon emellett eltávolított minden shellt és tolmácsot, így megszűnt annak a veszélye, hogy használatba kerüljenek, vagy hogy a felhasználók véletlenül megnöveljék a jogosultságokat. A minimalizmus és a biztonság kedvéért az alapkép nem tartalmaz parancshéjat, SSH-kiszolgálót vagy olyan értelmezett nyelveket, mint a Python. Az adminisztrátori eszközök egy külön szolgáltatástárolóba kerülnek, amely alapértelmezés szerint le van tiltva.

A rendszer kezelése kétféleképpen történik: API-n és hangszerelésen keresztül.

Az egyes szoftvereket frissítő csomagkezelő helyett a Bottlerocket letölt egy teljes fájlrendszer-képet, és újraindítja azt. Ha egy betöltés meghiúsul, automatikusan visszagörgeti, és a munkaterhelési hiba manuálisan (API-n keresztüli parancs) visszaállítást indíthat el.

Keretrendszer TUF (A frissítési keretrendszer) letölti a képalapú frissítéseket az alternatív vagy „leválasztott” partíciókra. Két lemezpartíció van lefoglalva a rendszer számára, amelyek közül az egyik tartalmazza az aktív rendszert, és a frissítés átmásolódik a másodikra. Ebben az esetben a gyökérpartíció csak olvasható módban van csatlakoztatva, és a partíció /etc csatolva a fájlrendszerrel a RAM-ban tmpfs és újraindítás után visszaállítja az eredeti állapotot. A konfigurációs fájlok közvetlen módosítása /etc nem támogatott: a beállítások mentéséhez használja az API-t, vagy helyezze át a funkciókat külön tárolókba.

Megjelent egy minimalista Linux disztribúció, a Bottlerocket konténerek futtatásához. A legfontosabb vele kapcsolatban
API frissítési séma

biztonság

A konténereket a Linux kernel szabványos mechanizmusai - cgroupok, névterek és seccomp - hozzák létre, és kényszerített hozzáférés-vezérlő rendszerként használják, azaz további elkülönítésre. SELinux "kényszerítő" módban.

Alapértelmezés szerint a házirendek engedélyezve vannak az erőforrások megosztására a tárolók és a kernel között. A bináris fájlokat zászlókkal védik, hogy megakadályozzák a felhasználók vagy programok végrehajtását. És ha valaki eljut a fájlrendszerhez, a Bottlerocket egy eszközt kínál az esetleges változtatások ellenőrzésére és nyomon követésére.

Az „ellenőrzött rendszerindítás” mód az eszközleképező-verity függvényen keresztül valósul meg (dm-verity), amely a rendszerindítás során ellenőrzi a gyökérpartíció integritását. Az AWS a dm-verity leírása szerint „a Linux kernel olyan funkciója, amely integritás-ellenőrzést biztosít, hogy megakadályozza a rosszindulatú programok operációs rendszeren való futását, például az alapvető rendszerszoftver felülírását”.

Szűrő is van a rendszerben eGMP (hosszabbított BPF, Alexey Starovoitov fejlesztette ki), amely lehetővé teszi a kernelmodulok biztonságosabb BPF programokkal való helyettesítését az alacsony szintű rendszerműveletek számára.

Végrehajtási modell
Felhasználó által meghatározott
Összeállítás
biztonság
Meghibásodás
Hozzáférés az erőforrásokhoz

Felhasználó
a feladat
igen
bármilyen
felhasználói jogok
a végrehajtás megszakítása
rendszerhívás, hiba

A mag
a feladat
nincs
statikus
nincs
kernel pánik
прямой

BPF
esemény
igen
JIT, CO-RE
ellenőrzés, JIT
hiba üzenet
korlátozott segítők

Miben különbözik a BPF a normál felhasználói vagy kernel szintű kódtól forrás

Az AWS szerint a Bottlerocket "olyan működési modellt alkalmaz, amely tovább fokozza a biztonságot azáltal, hogy megakadályozza az adminisztrátori jogosultságokkal rendelkező éles szerverekhez való kapcsolódást", és "alkalmas olyan nagy elosztott rendszerekhez, ahol az egyes gazdagépek feletti ellenőrzés korlátozott".

A rendszergazdák számára egy rendszergazdai tároló áll rendelkezésre. Az AWS azonban nem gondolja, hogy egy adminisztrátornak gyakran a Bottlerocketen belül kell dolgoznia: "A különálló Bottlerocket-példányba való bejelentkezés ritka műveletekre szolgál: speciális hibakeresés és hibaelhárítás." ír fejlesztők.

Rozsdanyelv

A kernel tetején lévő operációs rendszer műszerezése többnyire Rust nyelven íródott. Ez a nyelv természeténél fogva csökkenti a nem biztonságos memóriaelérés valószínűségétÉs kiküszöböli a versenyfeltételeket a szálak között.

A zászlókat alapértelmezés szerint alkalmazza az építés során --enable-default-pie и --enable-default-ssp a futtatható fájlok címterének véletlenszerűvé tételéhez (pozíciófüggetlen végrehajtható fájl, PIE) és verem túlcsordulás elleni védelem.

A C/C++ csomagokhoz további jelzők is tartoznak -Wall, -Werror=format-security, -Wp,-D_FORTIFY_SOURCE=2, -Wp,-D_GLIBCXX_ASSERTIONS и -fstack-clash-protection.

A Rust és a C/C++ mellett néhány csomag Go nyelven íródott.

Integráció az AWS szolgáltatásokkal

A különbség a hasonló konténer operációs rendszerekhez képest az, hogy az Amazon úgy optimalizálta a Bottlerocket, hogy AWS-en futjon, és integrálódjon más AWS-szolgáltatásokkal.

A legnépszerűbb konténer-hangszerelő a Kubernetes, ezért az AWS bevezette az integrációt saját Enterprise Kubernetes szolgáltatásával (EKS). A hangszerelési eszközök külön vezérlőtartályban érkeznek palackrakéta-vezérlő-konténer, amely alapértelmezés szerint engedélyezve van, és az API-n és az AWS SSM-ügynökön keresztül kezelhető.

Érdekes lesz látni, hogy a Bottlerocket elindul-e, tekintettel néhány hasonló kezdeményezés kudarcára a múltban. Például kiderült, hogy a Vmware PhotonOS-je nem igényelt, és a RedHat megvásárolta a CoreOS-t és lezárta a projektet, aki a szakma úttörőjének számított.

A Bottlerocket AWS szolgáltatásokba való integrálása a maga módján egyedülállóvá teszi ezt a rendszert. Talán ez a fő oka annak, hogy egyes felhasználók előnyben részesítik a Bottlerocketet más disztribúciókkal szemben, mint például a CoreOS vagy az Alpine. A rendszert eredetileg úgy tervezték, hogy EKS-sel és ECS-sel működjön, de ismételjük, hogy ez nem szükséges. Először is, Bottlerocket képes összeszerelni egyedül és használja például hosztolt megoldásként. Másodszor, az EKS és ECS felhasználók továbbra is választhatják az operációs rendszert.

A Bottlerocket forráskódja az Apache 2.0 licenc alatt jelenik meg a GitHubon. A fejlesztők már megtették válaszolni a hibajelentésekre és a funkciókra vonatkozó kérésekre.

A Reklám Jogairól

VDSina ajánlatok VDS napi fizetéssel. Bármilyen operációs rendszer telepíthető, beleértve a saját képfájlját is. Minden szerver egy 500 megabites internetes csatornához csatlakozik, és ingyenesen védett a DDoS támadásokkal szemben!

Megjelent egy minimalista Linux disztribúció, a Bottlerocket konténerek futtatásához. A legfontosabb vele kapcsolatban

Forrás: will.com

Hozzászólás