Ang usa ka minimalistic nga Linux distribution Bottlerocket gipagawas aron magpadagan sa mga sudlanan. Ang labing importante bahin kaniya

Ang usa ka minimalistic nga Linux distribution Bottlerocket gipagawas aron magpadagan sa mga sudlanan. Ang labing importante bahin kaniya

Kompanya sa Amazon gipahibalo mahitungod sa katapusan nga pagpagawas bottlerocket - usa ka espesyal nga pag-apod-apod alang sa pagpadagan sa mga sudlanan ug epektibo nga pagdumala niini.

Ang Bottlerocket (sa paagi, ang ngalan nga gihatag sa gagmay nga mga homemade black powder rocket) dili ang una nga OS alang sa mga sudlanan, apan lagmit nga kini mahimong kaylap salamat sa default nga panagsama sa mga serbisyo sa AWS. Bisan tuod ang sistema naka-focus sa Amazon cloud, ang open source code nagtugot niini nga matukod bisan asa: lokal sa server, sa Raspberry Pi, sa bisan unsang kakompetensya nga panganod, ug bisan sa walay container nga palibot.

Kini usa ka hingpit nga takus nga kapuli sa pag-apod-apod sa CoreOS nga gilubong sa Red Hat.

Sa tinuud, ang Amazon Web Services division aduna nay Amazon Linux, nga bag-o lang migawas sa ikaduha nga bersyon niini: kini usa ka kinatibuk-ang katuyoan nga pag-apod-apod nga mahimong ipadagan sa usa ka sudlanan sa Docker o sa Linux KVM, Microsoft Hyper-V, ug VMware. ESXi hypervisors. Gi-optimize kini nga modagan sa AWS cloud, apan sa pagpagawas sa Bottlerocket, ang tanan giawhag sa pag-upgrade sa usa ka bag-ong sistema nga mas luwas, moderno, ug naggamit og mas gamay nga mga kapanguhaan.

Gipahibalo sa AWS ang Bottlerocket niadtong Marso 2020. Giangkon dayon niya nga dili kini ang una nga "Linux para sa mga sulud," nga gikutlo ang CoreOS, Rancher OS ug Project Atomic isip mga gigikanan sa inspirasyon. Gisulat sa mga developer nga ang operating system mao ang "resulta sa mga leksyon nga among nakat-unan gikan sa pagpadagan sa mga serbisyo sa produksiyon sa sukod sa Amazon sa dugay nga panahon, ug ang kasinatian nga among nakuha sa miaging unom ka tuig kung giunsa ang pagpadagan sa mga sudlanan."

Grabe nga minimalism

Gikuha sa Linux ang tanan nga dili kinahanglan aron makadagan ang mga sudlanan. Kini nga disenyo, sumala sa kompanya, nagpamenos sa nawong sa pag-atake.

Nagpasabot kini nga mas diyutay nga mga pakete ang na-install sa base system, nga nagpasayon ​​sa pagpadayon ug pag-update sa OS, ug gipamenos usab ang posibilidad sa mga problema tungod sa mga dependency, nga nagpamenos sa paggamit sa kapanguhaan. Sa panguna, ang tanan dinhi nagtrabaho sa sulod sa lainlaing mga sudlanan, ug ang nagpahiping sistema halos wala’y sulod.

Gitangtang usab sa Amazon ang tanan nga mga kabhang ug mga tighubad, nga giwagtang ang peligro nga magamit kini o ang mga tiggamit nga aksidente nga nagpadako sa mga pribilehiyo. Alang sa minimalism ug seguridad, ang base nga imahe wala maglakip sa usa ka command shell, usa ka SSH server, o gihubad nga mga pinulongan sama sa Python. Ang mga himan sa tigdumala gibutang sa usa ka separado nga sudlanan sa serbisyo, nga gibabagan pinaagi sa default.

Ang sistema gidumala sa duha ka paagi: pinaagi sa API ug orkestra.

