systemd ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž ๋ฆด๋ฆฌ์Šค 242

[:๋ฃจ]

๋‘ ๋‹ฌ ๊ฐ„์˜ ๊ฐœ๋ฐœ ๋์— ์ œ์‹œ๋œ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž ๋ฆด๋ฆฌ์Šค systemd 242. ํ˜์‹  ์ค‘์—๋Š” L2TP ํ„ฐ๋„ ์ง€์›, ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ์žฌ์‹œ์ž‘ ์‹œ systemd-logind์˜ ๋™์ž‘์„ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹๊ธฐ๋Šฅ, /boot ๋งˆ์šดํŠธ๋ฅผ ์œ„ํ•œ ํ™•์žฅ XBOOTLDR ๋ถ€ํŒ… ํŒŒํ‹ฐ์…˜ ์ง€์›, overlayfs์—์„œ ๋ฃจํŠธ ํŒŒํ‹ฐ์…˜์œผ๋กœ ๋ถ€ํŒ…ํ•˜๋Š” ๊ธฐ๋Šฅ ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ์œ ํ˜•์˜ ์œ ๋‹›์— ๋Œ€ํ•œ ์ˆ˜๋งŽ์€ ์ƒˆ๋กœ์šด ์„ค์ •๋„ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ :

  • systemd-networkd๋Š” L2TP ํ„ฐ๋„์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • sd-boot ๋ฐ bootctl์€ /efi ๋˜๋Š” /boot/efi์— ๋งˆ์šดํŠธ๋œ ESP ํŒŒํ‹ฐ์…˜ ์™ธ์—๋„ /boot์— ๋งˆ์šดํŠธ๋˜๋„๋ก ์„ค๊ณ„๋œ XBOOTLDR(ํ™•์žฅ ๋ถ€ํŠธ ๋กœ๋”) ํŒŒํ‹ฐ์…˜์— ๋Œ€ํ•œ ์ง€์›์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ ์ปค๋„, ์„ค์ •, initrd ๋ฐ EFI ์ด๋ฏธ์ง€๋ฅผ ESP ๋ฐ XBOOTLDR ํŒŒํ‹ฐ์…˜ ๋ชจ๋‘์—์„œ ๋ถ€ํŒ…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ณ€๊ฒฝ์„ ํ†ตํ•ด ๋ถ€ํŠธ๋กœ๋” ์ž์ฒด๊ฐ€ ESP์— ์žˆ๊ณ  ๋กœ๋“œ๋œ ์ปค๋„ ๋ฐ ๊ด€๋ จ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ„๋„์˜ ์„น์…˜์— ๋ฐฐ์น˜๋˜๋Š” ๋ณด๋‹ค ๋ณด์ˆ˜์ ์ธ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ sd-boot ๋ถ€ํŠธ๋กœ๋”๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ปค๋„์— ์ „๋‹ฌ๋œ "systemd.ํœ˜๋ฐœ์„ฑ=overlay" ์˜ต์…˜์œผ๋กœ ๋ถ€ํŒ…ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์˜ค๋ฒ„๋ ˆ์ดfs์— ๋ฃจํŠธ ํŒŒํ‹ฐ์…˜์„ ๋ฐฐ์น˜ํ•˜๊ณ  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๊ธฐ๋ก๋œ ๋ฃจํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ์ฝ๊ธฐ ์ „์šฉ ์ด๋ฏธ์ง€ ์œ„์— ์ž‘์—…์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. tmpfs์˜ ๋ณ„๋„ ๋””๋ ‰ํ† ๋ฆฌ(์ด ๊ตฌ์„ฑ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ๋‹ค์‹œ ์‹œ์ž‘ํ•œ ํ›„ ์†์‹ค๋ฉ๋‹ˆ๋‹ค). ์œ ์‚ฌํ•˜๊ฒŒ systemd-nspawn์€ ์ปจํ…Œ์ด๋„ˆ์—์„œ ์œ ์‚ฌํ•œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด "--ํœ˜๋ฐœ์„ฑ=overlay" ์˜ต์…˜์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • systemd-nspawn์€ OCI(Open Container Initiative) ์‚ฌ์–‘์„ ์ค€์ˆ˜ํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ์˜ ๊ฒฉ๋ฆฌ๋œ ์‹œ์ž‘์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ๋Ÿฐํƒ€์ž„ ๋ฒˆ๋“ค์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก "--oci-bundle" ์˜ต์…˜์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ช…๋ น์ค„ ๋ฐ nspawn ์žฅ์น˜์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด OCI ์‚ฌ์–‘์— ์„ค๋ช…๋œ ๋‹ค์–‘ํ•œ ์˜ต์…˜์— ๋Œ€ํ•œ ์ง€์›์ด ์ œ์•ˆ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด "--inaccessible" ๋ฐ "Inaccessible" ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ์ผ๋ถ€๋ฅผ ์ œ์™ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ " ํ‘œ์ค€ ์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ ๋ฐ "-pipe"๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด --consoleโ€ ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํ™˜๊ฒฝ ๋ณ€์ˆ˜ $SYSTEMD_REBOOT_TO_FIRMWARE_SETUP์„ ํ†ตํ•ด systemd-logind์˜ ๋™์ž‘์„ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    $SYSTEMD_REBOOT_TO_BOOT_LOADER_MENU ๋ฐ
    $SYSTEMD_REBOOT_ TO_BOOT_LOADER_ENTRY. ์ด๋Ÿฌํ•œ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ž์ฒด ์žฌ๋ถ€ํŒ… ํ”„๋กœ์„ธ์Šค ํ•ธ๋“ค๋Ÿฌ(/run/systemd/reboot-to-firmware-setup, /run/systemd/reboot-to-boot-loader-menu ๋ฐ
    /run/systemd/reboot-to-boot-loader-entry) ๋˜๋Š” ๋ชจ๋‘ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค(๊ฐ’์ด false๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ).

  • "-boot-load-menu=" ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉฐ
    โ€œโ€”boot-loader-entry=โ€, ์žฌ๋ถ€ํŒ… ํ›„ ํŠน์ • ๋ถ€ํŒ… ๋ฉ”๋‰ด ํ•ญ๋ชฉ์ด๋‚˜ ๋ถ€ํŒ… ๋ชจ๋“œ๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • SUID/SGID ํ”Œ๋ž˜๊ทธ๊ฐ€ ์žˆ๋Š” ํŒŒ์ผ ์ƒ์„ฑ์„ ๊ธˆ์ง€ํ•˜๊ธฐ ์œ„ํ•ด seccomp๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ƒˆ๋กœ์šด ์ƒŒ๋“œ๋ฐ•์Šค ๊ฒฉ๋ฆฌ ๋ช…๋ น "RestrictSUIDSGID="๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๋™์  ์‚ฌ์šฉ์ž ID ์ƒ์„ฑ ๋ชจ๋“œ("DynamicUser" ํ™œ์„ฑํ™”)๊ฐ€ ์žˆ๋Š” ์„œ๋น„์Šค์—์„œ "NoNewPrivileges" ๋ฐ "RestrictSUIDSGID" ์ œํ•œ์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ์ ์šฉ๋˜๋Š”์ง€ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.
  • .link ํŒŒ์ผ์˜ ๊ธฐ๋ณธ MACAddressPolicy=percious ์„ค์ •์ด ๋” ๋งŽ์€ ์žฅ์น˜์— ์ ์šฉ๋˜๋„๋ก ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ๋ธŒ๋ฆฌ์ง€, ํ„ฐ๋„(tun, tap) ๋ฐ ํ†ตํ•ฉ ๋งํฌ(๋ณธ๋“œ)์˜ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค ์ด๋ฆ„์„ ์ œ์™ธํ•˜๊ณ ๋Š” ์ž์‹ ์„ ์‹๋ณ„ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ด์ œ ์ด ์ด๋ฆ„์ด MAC ๋ฐ IPv4 ์ฃผ์†Œ ๋ฐ”์ธ๋”ฉ์˜ ๊ธฐ์ดˆ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ "MACAddressPolicy=random" ์„ค์ •์ด ์ถ”๊ฐ€๋˜์–ด MAC ๋ฐ IPv4 ์ฃผ์†Œ๋ฅผ ๋ฌด์ž‘์œ„ ์ˆœ์„œ๋กœ ์žฅ์น˜์— ๋ฐ”์ธ๋”ฉํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • systemd-fstab-generator๋ฅผ ํ†ตํ•ด ์ƒ์„ฑ๋œ ".device" ์œ ๋‹› ํŒŒ์ผ์€ ๋” ์ด์ƒ "Wants=" ์„น์…˜์˜ ์ข…์†์„ฑ์œผ๋กœ ํ•ด๋‹น ".mount" ์œ ๋‹›์„ ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฐ„๋‹จํžˆ ์žฅ์น˜๋ฅผ ์—ฐ๊ฒฐํ•˜๋ฉด ๋” ์ด์ƒ ํƒ‘์žฌํ•  ์žฅ์น˜๊ฐ€ ์ž๋™์œผ๋กœ ์‹คํ–‰๋˜์ง€ ์•Š์ง€๋งŒ ์ด๋Ÿฌํ•œ ์žฅ์น˜๋Š” local-fs.target์˜ ์ผ๋ถ€ ๋˜๋Š” local-fs.target์— ์˜์กดํ•˜๋Š” ๋‹ค๋ฅธ ์žฅ์น˜์— ๋Œ€ํ•œ ์ข…์†์„ฑ๊ณผ ๊ฐ™์€ ๋‹ค๋ฅธ ์ด์œ ๋กœ ๊ณ„์† ์‹คํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ;
  • ์ด๋ฆ„์˜ ์ผ๋ถ€๋กœ ํŠน์ • ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค ๊ทธ๋ฃน์„ ํ•„ํ„ฐ๋งํ•˜๊ธฐ ์œ„ํ•ด "networkctl list/status/lldp" ๋ช…๋ น์— ๋งˆ์Šคํฌ("*" ๋“ฑ)์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • $PIDFILE ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” ์ด์ œ "PIDFile=;" ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ์„œ๋น„์Šค์— ๊ตฌ์„ฑ๋œ ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.
  • ๊ธฐ๋ณธ DNS๊ฐ€ ๋ช…์‹œ์ ์œผ๋กœ ์ •์˜๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฑ์—… DNS ์„œ๋ฒ„ ์ˆ˜์— Public Cloudflare ์„œ๋ฒ„(1.1.1.1)๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐฑ์—… DNS ์„œ๋ฒ„ ๋ชฉ๋ก์„ ์žฌ์ •์˜ํ•˜๋ ค๋ฉด "-Ddns-servers=" ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • USB ์žฅ์น˜ ์ปจํŠธ๋กค๋Ÿฌ์˜ ์กด์žฌ๋ฅผ ๊ฐ์ง€ํ•˜๋ฉด ์ƒˆ๋กœ์šด usb-gadget.target ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ์ž๋™์œผ๋กœ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค(์‹œ์Šคํ…œ์ด USB ์ฃผ๋ณ€ ์žฅ์น˜์—์„œ ์‹คํ–‰ ์ค‘์ธ ๊ฒฝ์šฐ).
  • ๋‹จ์œ„ ํŒŒ์ผ์˜ ๊ฒฝ์šฐ "CPUQuotaPeriodSec=" ์„ค์ •์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์„ค์ •์€ "CPUQuota=" ์„ค์ •์„ ํ†ตํ•ด ์„ค์ •๋œ CPU ์‹œ๊ฐ„ ํ• ๋‹น๋Ÿ‰์ด ์ธก์ •๋˜๋Š” ๊ธฐ๊ฐ„์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์œ ๋‹› ํŒŒ์ผ์˜ ๊ฒฝ์šฐ "ProtectHostname=" ์„ค์ •์ด ๊ตฌํ˜„๋˜์–ด ์„œ๋น„์Šค๊ฐ€ ์ ์ ˆํ•œ ๊ถŒํ•œ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋”๋ผ๋„ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ๋ชปํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • ์œ ๋‹› ํŒŒ์ผ์˜ ๊ฒฝ์šฐ "NetworkNamespacePath=" ์„ค์ •์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด pseudo-FS /proc์—์„œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ํŒŒ์ผ์— ๋Œ€ํ•œ ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•˜์—ฌ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์„œ๋น„์Šค ๋˜๋Š” ์†Œ์ผ“ ์œ ๋‹›์— ๋ฐ”์ธ๋”ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์‹œ์ž‘ ๋ช…๋ น ์•ž์— ":" ๋ฌธ์ž๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ "ExecStart=" ์„ค์ •์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ์ž‘๋œ ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๋Œ€์ฒด๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ํƒ€์ด๋จธ(.timer ๋‹จ์œ„)์˜ ๊ฒฝ์šฐ ์ƒˆ ํ”Œ๋ž˜๊ทธ "OnClockChange=" ๋ฐ
    "OnTimezoneChange="๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‹œ์Šคํ…œ ์‹œ๊ฐ„์ด๋‚˜ ์‹œ๊ฐ„๋Œ€๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ ์žฅ์น˜ ํ˜ธ์ถœ์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ ๋ฐ CPU ์ฝ”์–ด ์ˆ˜์— ๋”ฐ๋ผ ์œ ๋‹› ํ˜ธ์ถœ ์กฐ๊ฑด์„ ๊ฒฐ์ •ํ•˜๋Š” ์ƒˆ๋กœ์šด ์„ค์ • "ConditionMemory=" ๋ฐ "ConditionCPUs="๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋ฆฌ์†Œ์Šค ์ง‘์•ฝ์ ์ธ ์„œ๋น„์Šค๋Š” ํ•„์š”ํ•œ ์–‘์˜ ๊ฒฝ์šฐ์—๋งŒ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. RAM ์‚ฌ์šฉ ๊ฐ€๋Šฅ);
  • time-sync.target ๋‹จ์œ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์™ธ๋ถ€ ์‹œ๊ฐ„ ์„œ๋ฒ„์™€์˜ ์กฐ์ •์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋กœ์ปฌ๋กœ ์„ค์ •๋œ ์‹œ์Šคํ…œ ์‹œ๊ฐ„์„ ํ—ˆ์šฉํ•˜๋Š” ์ƒˆ๋กœ์šด time-set.target ๋‹จ์œ„๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ ์žฅ์น˜๋Š” ๋™๊ธฐํ™”๋˜์ง€ ์•Š์€ ๋กœ์ปฌ ์‹œ๊ณ„์˜ ์ •ํ™•์„ฑ์ด ํ•„์š”ํ•œ ์„œ๋น„์Šค์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • "--show-transaction" ์˜ต์…˜์ด "systemctl start"์— ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉฐ ์œ ์‚ฌํ•œ ๋ช…๋ น์„ ์ง€์ •ํ•˜๋ฉด ์š”์ฒญ๋œ ์ž‘์—…์œผ๋กœ ์ธํ•ด ๋Œ€๊ธฐ์—ด์— ์ถ”๊ฐ€๋œ ๋ชจ๋“  ์ž‘์—…์˜ โ€‹โ€‹์š”์•ฝ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  • systemd-networkd๋Š” ์ง‘๊ณ„ ๋งํฌ ๋˜๋Š” ๋„คํŠธ์›Œํฌ ๋ธŒ๋ฆฌ์ง€์˜ ์ผ๋ถ€์ธ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค์— ๋Œ€ํ•ด '์„ฑ๋Šฅ ์ €ํ•˜' ๋˜๋Š” '์บ๋ฆฌ์–ด' ๋Œ€์‹  ์‚ฌ์šฉ๋˜๋Š” ์ƒˆ๋กœ์šด '๋…ธ์˜ˆํ™”' ์ƒํƒœ์˜ ์ •์˜๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ฒฝ์šฐ ๋ณตํ•ฉ ๋งํฌ ์ค‘ ํ•˜๋‚˜์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ '์„ฑ๋Šฅ ์ €ํ•˜' ์ƒํƒœ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์—ฐ๊ฒฐ์ด ๋Š์–ด์ง„ ๊ฒฝ์šฐ ๋„คํŠธ์›Œํฌ ์„ค์ •์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด .network ์žฅ์น˜์— "IgnoreCarrierLoss=" ์˜ต์…˜์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • .network ๋‹จ์œ„์˜ "RequiredForOnline=" ์„ค์ •์„ ํ†ตํ•ด ์ด์ œ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ "์˜จ๋ผ์ธ"์œผ๋กœ ์ „ํ™˜ํ•˜๊ณ  systemd-networkd-wait-online ํ•ธ๋“ค๋Ÿฌ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ตœ์†Œ ํ—ˆ์šฉ ๋งํฌ ์ƒํƒœ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ง€์ •๋œ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค ์ „์ฒด๊ฐ€ ์•„๋‹Œ ์ผ๋ถ€์˜ ์ค€๋น„ ์ƒํƒœ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋„๋ก systemd-networkd-wait-online์— "--any" ์˜ต์…˜์„ ์ถ”๊ฐ€ํ–ˆ์œผ๋ฉฐ, ์ƒํƒœ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” "--operational-state=" ์˜ต์…˜๋„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ค€๋น„ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋งํฌ;
  • ์ˆ˜์‹  ์‹œ ์ ‘๋‘์–ด๋ฅผ ๋ฌด์‹œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” "UseAutonomousPrefix=" ๋ฐ "UseOnLinkPrefix=" ์„ค์ •์„ .network ๋‹จ์œ„์— ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
    IPv6 ๋ผ์šฐํ„ฐ๋กœ๋ถ€ํ„ฐ์˜ ๊ณต์ง€(RA, ๋ผ์šฐํ„ฐ ๊ด‘๊ณ );

  • .network ๋‹จ์œ„์—๋Š” ๋„คํŠธ์›Œํฌ ๋ธŒ๋ฆฌ์ง€์˜ ์ž‘๋™ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•œ "MulticastFlood=", "NeighborSuppression=" ๋ฐ "Learning=" ์„ค์ •์ด ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉฐ, TRIPLE-SAMPLING ๋ชจ๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•œ "TripleSampling=" ์„ค์ •๋„ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. CAN ๊ฐ€์ƒ ์ธํ„ฐํŽ˜์ด์Šค;
  • WireGuard VPN ์ธํ„ฐํŽ˜์ด์Šค์— ๋Œ€ํ•œ ๊ฐœ์ธ ๋ฐ ๊ณต์œ (PSK) ํ‚ค๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” "PrivateKeyFile=" ๋ฐ "PresharedKeyFile=" ์„ค์ •์ด .netdev ์žฅ์น˜์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • CPU ์ฝ”์–ด ๊ฐ„์— ์•”ํ˜ธํ™” ๊ด€๋ จ ์ž‘์—…์„ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•  ๋•Œ ์Šค์ผ€์ค„๋Ÿฌ์˜ ๋™์ž‘์„ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹same-cpu-crypt ๋ฐ submit-from-crypt-cpus ์˜ต์…˜์„ /etc/crypttab์— ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • systemd-tmpfiles๋Š” ์ž„์‹œ ํŒŒ์ผ์ด ์žˆ๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์ „์— ํŒŒ์ผ ์ž ๊ธˆ ์ฒ˜๋ฆฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํŠน์ • ์ž‘์—… ๊ธฐ๊ฐ„ ๋™์•ˆ ์˜ค๋ž˜๋œ ํŒŒ์ผ ์ •๋ฆฌ ์ž‘์—…์„ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: /tmp์—์„œ tar ์•„์นด์ด๋ธŒ์˜ ์••์ถ•์„ ํ’€ ๋•Œ ์•„์ฃผ ์˜ค๋ž˜๋œ ํŒŒ์ผ์ด ์‚ญ์ œ๋  ์ˆ˜ ์žˆ์Œ). ํ•ด๋‹น ์ž‘์—…์ด ๋๋‚˜๊ธฐ ์ „์—๋Š” ์‚ญ์ œํ•  ์ˆ˜ ์—†๋Š” ํŒŒ์ผ์ด ์—ด๋ ค ์žˆ์Œ)
  • "systemd-analyze cat-config" ๋ช…๋ น์€ ์‚ฌ์šฉ์ž ๋ฐ ์‹œ์Šคํ…œ ์‚ฌ์ „ ์„ค์ •, tmpfiles.d ๋ฐ sysusers.d์˜ ๋‚ด์šฉ, udev ๊ทœ์น™ ๋“ฑ๊ณผ ๊ฐ™์ด ์—ฌ๋Ÿฌ ํŒŒ์ผ๋กœ ๋‚˜๋ˆ„์–ด์ง„ ๊ตฌ์„ฑ์„ ๋ถ„์„ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ์œ„์น˜ ์ปค์„œ๋ฅผ ๋กœ๋“œํ•˜๊ณ  ์ €์žฅํ•  ํŒŒ์ผ์„ ์ง€์ •ํ•˜๊ธฐ ์œ„ํ•ด "journalctl"์— "--cursor-file=" ์˜ต์…˜์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์กฐ๊ฑด๋ถ€ ์—ฐ์‚ฐ์ž "ConditionVirtualization"์„ ์‚ฌ์šฉํ•˜์—ฌ ํ›„์† ๋ถ„๊ธฐ๋ฅผ ์œ„ํ•ด systemd-Detect-virt์— ACRN ํ•˜์ดํผ๋ฐ”์ด์ € ๋ฐ WSL ํ•˜์œ„ ์‹œ์Šคํ…œ(Linux์šฉ Windows ํ•˜์œ„ ์‹œ์Šคํ…œ) ์ •์˜๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • systemd ์„ค์น˜ ์ค‘("ninja install" ์‹คํ–‰ ์‹œ) systemd-networkd.service, systemd-networkd.socket ํŒŒ์ผ์— ๋Œ€ํ•œ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
    systemd-resolved.service, ์›๊ฒฉ-cryptsetup.target, ์›๊ฒฉ-fs.target,
    systemd-networkd-wait-online.service ๋ฐ systemd-timesyncd.service. ์ด๋Ÿฌํ•œ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๋ ค๋ฉด ์ด์ œ "systemctlpreset-all" ๋ช…๋ น์„ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜opennet.ru

[EN]

๋‘ ๋‹ฌ ๊ฐ„์˜ ๊ฐœ๋ฐœ ๋์— ์ œ์‹œ๋œ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž ๋ฆด๋ฆฌ์Šค systemd 242. ํ˜์‹  ์ค‘์—๋Š” L2TP ํ„ฐ๋„ ์ง€์›, ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ์žฌ์‹œ์ž‘ ์‹œ systemd-logind์˜ ๋™์ž‘์„ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹๊ธฐ๋Šฅ, /boot ๋งˆ์šดํŠธ๋ฅผ ์œ„ํ•œ ํ™•์žฅ XBOOTLDR ๋ถ€ํŒ… ํŒŒํ‹ฐ์…˜ ์ง€์›, overlayfs์—์„œ ๋ฃจํŠธ ํŒŒํ‹ฐ์…˜์œผ๋กœ ๋ถ€ํŒ…ํ•˜๋Š” ๊ธฐ๋Šฅ ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ์œ ํ˜•์˜ ์œ ๋‹›์— ๋Œ€ํ•œ ์ˆ˜๋งŽ์€ ์ƒˆ๋กœ์šด ์„ค์ •๋„ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ :

  • systemd-networkd๋Š” L2TP ํ„ฐ๋„์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • sd-boot ๋ฐ bootctl์€ /efi ๋˜๋Š” /boot/efi์— ๋งˆ์šดํŠธ๋œ ESP ํŒŒํ‹ฐ์…˜ ์™ธ์—๋„ /boot์— ๋งˆ์šดํŠธ๋˜๋„๋ก ์„ค๊ณ„๋œ XBOOTLDR(ํ™•์žฅ ๋ถ€ํŠธ ๋กœ๋”) ํŒŒํ‹ฐ์…˜์— ๋Œ€ํ•œ ์ง€์›์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ ์ปค๋„, ์„ค์ •, initrd ๋ฐ EFI ์ด๋ฏธ์ง€๋ฅผ ESP ๋ฐ XBOOTLDR ํŒŒํ‹ฐ์…˜ ๋ชจ๋‘์—์„œ ๋ถ€ํŒ…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ณ€๊ฒฝ์„ ํ†ตํ•ด ๋ถ€ํŠธ๋กœ๋” ์ž์ฒด๊ฐ€ ESP์— ์žˆ๊ณ  ๋กœ๋“œ๋œ ์ปค๋„ ๋ฐ ๊ด€๋ จ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ„๋„์˜ ์„น์…˜์— ๋ฐฐ์น˜๋˜๋Š” ๋ณด๋‹ค ๋ณด์ˆ˜์ ์ธ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ sd-boot ๋ถ€ํŠธ๋กœ๋”๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ปค๋„์— ์ „๋‹ฌ๋œ "systemd.ํœ˜๋ฐœ์„ฑ=overlay" ์˜ต์…˜์œผ๋กœ ๋ถ€ํŒ…ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์˜ค๋ฒ„๋ ˆ์ดfs์— ๋ฃจํŠธ ํŒŒํ‹ฐ์…˜์„ ๋ฐฐ์น˜ํ•˜๊ณ  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๊ธฐ๋ก๋œ ๋ฃจํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ์ฝ๊ธฐ ์ „์šฉ ์ด๋ฏธ์ง€ ์œ„์— ์ž‘์—…์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. tmpfs์˜ ๋ณ„๋„ ๋””๋ ‰ํ† ๋ฆฌ(์ด ๊ตฌ์„ฑ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ๋‹ค์‹œ ์‹œ์ž‘ํ•œ ํ›„ ์†์‹ค๋ฉ๋‹ˆ๋‹ค). ์œ ์‚ฌํ•˜๊ฒŒ systemd-nspawn์€ ์ปจํ…Œ์ด๋„ˆ์—์„œ ์œ ์‚ฌํ•œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด "--ํœ˜๋ฐœ์„ฑ=overlay" ์˜ต์…˜์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • systemd-nspawn์€ OCI(Open Container Initiative) ์‚ฌ์–‘์„ ์ค€์ˆ˜ํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ์˜ ๊ฒฉ๋ฆฌ๋œ ์‹œ์ž‘์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ๋Ÿฐํƒ€์ž„ ๋ฒˆ๋“ค์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก "--oci-bundle" ์˜ต์…˜์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ช…๋ น์ค„ ๋ฐ nspawn ์žฅ์น˜์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด OCI ์‚ฌ์–‘์— ์„ค๋ช…๋œ ๋‹ค์–‘ํ•œ ์˜ต์…˜์— ๋Œ€ํ•œ ์ง€์›์ด ์ œ์•ˆ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด "--inaccessible" ๋ฐ "Inaccessible" ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ์ผ๋ถ€๋ฅผ ์ œ์™ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ " ํ‘œ์ค€ ์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ ๋ฐ "-pipe"๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด --consoleโ€ ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํ™˜๊ฒฝ ๋ณ€์ˆ˜ $SYSTEMD_REBOOT_TO_FIRMWARE_SETUP์„ ํ†ตํ•ด systemd-logind์˜ ๋™์ž‘์„ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    $SYSTEMD_REBOOT_TO_BOOT_LOADER_MENU ๋ฐ
    $SYSTEMD_REBOOT_ TO_BOOT_LOADER_ENTRY. ์ด๋Ÿฌํ•œ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ž์ฒด ์žฌ๋ถ€ํŒ… ํ”„๋กœ์„ธ์Šค ํ•ธ๋“ค๋Ÿฌ(/run/systemd/reboot-to-firmware-setup, /run/systemd/reboot-to-boot-loader-menu ๋ฐ
    /run/systemd/reboot-to-boot-loader-entry) ๋˜๋Š” ๋ชจ๋‘ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค(๊ฐ’์ด false๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ).

  • "-boot-load-menu=" ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉฐ
    โ€œโ€”boot-loader-entry=โ€, ์žฌ๋ถ€ํŒ… ํ›„ ํŠน์ • ๋ถ€ํŒ… ๋ฉ”๋‰ด ํ•ญ๋ชฉ์ด๋‚˜ ๋ถ€ํŒ… ๋ชจ๋“œ๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • SUID/SGID ํ”Œ๋ž˜๊ทธ๊ฐ€ ์žˆ๋Š” ํŒŒ์ผ ์ƒ์„ฑ์„ ๊ธˆ์ง€ํ•˜๊ธฐ ์œ„ํ•ด seccomp๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ƒˆ๋กœ์šด ์ƒŒ๋“œ๋ฐ•์Šค ๊ฒฉ๋ฆฌ ๋ช…๋ น "RestrictSUIDSGID="๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๋™์  ์‚ฌ์šฉ์ž ID ์ƒ์„ฑ ๋ชจ๋“œ("DynamicUser" ํ™œ์„ฑํ™”)๊ฐ€ ์žˆ๋Š” ์„œ๋น„์Šค์—์„œ "NoNewPrivileges" ๋ฐ "RestrictSUIDSGID" ์ œํ•œ์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ์ ์šฉ๋˜๋Š”์ง€ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.
  • .link ํŒŒ์ผ์˜ ๊ธฐ๋ณธ MACAddressPolicy=percious ์„ค์ •์ด ๋” ๋งŽ์€ ์žฅ์น˜์— ์ ์šฉ๋˜๋„๋ก ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ๋ธŒ๋ฆฌ์ง€, ํ„ฐ๋„(tun, tap) ๋ฐ ํ†ตํ•ฉ ๋งํฌ(๋ณธ๋“œ)์˜ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค ์ด๋ฆ„์„ ์ œ์™ธํ•˜๊ณ ๋Š” ์ž์‹ ์„ ์‹๋ณ„ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ด์ œ ์ด ์ด๋ฆ„์ด MAC ๋ฐ IPv4 ์ฃผ์†Œ ๋ฐ”์ธ๋”ฉ์˜ ๊ธฐ์ดˆ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ "MACAddressPolicy=random" ์„ค์ •์ด ์ถ”๊ฐ€๋˜์–ด MAC ๋ฐ IPv4 ์ฃผ์†Œ๋ฅผ ๋ฌด์ž‘์œ„ ์ˆœ์„œ๋กœ ์žฅ์น˜์— ๋ฐ”์ธ๋”ฉํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • systemd-fstab-generator๋ฅผ ํ†ตํ•ด ์ƒ์„ฑ๋œ ".device" ์œ ๋‹› ํŒŒ์ผ์€ ๋” ์ด์ƒ "Wants=" ์„น์…˜์˜ ์ข…์†์„ฑ์œผ๋กœ ํ•ด๋‹น ".mount" ์œ ๋‹›์„ ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฐ„๋‹จํžˆ ์žฅ์น˜๋ฅผ ์—ฐ๊ฒฐํ•˜๋ฉด ๋” ์ด์ƒ ํƒ‘์žฌํ•  ์žฅ์น˜๊ฐ€ ์ž๋™์œผ๋กœ ์‹คํ–‰๋˜์ง€ ์•Š์ง€๋งŒ ์ด๋Ÿฌํ•œ ์žฅ์น˜๋Š” local-fs.target์˜ ์ผ๋ถ€ ๋˜๋Š” local-fs.target์— ์˜์กดํ•˜๋Š” ๋‹ค๋ฅธ ์žฅ์น˜์— ๋Œ€ํ•œ ์ข…์†์„ฑ๊ณผ ๊ฐ™์€ ๋‹ค๋ฅธ ์ด์œ ๋กœ ๊ณ„์† ์‹คํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ;
  • ์ด๋ฆ„์˜ ์ผ๋ถ€๋กœ ํŠน์ • ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค ๊ทธ๋ฃน์„ ํ•„ํ„ฐ๋งํ•˜๊ธฐ ์œ„ํ•ด "networkctl list/status/lldp" ๋ช…๋ น์— ๋งˆ์Šคํฌ("*" ๋“ฑ)์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • $PIDFILE ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” ์ด์ œ "PIDFile=;" ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ์„œ๋น„์Šค์— ๊ตฌ์„ฑ๋œ ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.
  • ๊ธฐ๋ณธ DNS๊ฐ€ ๋ช…์‹œ์ ์œผ๋กœ ์ •์˜๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฑ์—… DNS ์„œ๋ฒ„ ์ˆ˜์— Public Cloudflare ์„œ๋ฒ„(1.1.1.1)๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐฑ์—… DNS ์„œ๋ฒ„ ๋ชฉ๋ก์„ ์žฌ์ •์˜ํ•˜๋ ค๋ฉด "-Ddns-servers=" ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • USB ์žฅ์น˜ ์ปจํŠธ๋กค๋Ÿฌ์˜ ์กด์žฌ๋ฅผ ๊ฐ์ง€ํ•˜๋ฉด ์ƒˆ๋กœ์šด usb-gadget.target ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ์ž๋™์œผ๋กœ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค(์‹œ์Šคํ…œ์ด USB ์ฃผ๋ณ€ ์žฅ์น˜์—์„œ ์‹คํ–‰ ์ค‘์ธ ๊ฒฝ์šฐ).
  • ๋‹จ์œ„ ํŒŒ์ผ์˜ ๊ฒฝ์šฐ "CPUQuotaPeriodSec=" ์„ค์ •์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์„ค์ •์€ "CPUQuota=" ์„ค์ •์„ ํ†ตํ•ด ์„ค์ •๋œ CPU ์‹œ๊ฐ„ ํ• ๋‹น๋Ÿ‰์ด ์ธก์ •๋˜๋Š” ๊ธฐ๊ฐ„์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์œ ๋‹› ํŒŒ์ผ์˜ ๊ฒฝ์šฐ "ProtectHostname=" ์„ค์ •์ด ๊ตฌํ˜„๋˜์–ด ์„œ๋น„์Šค๊ฐ€ ์ ์ ˆํ•œ ๊ถŒํ•œ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋”๋ผ๋„ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ๋ชปํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • ์œ ๋‹› ํŒŒ์ผ์˜ ๊ฒฝ์šฐ "NetworkNamespacePath=" ์„ค์ •์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด pseudo-FS /proc์—์„œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ํŒŒ์ผ์— ๋Œ€ํ•œ ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•˜์—ฌ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์„œ๋น„์Šค ๋˜๋Š” ์†Œ์ผ“ ์œ ๋‹›์— ๋ฐ”์ธ๋”ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์‹œ์ž‘ ๋ช…๋ น ์•ž์— ":" ๋ฌธ์ž๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ "ExecStart=" ์„ค์ •์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ์ž‘๋œ ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๋Œ€์ฒด๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ํƒ€์ด๋จธ(.timer ๋‹จ์œ„)์˜ ๊ฒฝ์šฐ ์ƒˆ ํ”Œ๋ž˜๊ทธ "OnClockChange=" ๋ฐ
    "OnTimezoneChange="๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‹œ์Šคํ…œ ์‹œ๊ฐ„์ด๋‚˜ ์‹œ๊ฐ„๋Œ€๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ ์žฅ์น˜ ํ˜ธ์ถœ์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ ๋ฐ CPU ์ฝ”์–ด ์ˆ˜์— ๋”ฐ๋ผ ์œ ๋‹› ํ˜ธ์ถœ ์กฐ๊ฑด์„ ๊ฒฐ์ •ํ•˜๋Š” ์ƒˆ๋กœ์šด ์„ค์ • "ConditionMemory=" ๋ฐ "ConditionCPUs="๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋ฆฌ์†Œ์Šค ์ง‘์•ฝ์ ์ธ ์„œ๋น„์Šค๋Š” ํ•„์š”ํ•œ ์–‘์˜ ๊ฒฝ์šฐ์—๋งŒ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. RAM ์‚ฌ์šฉ ๊ฐ€๋Šฅ);
  • time-sync.target ๋‹จ์œ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์™ธ๋ถ€ ์‹œ๊ฐ„ ์„œ๋ฒ„์™€์˜ ์กฐ์ •์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋กœ์ปฌ๋กœ ์„ค์ •๋œ ์‹œ์Šคํ…œ ์‹œ๊ฐ„์„ ํ—ˆ์šฉํ•˜๋Š” ์ƒˆ๋กœ์šด time-set.target ๋‹จ์œ„๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ ์žฅ์น˜๋Š” ๋™๊ธฐํ™”๋˜์ง€ ์•Š์€ ๋กœ์ปฌ ์‹œ๊ณ„์˜ ์ •ํ™•์„ฑ์ด ํ•„์š”ํ•œ ์„œ๋น„์Šค์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • "--show-transaction" ์˜ต์…˜์ด "systemctl start"์— ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉฐ ์œ ์‚ฌํ•œ ๋ช…๋ น์„ ์ง€์ •ํ•˜๋ฉด ์š”์ฒญ๋œ ์ž‘์—…์œผ๋กœ ์ธํ•ด ๋Œ€๊ธฐ์—ด์— ์ถ”๊ฐ€๋œ ๋ชจ๋“  ์ž‘์—…์˜ โ€‹โ€‹์š”์•ฝ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  • systemd-networkd๋Š” ์ง‘๊ณ„ ๋งํฌ ๋˜๋Š” ๋„คํŠธ์›Œํฌ ๋ธŒ๋ฆฌ์ง€์˜ ์ผ๋ถ€์ธ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค์— ๋Œ€ํ•ด '์„ฑ๋Šฅ ์ €ํ•˜' ๋˜๋Š” '์บ๋ฆฌ์–ด' ๋Œ€์‹  ์‚ฌ์šฉ๋˜๋Š” ์ƒˆ๋กœ์šด '๋…ธ์˜ˆํ™”' ์ƒํƒœ์˜ ์ •์˜๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ฒฝ์šฐ ๋ณตํ•ฉ ๋งํฌ ์ค‘ ํ•˜๋‚˜์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ '์„ฑ๋Šฅ ์ €ํ•˜' ์ƒํƒœ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์—ฐ๊ฒฐ์ด ๋Š์–ด์ง„ ๊ฒฝ์šฐ ๋„คํŠธ์›Œํฌ ์„ค์ •์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด .network ์žฅ์น˜์— "IgnoreCarrierLoss=" ์˜ต์…˜์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • .network ๋‹จ์œ„์˜ "RequiredForOnline=" ์„ค์ •์„ ํ†ตํ•ด ์ด์ œ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ "์˜จ๋ผ์ธ"์œผ๋กœ ์ „ํ™˜ํ•˜๊ณ  systemd-networkd-wait-online ํ•ธ๋“ค๋Ÿฌ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ตœ์†Œ ํ—ˆ์šฉ ๋งํฌ ์ƒํƒœ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ง€์ •๋œ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค ์ „์ฒด๊ฐ€ ์•„๋‹Œ ์ผ๋ถ€์˜ ์ค€๋น„ ์ƒํƒœ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋„๋ก systemd-networkd-wait-online์— "--any" ์˜ต์…˜์„ ์ถ”๊ฐ€ํ–ˆ์œผ๋ฉฐ, ์ƒํƒœ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” "--operational-state=" ์˜ต์…˜๋„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ค€๋น„ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋งํฌ;
  • ์ˆ˜์‹  ์‹œ ์ ‘๋‘์–ด๋ฅผ ๋ฌด์‹œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” "UseAutonomousPrefix=" ๋ฐ "UseOnLinkPrefix=" ์„ค์ •์„ .network ๋‹จ์œ„์— ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
    IPv6 ๋ผ์šฐํ„ฐ๋กœ๋ถ€ํ„ฐ์˜ ๊ณต์ง€(RA, ๋ผ์šฐํ„ฐ ๊ด‘๊ณ );

  • .network ๋‹จ์œ„์—๋Š” ๋„คํŠธ์›Œํฌ ๋ธŒ๋ฆฌ์ง€์˜ ์ž‘๋™ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•œ "MulticastFlood=", "NeighborSuppression=" ๋ฐ "Learning=" ์„ค์ •์ด ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉฐ, TRIPLE-SAMPLING ๋ชจ๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•œ "TripleSampling=" ์„ค์ •๋„ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. CAN ๊ฐ€์ƒ ์ธํ„ฐํŽ˜์ด์Šค;
  • WireGuard VPN ์ธํ„ฐํŽ˜์ด์Šค์— ๋Œ€ํ•œ ๊ฐœ์ธ ๋ฐ ๊ณต์œ (PSK) ํ‚ค๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” "PrivateKeyFile=" ๋ฐ "PresharedKeyFile=" ์„ค์ •์ด .netdev ์žฅ์น˜์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • CPU ์ฝ”์–ด ๊ฐ„์— ์•”ํ˜ธํ™” ๊ด€๋ จ ์ž‘์—…์„ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•  ๋•Œ ์Šค์ผ€์ค„๋Ÿฌ์˜ ๋™์ž‘์„ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹same-cpu-crypt ๋ฐ submit-from-crypt-cpus ์˜ต์…˜์„ /etc/crypttab์— ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • systemd-tmpfiles๋Š” ์ž„์‹œ ํŒŒ์ผ์ด ์žˆ๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์ „์— ํŒŒ์ผ ์ž ๊ธˆ ์ฒ˜๋ฆฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํŠน์ • ์ž‘์—… ๊ธฐ๊ฐ„ ๋™์•ˆ ์˜ค๋ž˜๋œ ํŒŒ์ผ ์ •๋ฆฌ ์ž‘์—…์„ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: /tmp์—์„œ tar ์•„์นด์ด๋ธŒ์˜ ์••์ถ•์„ ํ’€ ๋•Œ ์•„์ฃผ ์˜ค๋ž˜๋œ ํŒŒ์ผ์ด ์‚ญ์ œ๋  ์ˆ˜ ์žˆ์Œ). ํ•ด๋‹น ์ž‘์—…์ด ๋๋‚˜๊ธฐ ์ „์—๋Š” ์‚ญ์ œํ•  ์ˆ˜ ์—†๋Š” ํŒŒ์ผ์ด ์—ด๋ ค ์žˆ์Œ)
  • "systemd-analyze cat-config" ๋ช…๋ น์€ ์‚ฌ์šฉ์ž ๋ฐ ์‹œ์Šคํ…œ ์‚ฌ์ „ ์„ค์ •, tmpfiles.d ๋ฐ sysusers.d์˜ ๋‚ด์šฉ, udev ๊ทœ์น™ ๋“ฑ๊ณผ ๊ฐ™์ด ์—ฌ๋Ÿฌ ํŒŒ์ผ๋กœ ๋‚˜๋ˆ„์–ด์ง„ ๊ตฌ์„ฑ์„ ๋ถ„์„ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ์œ„์น˜ ์ปค์„œ๋ฅผ ๋กœ๋“œํ•˜๊ณ  ์ €์žฅํ•  ํŒŒ์ผ์„ ์ง€์ •ํ•˜๊ธฐ ์œ„ํ•ด "journalctl"์— "--cursor-file=" ์˜ต์…˜์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์กฐ๊ฑด๋ถ€ ์—ฐ์‚ฐ์ž "ConditionVirtualization"์„ ์‚ฌ์šฉํ•˜์—ฌ ํ›„์† ๋ถ„๊ธฐ๋ฅผ ์œ„ํ•ด systemd-Detect-virt์— ACRN ํ•˜์ดํผ๋ฐ”์ด์ € ๋ฐ WSL ํ•˜์œ„ ์‹œ์Šคํ…œ(Linux์šฉ Windows ํ•˜์œ„ ์‹œ์Šคํ…œ) ์ •์˜๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • systemd ์„ค์น˜ ์ค‘("ninja install" ์‹คํ–‰ ์‹œ) systemd-networkd.service, systemd-networkd.socket ํŒŒ์ผ์— ๋Œ€ํ•œ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
    systemd-resolved.service, ์›๊ฒฉ-cryptsetup.target, ์›๊ฒฉ-fs.target,
    systemd-networkd-wait-online.service ๋ฐ systemd-timesyncd.service. ์ด๋Ÿฌํ•œ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๋ ค๋ฉด ์ด์ œ "systemctlpreset-all" ๋ช…๋ น์„ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

[:]

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€