๊ฒฉ๋ฆฌ๋œ ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜ ๋ฐฐํฌํŒ์ธ Bottlerocket 1.3 ์ถœ์‹œ

ํ•ด๋‹น ํ˜ธ๊ฐ€ ๋ฐœํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค. LinuxAmazon๊ณผ ํ˜‘๋ ฅํ•˜์—ฌ ๊ฐœ๋ฐœ๋œ Bottlerocket 1.3.0 ๋ฐฐํฌํŒ์€ ๊ฒฉ๋ฆฌ๋œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํšจ์œจ์ ์ด๊ณ  ์•ˆ์ „ํ•˜๊ฒŒ ์‹คํ–‰ํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฐฐํฌํŒ์˜ ํˆด๋ง ๋ฐ ์ œ์–ด ๊ตฌ์„ฑ ์š”์†Œ๋Š” Rust๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ MIT ๋ฐ Apache 2.0 ๋ผ์ด์„ ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. Bottlerocket์€ Amazon ECS, VMware ๋ฐ AWS EKS Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์‹คํ–‰๋  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋‹ค์–‘ํ•œ ์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ๋ฐ ๋Ÿฐํƒ€์ž„ ๋„๊ตฌ๋ฅผ ์ง€์›ํ•˜๋Š” ์‚ฌ์šฉ์ž ์ง€์ • ๋นŒ๋“œ ๋ฐ ์—๋””์…˜๋„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฐฐํฌํŒ์€ ์ปค๋„์„ ํฌํ•จํ•˜์—ฌ ์›์ž์ ์œผ๋กœ ์ž๋™ ์—…๋ฐ์ดํŠธ๋˜๋Š” ๋ถ„ํ•  ๋ถˆ๊ฐ€๋Šฅํ•œ ์‹œ์Šคํ…œ ์ด๋ฏธ์ง€๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Linux ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰์— ํ•„์š”ํ•œ ๊ตฌ์„ฑ ์š”์†Œ๋งŒ ํฌํ•จํ•˜๋Š” ์ตœ์†Œ ์‹œ์Šคํ…œ ํ™˜๊ฒฝ์ž…๋‹ˆ๋‹ค. ์ด ํ™˜๊ฒฝ์—๋Š” systemd ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž, Glibc ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, Buildroot ๋นŒ๋“œ ํˆด์ฒด์ธ, GRUB ๋ถ€ํŠธ๋กœ๋”, wicked ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ ๋„๊ตฌ, ๊ฒฉ๋ฆฌ๋œ ์ปจํ…Œ์ด๋„ˆ์šฉ containerd ๋Ÿฐํƒ€์ž„, Kubernetes ์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ํ”Œ๋žซํผ, aws-iam-authenticator ์ธ์ฆ ๋„๊ตฌ ๋ฐ Amazon ECS ์—์ด์ „ํŠธ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ๋„๊ตฌ๋Š” ๋ณ„๋„์˜ ๊ด€๋ฆฌ ์ปจํ…Œ์ด๋„ˆ์— ์ œ๊ณต๋˜๋ฉฐ, ์ด ์ปจํ…Œ์ด๋„ˆ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ๊ณ  API ๋ฐ AWS SSM ์—์ด์ „ํŠธ๋ฅผ ํ†ตํ•ด ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์ด๋ฏธ์ง€์—๋Š” ๋ช…๋ น ์…ธ์ด ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„ SSH ๋ฐ ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์–ธ์–ด(์˜ˆ: Python ๋˜๋Š” Perl ์ œ์™ธ)์˜ ๊ฒฝ์šฐ ๊ด€๋ฆฌ ๋ฐ ๋””๋ฒ„๊น… ๋„๊ตฌ๋Š” ๋ณ„๋„์˜ ์„œ๋น„์Šค ์ปจํ…Œ์ด๋„ˆ์— ์žˆ์œผ๋ฉฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

