Arch Linux, SSH, Tailscale을 활용한 원격 디스크 잠금 해제

by DD
2개월 전
조회수 8

Arch Linux 환경에서 암호화된 하드 디스크를 원격으로 해제하는 방법을 제시함

initramfs 환경에 TailscaleSSH를 설정하여 원격 접근성을 확보함

보안 강화를 위해 Tailscale ACLsSSH 접근 제한을 적용함

mkinitcpio를 사용하여 initramfs를 재구성하고, 원격 부팅 환경을 구축함

initramfs 기반 원격 접근 아키텍처

본 아키텍처는 initramfs(Initial RAM Filesystem) 환경에서 TailscaleSSH를 설정하여 원격 접근을 가능하게 한다. 기술적으로 보면, 부팅 과정 초기에 실행되는 initramfs는 별도의 OS(Operating System)와 같으며, 이 환경에 네트워크 설정 및 SSH 서버를 구축하여 원격 접속을 허용한다. 이를 통해 사용자는 물리적인 접근 없이도 암호화된 디스크를 해제하고 시스템에 접근할 수 있다.

Tailscale ACLs를 활용한 보안 강화

본 시스템은 Tailscale ACLs(Access Control Lists)를 사용하여 보안을 강화한다. 특히, Tailscale태그(Tags) 기능을 활용하여 initramfs에 대한 접근 권한을 제한한다. 구체적으로, 특정 태그가 지정된 장치만 initramfs에 접근할 수 있도록 설정하고, SSH 서버는 특정 명령(systemd-tty-ask-password-agent)만 허용하도록 제한한다. 이러한 접근 제어를 통해 데이터 미저장 정책(Zero-Retention Policy)을 구현하고, 무단 접근 시도를 방지한다.

mkinitcpio를 이용한 initramfs 재구성

본 아키텍처는 mkinitcpio를 사용하여 initramfs를 재구성한다. mkinitcpio는 Arch Linux에서 initramfs를 생성하고 관리하는 도구로, 시스템 부팅에 필요한 드라이버, 모듈, 설정 등을 포함한다. 특히, sd-network, tailscale, sd-dropbear 등의 systemd hook을 추가하여 네트워크 설정, Tailscale 설정, SSH 서버 설정을 initramfs에 통합한다. 이러한 과정을 통해 원격 부팅 환경을 구축하고, 시스템의 유연성을 확보한다.

원격 부팅 환경 구축의 기술적 고려 사항

원격 부팅 환경 구축에는 여러 기술적 고려 사항이 존재한다. 예를 들어, Tailscale 키(Key)의 만료 문제를 해결하기 위해 키의 만료 기간을 연장하거나, SSH 키(Key)를 안전하게 관리해야 한다. 또한, 네트워크 인터페이스의 이름이 부팅 과정에서 예측 불가능하게 변경될 수 있으므로, 이를 처리하기 위한 설정이 필요하다. 이러한 고려 사항들을 해결함으로써, 안정적이고 안전한 원격 부팅 환경을 구축할 수 있다.

remotely unlocking an encrypted hard disk