Imbis usa ka manager sa package nga nag-update sa mga indibidwal nga piraso sa software, ang Bottlerocket nag-download sa usa ka kompleto nga imahe sa filesystem ug nag-reboot niini. Kung ang usa ka load mapakyas, kini awtomatik nga ibalik, ug ang usa ka workload failure mahimong mag-trigger sa rollback nga mano-mano (command pinaagi sa API).

Framework TUF (Ang Balangkas sa Pag-update) nag-download sa mga update nga gibase sa imahe sa mga alternate o "unmounted" nga mga partisyon. Duha ka mga partisyon sa disk ang gigahin alang sa sistema, ang usa niini naglangkob sa aktibo nga sistema, ug ang pag-update gikopya sa ikaduha. Sa kini nga kaso, ang root partition gi-mount sa read-only mode, ug ang partition /etc gitaod sa file system sa RAM tmpfs ug ibalik ang orihinal nga kahimtang pagkahuman sa pagsugod pag-usab. Direkta nga pagbag-o sa mga file sa pag-configure sa /etc dili suportado: aron matipigan ang mga setting kinahanglan nimo nga gamiton ang API o ibalhin ang gamit ngadto sa lain nga mga sudlanan.

Ang usa ka minimalistic nga Linux distribution Bottlerocket gipagawas aron magpadagan sa mga sudlanan. Ang labing importante bahin kaniya
Skema sa pag-update sa API

Kasegurohan

Ang mga sudlanan gihimo pinaagi sa standard nga mga mekanismo sa Linux kernel - cgroups, namespaces ug seccomp, ug gigamit isip usa ka pinugos nga access control system, nga mao, alang sa dugang nga pag-inusara. SELinux sa "pagpatuman" mode.

Sa kasagaran, ang mga polisiya gipalihok sa pagpaambit sa mga kahinguhaan tali sa mga sudlanan ug sa kernel. Ang mga binary gipanalipdan sa mga bandila aron mapugngan ang mga tiggamit o mga programa sa pagpatuman niini. Ug kung ang usa makaadto sa file system, ang Bottlerocket nagtanyag usa ka himan aron masusi ug masubay ang bisan unsang mga pagbag-o nga nahimo.

Ang "verified boot" mode gipatuman pinaagi sa device-mapper-verity function (dm-kamatuoran), nga nagsusi sa integridad sa root partition atol sa boot. Gihubit sa AWS ang dm-verity isip "usa ka bahin sa Linux kernel nga naghatag mga pagsusi sa integridad aron mapugngan ang malware nga modagan sa OS, sama sa pag-overwrit sa core system software."

Adunay usab usa ka filter sa sistema Ang eBPF (gipadako nga BPF, gimugna ni Alexey Starovoitov), nga nagtugot sa kernel modules nga mapulihan sa mas luwas nga BPF nga mga programa alang sa ubos nga lebel nga operasyon sa sistema.

Modelo sa pagpatuman
Gihubit sa tiggamit
Panagsama
Kasegurohan
Mode sa kapakyasan
Pag-access sa mga kapanguhaan

Gumagamit
ang buluhaton
oo
bisan unsa
katungod sa tiggamit
paghunong sa pagpatay
tawag sa sistema, sayup

Core
ang buluhaton
dili
static
dili
kernel kalisang
tul-id

Ang BPF
hitabo
oo
JIT, CO-RE
pamatuod, JIT
mensahe sa sayop
limitado nga mga katabang

Giunsa ang pagkalahi sa BPF gikan sa regular nga user o kernel level code tinubdan

Ang AWS nag-ingon nga ang Bottlerocket "naggamit sa usa ka operating model nga dugang nga nagpalambo sa seguridad pinaagi sa pagpugong sa mga koneksyon sa mga server sa produksiyon nga adunay mga pribilehiyo sa administratibo" ug "angay alang sa dagkong gipang-apod-apod nga mga sistema diin ang kontrol sa matag indibidwal nga host limitado."