Fedora CoreOS์™€ ๊ฐ™์€ ์œ ์‚ฌํ•œ ๋ฐฐํฌํŒ๊ณผ์˜ ์ฃผ์š” ์ฐจ์ด์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. CentOSRed Hat Atomic Host๋Š” ์ž ์žฌ์  ์œ„ํ˜‘์œผ๋กœ๋ถ€ํ„ฐ ์‹œ์Šคํ…œ์„ ๋ณดํ˜ธํ•˜๊ณ , ์šด์˜ ์ฒด์ œ ๊ตฌ์„ฑ ์š”์†Œ์˜ ์ทจ์•ฝ์  ์•…์šฉ์„ ์–ด๋ ต๊ฒŒ ํ•˜๋ฉฐ, ์ปจํ…Œ์ด๋„ˆ ๊ฒฉ๋ฆฌ๋ฅผ ๊ฐ•ํ™”ํ•˜์—ฌ ์ตœ๊ณ ์˜ ๋ณด์•ˆ์„ ์ œ๊ณตํ•˜๋Š” ๋ฐ ์ค‘์ ์„ ๋‘๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ๋Š” ๋„ค์ดํ‹ฐ๋ธŒ ์ปค๋„ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. Linux โ€” cgroups, ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๋ฐ seccomp. ์ถ”๊ฐ€์ ์ธ ๊ฒฉ๋ฆฌ๋ฅผ ์œ„ํ•ด ๋ฐฐํฌํŒ์€ SE๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.Linux "๊ฐ•์ œ ์ ์šฉ" ๋ชจ๋“œ์ž…๋‹ˆ๋‹ค.

๋ฃจํŠธ ํŒŒํ‹ฐ์…˜์€ ์ฝ๊ธฐ ์ „์šฉ์œผ๋กœ ๋งˆ์šดํŠธ๋˜๊ณ , /etc ์„ค์ • ํŒŒํ‹ฐ์…˜์€ tmpfs์— ๋งˆ์šดํŠธ๋˜์–ด ์žฌ์‹œ์ž‘ ํ›„ ์›๋ž˜ ์ƒํƒœ๋กœ ๋ณต์›๋ฉ๋‹ˆ๋‹ค. /etc/resolv.conf ๋ฐ /etc/containerd/config.toml๊ณผ ๊ฐ™์€ /etc ๋””๋ ‰ํ† ๋ฆฌ์˜ ํŒŒ์ผ์„ ์ง์ ‘ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์€ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์„ค์ •์„ ์˜๊ตฌ์ ์œผ๋กœ ์ €์žฅํ•˜๋ ค๋ฉด API๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๊ธฐ๋Šฅ์„ ๋ณ„๋„์˜ ์ปจํ…Œ์ด๋„ˆ๋กœ ์ด๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. dm-verity ๋ชจ๋“ˆ์€ ๋ฃจํŠธ ํŒŒํ‹ฐ์…˜์˜ ๋ฌด๊ฒฐ์„ฑ์„ ์•”ํ˜ธํ™” ๋ฐฉ์‹์œผ๋กœ ํ™•์ธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋ฉฐ, ๋ธ”๋ก ์žฅ์น˜ ์ˆ˜์ค€์—์„œ ๋ฐ์ดํ„ฐ ์ˆ˜์ • ์‹œ๋„๊ฐ€ ๊ฐ์ง€๋˜๋ฉด ์‹œ์Šคํ…œ์ด ์žฌ๋ถ€ํŒ…๋ฉ๋‹ˆ๋‹ค.

