λ λ¬ κ°μ κ°λ° λμ μμ€ν κ΄λ¦¬μ systemd 242κ° μΆμλμμ΅λλ€. νμ μ€μλ L2TP ν°λ μ§μ, νκ²½ λ³μλ₯Ό ν΅ν΄ μ¬μμ μ systemd-logindμ λμμ μ μ΄νλ ββκΈ°λ₯, νμ₯λ XBOOTLDR λΆν μ§μμ΄ ν¬ν¨λ©λλ€. /boot λ§μ΄νΈλ₯Ό μν νν°μ , 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 μλ² λͺ©λ‘μ κ³΅μ© DNS μλ²κ° μΆκ°λμμ΅λλ€. μλ² 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 κ°μ μΈν°νμ΄μ€;
- "PrivateKeyFile=" λ° "PresharedKeyFile=" μ€μ μ΄ .netdev μ λμ μΆκ°λμ΄ μΈν°νμ΄μ€μ λν κ°μΈ ν€μ 곡μ ν€(PSK)λ₯Ό μ§μ ν μ μμ΅λλ€. WireGuard VPN;
- 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=" μ΅μ μ μΆκ°νμ΅λλ€.
- systemd-detect-virtμ ACRN νμ΄νΌλ°μ΄μ λ° WSL μλΈμμ€ν κ°μ§ κΈ°λ₯μ΄ μΆκ°λμμ΅λλ€. Windows μ λν νμ μμ€ν Linux) 쑰건 μ°μ°μ "ConditionVirtualization"μ μ¬μ©νμ¬ νμ λΆκΈ°λ₯Ό μνν©λλ€.
- 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
