Microsoft๋ ํด๋ผ์ฐ๋ ์ธํ๋ผ, ์ฃ์ง ์์คํ ๋ฐ ๋ค์ํ Microsoft ์๋น์ค์์ ์ฌ์ฉ๋๋ Linux ํ๊ฒฝ์ ์ํ ๋ฒ์ฉ ๊ธฐ๋ณธ ํ๋ซํผ์ผ๋ก ๊ฐ๋ฐ๋๊ณ ์๋ CBL-Mariner ๋ฐฐํฌํ 1.0.20210901(Common Base Linux Mariner)์ ๋ํ ์ ๋ฐ์ดํธ๋ฅผ ๋ฐํํ์ต๋๋ค. ์ด ํ๋ก์ ํธ๋ Microsoft Linux ์๋ฃจ์ ์ ํตํฉํ๊ณ ๋ค์ํ ๋ชฉ์ ์ ์ํด ์ต์ Linux ์์คํ ์ ์ง ๊ด๋ฆฌ๋ฅผ ๋จ์ํํ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค. ํ๋ก์ ํธ์ ๊ฐ๋ฐ์ MIT ๋ผ์ด์ผ์ค์ ๋ฐ๋ผ ๋ฐฐํฌ๋ฉ๋๋ค.
์ ๋ฆด๋ฆฌ์ค์์:
- ๊ธฐ๋ณธ ISO ์ด๋ฏธ์ง(700MB)์ ํ์ฑ์ด ์์๋์์ต๋๋ค. ์ฒซ ๋ฒ์งธ ๋ฆด๋ฆฌ์ค์์๋ ๊ธฐ์ฑ ISO ์ด๋ฏธ์ง๊ฐ ์ ๊ณต๋์ง ์์์ผ๋ฉฐ ์ฌ์ฉ์๊ฐ ํ์ํ ์ฑ์ฐ๊ธฐ๋ก ์ด๋ฏธ์ง๋ฅผ ์์ฑํ ์ ์๋ค๊ณ ๊ฐ์ ํ์ต๋๋ค(์กฐ๋ฆฝ ์ง์นจ์ Ubuntu 18.04์ฉ์ผ๋ก ์ค๋น๋จ).
- Dnf-Automatic ์ ํ๋ฆฌ์ผ์ด์ ์ด ํฌํจ๋ ์๋ ํจํค์ง ์ ๋ฐ์ดํธ ์ง์์ด ๊ตฌํ๋์์ต๋๋ค.
- Linux ์ปค๋์ด ๋ฒ์ 5.10.60.1๋ก ์ ๋ฐ์ดํธ๋์์ต๋๋ค. openvswitch 2.15.1, golang 1.16.7, logrus 1.8.1, tcell 1.4.0, gonum 0.9.3, testify 1.7.0, crunchy 0.4.0, xz 0.5.10, swig 4.0.2,๋ฅผ ํฌํจํ ์ ๋ฐ์ดํธ๋ ํ๋ก๊ทธ๋จ ๋ฒ์ squashfs-๋๊ตฌ 4.4, mysql 8.0.26.
- OpenSSL์ TLS 1 ๋ฐ TLS 1.1์ ๋ํ ์ง์์ ๋ฐํํ๋ ์ต์ ์ ์ ๊ณตํฉ๋๋ค.
- ํดํท์ ์์ค ์ฝ๋๋ฅผ ํ์ธํ๋ ค๋ฉด sha256sum ์ ํธ๋ฆฌํฐ๊ฐ ์ฌ์ฉ๋ฉ๋๋ค.
- ์๋ก์ด ํจํค์ง ํฌํจ: etcd-tools, Cockpit, aide, fipscheck, tini.
- brp-strip-debug-symbols, brp-strip-unneeded ๋ฐ ca-legacy ํจํค์ง๊ฐ ์ ๊ฑฐ๋์์ต๋๋ค. ์ด์ ํต์ฌ .NET ๊ฐ๋ฐ ํ์์ ์ปดํ์ผํ์ฌ ๋ณ๋์ ์ ์ฅ์์ ๋ฐฐ์น๋๋ Dotnet ๋ฐ aspnetcore ํจํค์ง์ฉ SPEC ํ์ผ์ด ์ ๊ฑฐ๋์์ต๋๋ค.
- ์ทจ์ฝ์ ์์ ์ฌํญ์ด ์ฌ์ฉ๋ ํจํค์ง ๋ฒ์ ์ผ๋ก ์ด๋๋์์ต๋๋ค.
CBL-Mariner ๋ฐฐํฌํ์ ํด๋ผ์ฐ๋ ์ธํ๋ผ์ ์์ง ์ฅ์น์์ ์คํ๋๋ ์ปจํ ์ด๋, ํธ์คํธ ํ๊ฒฝ ๋ฐ ์๋น์ค์ ์ฝํ ์ธ ๋ฅผ ์์ฑํ๊ธฐ ์ํ ๋ณดํธ์ ์ธ ๊ธฐ๋ฐ ์ญํ ์ ํ๋ ์์ ํ์ค ๊ธฐ๋ณธ ํจํค์ง ์ธํธ๋ฅผ ์ ๊ณตํ๋ค๋ ์ ์ ์๊ธฐํด ๋ณด๊ฒ ์ต๋๋ค. CBL-Mariner ์์ ์ถ๊ฐ ํจํค์ง๋ฅผ ์ถ๊ฐํ๋ฉด ๋ ๋ณต์กํ๊ณ ์ ๋ฌธ์ ์ธ ์๋ฃจ์ ์ ๋ง๋ค ์ ์์ง๋ง ์ด๋ฌํ ๋ชจ๋ ์์คํ ์ ๊ธฐ๋ณธ์ ๋์ผํ๊ฒ ์ ์ง๋๋ฏ๋ก ์ ์ง ๊ด๋ฆฌ ๋ฐ ์ ๋ฐ์ดํธ๊ฐ ๋ ์ฝ์ต๋๋ค. ์๋ฅผ ๋ค์ด CBL-Mariner๋ WSL2(Linux์ฉ Windows ํ์ ์์คํ ) ํ์ ์์คํ ๊ธฐ๋ฐ ํ๊ฒฝ์์ Linux GUI ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๊ธฐ ์ํ ๊ทธ๋ํฝ ์คํ ๊ตฌ์ฑ ์์๋ฅผ ์ ๊ณตํ๋ WSLg ๋ฏธ๋ ๋ฐฐํฌํ์ ๊ธฐ๋ฐ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค. WSLg์ ํ์ฅ๋ ๊ธฐ๋ฅ์ Weston Composite Server, XWayland, PulseAudio ๋ฐ FreeRDP์ ์ถ๊ฐ ํจํค์ง๋ฅผ ํฌํจํจ์ผ๋ก์จ ์คํ๋ฉ๋๋ค.
CBL-Mariner ๋น๋ ์์คํ ์ ์ฌ์ฉํ๋ฉด SPEC ํ์ผ๊ณผ ์์ค ์ฝ๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ๊ฐ๋ณ RPM ํจํค์ง๋ฟ๋ง ์๋๋ผ rpm-ostree ํดํท์ ์ฌ์ฉํ์ฌ ์์ฑ๋๊ณ ๋ณ๋์ ํจํค์ง๋ก ๋ถํ ํ์ง ์๊ณ ์์์ ์ผ๋ก ์ ๋ฐ์ดํธ๋๋ ๋ชจ๋๋ฆฌ์ ์์คํ ์ด๋ฏธ์ง๋ฅผ ๋ชจ๋ ์์ฑํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ๊ฐ๋ณ ํจํค์ง ์ ๋ฐ์ดํธ์ ์ ์ฒด ์์คํ ์ด๋ฏธ์ง ์ฌ๊ตฌ์ถ ๋ฐ ์ ๋ฐ์ดํธ๋ผ๋ ๋ ๊ฐ์ง ์ ๋ฐ์ดํธ ์ ๋ฌ ๋ชจ๋ธ์ด ์ง์๋ฉ๋๋ค. ๊ตฌ์ฑ ํ์ผ์ ๊ธฐ๋ฐ์ผ๋ก ์์ฒด ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ์ฝ 3000๊ฐ์ ์ฌ์ ๋น๋๋ RPM ํจํค์ง ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ฐฐํฌํ์๋ ๊ฐ์ฅ ํ์ํ ๊ตฌ์ฑ ์์๋ง ํฌํจ๋์ด ์์ผ๋ฉฐ ์ต์ํ์ ๋ฉ๋ชจ๋ฆฌ ๋ฐ ๋์คํฌ ๊ณต๊ฐ ์๋น์ ๋์ ๋ก๋ฉ ์๋์ ์ต์ ํ๋์ด ์์ต๋๋ค. ์ด ๋ฐฐํฌํ์๋ ๋ณด์์ ๊ฐํํ๊ธฐ ์ํ ๋ค์ํ ์ถ๊ฐ ๋ฉ์ปค๋์ฆ์ด ํฌํจ๋ ์ ๋ ์ฃผ๋ชฉํ ๋งํฉ๋๋ค. ์ด ํ๋ก์ ํธ๋ "๊ธฐ๋ณธ์ ์ผ๋ก ์ต๋ ๋ณด์" ์ ๊ทผ ๋ฐฉ์์ ์ทจํฉ๋๋ค. seccomp ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํ์ฌ ์์คํ ํธ์ถ์ ํํฐ๋งํ๊ณ , ๋์คํฌ ํํฐ์ ์ ์ํธํํ๊ณ , ๋์งํธ ์๋ช ์ ์ฌ์ฉํ์ฌ ํจํค์ง๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
Linux ์ปค๋์์ ์ง์๋๋ ์ฃผ์ ๊ณต๊ฐ ๋ฌด์์ํ ๋ชจ๋๋ ๋ฌผ๋ก ์ฌ๋ณผ๋ฆญ ๋งํฌ ๊ณต๊ฒฉ, mmap, /dev/mem ๋ฐ /dev/kmem์ ๋ํ ๋ณดํธ ๋ฉ์ปค๋์ฆ๋ ํ์ฑํ๋ฉ๋๋ค. ์ปค๋ ๋ฐ ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ํฌํจ๋ ์ธ๊ทธ๋จผํธ๊ฐ ํฌํจ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ฝ๊ธฐ ์ ์ฉ ๋ชจ๋๋ก ์ค์ ๋๊ณ ์ฝ๋ ์คํ์ด ๊ธ์ง๋ฉ๋๋ค. ์ ํ์ ์ต์ ์ ์์คํ ์ด๊ธฐํ ํ ์ปค๋ ๋ชจ๋ ๋ก๋๋ฅผ ๋นํ์ฑํํ๋ ๊ฒ์ ๋๋ค. iptables ํดํท์ ๋คํธ์ํฌ ํจํท์ ํํฐ๋งํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ๋น๋ ๋จ๊ณ์์๋ ์คํ ์ค๋ฒํ๋ก, ๋ฒํผ ์ค๋ฒํ๋ก ๋ฐ ๋ฌธ์์ด ํ์ ๋ฌธ์ ์ ๋ํ ๋ณดํธ๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋ฉ๋๋ค(_FORTIFY_SOURCE, -fstack-protector, -Wformat-security, relro).
์์คํ
๊ด๋ฆฌ์ systemd๋ ์๋น์ค๋ฅผ ๊ด๋ฆฌํ๊ณ ๋ถํ
ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ํจํค์ง ๊ด๋ฆฌ๋ฅผ ์ํด ํจํค์ง ๊ด๋ฆฌ์ RPM ๋ฐ DNF(vmWare์ tdnf ๋ณํ)๊ฐ ์ ๊ณต๋ฉ๋๋ค. SSH ์๋ฒ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋์ด ์์ง ์์ต๋๋ค. ๋ฐฐํฌํ์ ์ค์นํ๊ธฐ ์ํด ํ
์คํธ ๋ฐ ๊ทธ๋ํฝ ๋ชจ๋์์ ๋ชจ๋ ์๋ํ ์ ์๋ ์ค์น ํ๋ก๊ทธ๋จ์ด ์ ๊ณต๋ฉ๋๋ค. ์ค์น ํ๋ก๊ทธ๋จ์ ์ ์ฒด ๋๋ ๊ธฐ๋ณธ ํจํค์ง ์ธํธ๋ฅผ ์ค์นํ๋ ์ต์
์ ์ ๊ณตํ๊ณ ๋์คํฌ ํํฐ์
์ ํ, ํธ์คํธ ์ด๋ฆ ์ ํ ๋ฐ ์ฌ์ฉ์ ์์ฑ์ ์ํ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ถ์ฒ : opennet.ru