๋Œ€๋ถ€๋ถ„์˜ ์‹œ์Šคํ…œ ๊ตฌ์„ฑ ์š”์†Œ๋Š” After Free ๋ฉ”๋ชจ๋ฆฌ ์•ก์„ธ์Šค, ๋„ ํฌ์ธํ„ฐ ์—ญ์ฐธ์กฐ ๋ฐ ๋ฒ„ํผ ์˜ค๋ฒ„๋Ÿฐ์œผ๋กœ ์ธํ•œ ์ทจ์•ฝ์ ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ”๋ชจ๋ฆฌ ์•ˆ์ „ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” Rust๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋นŒ๋“œํ•  ๋•Œ ์ปดํŒŒ์ผ ๋ชจ๋“œ "-enable-default-pie" ๋ฐ "-enable-default-ssp"๋Š” ์‹คํ–‰ ํŒŒ์ผ ์ฃผ์†Œ ๊ณต๊ฐ„(PIE)์˜ ๋ฌด์ž‘์œ„ํ™”๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ณ  ์นด๋‚˜๋ฆฌ์•„ ๋Œ€์ฒด๋ฅผ ํ†ตํ•œ ์Šคํƒ ์˜ค๋ฒ„ํ”Œ๋กœ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. C/C++๋กœ ์ž‘์„ฑ๋œ ํŒจํ‚ค์ง€์˜ ๊ฒฝ์šฐ "-Wall", "-Werror=format-security", "-Wp,-D_FORTIFY_SOURCE=2", "-Wp,-D_GLIBCXX_ASSERTIONS" ๋ฐ "-fstack-clash" ํ”Œ๋ž˜๊ทธ๊ฐ€ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค. ํ™œ์„ฑํ™” -๋ณดํ˜ธ".

์ƒˆ ๋ฆด๋ฆฌ์Šค์—์„œ:

  • ๊ถŒํ•œ์ด ์—†๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๊ธฐ๋ณธ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋„˜์–ด ์™ธ๋ถ€ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•˜๋Š” ์ž˜๋ชป๋œ ์•ก์„ธ์Šค ๊ถŒํ•œ ์„ค์ •๊ณผ ๊ด€๋ จ๋œ docker ๋ฐ ๋Ÿฐํƒ€์ž„ containerd ๋„๊ตฌ์˜ ์ทจ์•ฝ์ (CVE-2021-41089, CVE-2021-41091, CVE-2021-41092, CVE-2021-41103)์„ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • kubelet ๋ฐ pluto์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. IPv6 ์ง€์›.
  • ์„ค์ •์„ ๋ณ€๊ฒฝํ•œ ํ›„ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • eni-max-pods ํŒจํ‚ค์ง€๊ฐ€ Amazon EC2 M6i ์ธ์Šคํ„ด์Šค๋ฅผ ์ง€์›ํ•˜๋„๋ก ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • open-vm-tools๋Š” ์ด์ œ Cilium ํˆดํ‚ท์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋””๋ฐ”์ด์Šค ํ•„ํ„ฐ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • x86_64 ํ”Œ๋žซํผ์˜ ๊ฒฝ์šฐ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๋ถ€ํŒ… ๋ชจ๋“œ๊ฐ€ ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค(EFI ๋ฐ BIOS ์ง€์›).
  • Rust ์–ธ์–ด์— ๋Œ€ํ•œ ํŒจํ‚ค์ง€ ๋ฒ„์ „ ๋ฐ ์ข…์†์„ฑ์„ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.
  • Kubernetes 8 ๊ธฐ๋ฐ˜ aws-k1.17s-1.17 ๋ฐฐํฌ ๋ณ€ํ˜•์— ๋Œ€ํ•œ ์ง€์›์ด ์ค‘๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Kubernetes 8์„ ์ง€์›ํ•˜๋Š” aws-k1.21s-1.21 ๋ณ€ํ˜•์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. k8s ๋ณ€ํ˜•์€ runtime.slice ๋ฐ system.slice cgroup ์„ค์ •์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

DDoS ๋ณดํ˜ธ, VPS VDS ์„œ๋ฒ„๊ฐ€ ์žˆ๋Š” ์‚ฌ์ดํŠธ๋ฅผ ์œ„ํ•œ ์•ˆ์ •์ ์ธ ํ˜ธ์ŠคํŒ… ๊ตฌ์ž… ๐Ÿ”ฅ DDoS ๊ณต๊ฒฉ ๋ฐฉ์ง€ ๊ธฐ๋Šฅ์ด ํƒ‘์žฌ๋œ ์•ˆ์ •์ ์ธ ์›น์‚ฌ์ดํŠธ ํ˜ธ์ŠคํŒ…, VPS ๋ฐ VDS ์„œ๋ฒ„๋ฅผ ๊ตฌ๋งคํ•˜์„ธ์š” | ProHoster