Ang usa ka tigdumala nga sudlanan gihatag alang sa mga tigdumala sa sistema. Apan ang AWS wala maghunahuna nga ang usa ka admin kanunay kinahanglan nga magtrabaho sa sulod sa Bottlerocket: "Ang aksyon sa pag-log in sa usa ka bulag nga pananglitan sa Bottlerocket gituyo alang sa dili kanunay nga mga operasyon: advanced debugging ug pag-troubleshoot," isulat mga developers.

Rust nga pinulongan

Ang OS instrumentation sa ibabaw sa kernel kasagaran gisulat sa Rust. Kini nga pinulongan kay sa kinaiya niini makapamenos sa kalagmitan sa dili luwas nga pag-access sa memoryaUg nagwagtang sa mga kondisyon sa lumba tali sa mga hilo.

Ang mga bandera gigamit nga default kung nagtukod --enable-default-pie ΠΈ --enable-default-ssp aron mahimo ang randomization sa address space sa executable files (posisyon-independente executable, PIE) ug stack overflow protection.

Alang sa mga pakete sa C/C++, gilakip ang dugang nga mga bandila -Wall, -Werror=format-security, -Wp,-D_FORTIFY_SOURCE=2, -Wp,-D_GLIBCXX_ASSERTIONS ΠΈ -fstack-clash-protection.

Gawas sa Rust ug C/C++, pipila ka mga pakete ang gisulat sa Go.

Paghiusa sa mga serbisyo sa AWS

Ang kalainan gikan sa susama nga mga operating system sa sudlanan mao nga ang Amazon nag-optimize sa Bottlerocket nga modagan sa AWS ug mahiusa sa ubang mga serbisyo sa AWS.

Ang labing inila nga container orchestrator mao ang Kubernetes, mao nga ang AWS nagpaila sa integrasyon sa kaugalingon nga Enterprise Kubernetes Service (EKS). Ang mga galamiton sa orkestrasyon moabut sa usa ka bulag nga sudlanan nga kontrol bottlerocket-control-container, nga gipagana pinaagi sa default ug gidumala pinaagi sa API ug AWS SSM Agent.

Makapaikag nga tan-awon kung ang Bottlerocket molupad, tungod sa kapakyasan sa pipila nga parehas nga mga inisyatibo sa nangagi. Pananglitan, ang PhotonOS gikan sa Vmware nahimo nga wala maangkon, ug gipalit sa RedHat ang CoreOS ug gisira ang proyekto, nga giisip nga usa ka payunir sa kanataran.

Ang paghiusa sa Bottlerocket sa mga serbisyo sa AWS naghimo niining sistema nga talagsaon sa kaugalingon nga paagi. Kini tingali ang panguna nga hinungdan ngano nga ang pipila nga mga tiggamit mahimong mas gusto ang Bottlerocket kaysa sa ubang mga distro sama sa CoreOS o Alpine. Ang sistema sa sinugdan gidisenyo aron magtrabaho kauban ang EKS ug ECS, apan gisubli namon nga dili kini kinahanglan. Una, mahimo ang Bottlerocket pagtigom sa imong kaugalingon ug gamita kini, pananglitan, isip usa ka gi-host nga solusyon. Ikaduha, ang mga tiggamit sa EKS ug ECS ​​adunay katakus sa pagpili sa ilang OS.

Ang Bottlerocket source code gipatik sa GitHub ubos sa Apache 2.0 nga lisensya. Ang mga developers na pagtubag sa mga taho sa bug ug mga hangyo sa feature.

Diha sa Mga Katungod sa Pagdukiduki

VDSina nagtanyag VDS nga adunay adlaw-adlaw nga bayad. Posible nga i-install ang bisan unsang operating system, lakip ang gikan sa imong kaugalingon nga imahe. Ang matag server konektado sa usa ka channel sa Internet nga 500 Megabits ug giprotektahan gikan sa mga pag-atake sa DDoS nga libre!

Ang usa ka minimalistic nga Linux distribution Bottlerocket gipagawas aron magpadagan sa mga sudlanan. Ang labing importante bahin kaniya

Source: www.habr.com

Idugang sa usa ka comment