다른 서버의 키를 사용하여 시작 시 암호화된 LVM을 자동으로 마운트

다른 서버의 키를 사용하여 시작 시 암호화된 LVM을 자동으로 마운트

암호화된 파티션과 네트워크의 다른 서버에 저장된 키 파일을 사용하여 Linux 서버의 데이터를 물리적 도난으로부터 보호하고 싶습니다. 다른 서버는 실제로 내 라우터입니다. 매우 작으며 서버와 물리적 위치가 다르며 SSH를 통해 액세스할 수 있습니다.

누군가가 한 위치에서 서버를 훔쳐 두 번째 위치에 침입하여 라우터를 찾아서 훔친 다음 동일한 네트워크에 설정하는 경우는 거의 없다고 생각합니다. 즉, 내 서버가 내 네트워크에 연결되어 있는 한 항상 재부팅하고 모든 서비스를 시작하지만 내 중요한 데이터가 건물 밖으로 나가면 보호된다는 의미입니다.

시작 순서는 다음과 유사합니다.

  • 암호화되지 않은 논리 파티션( 등 ) /마운트/var/tmp
  • 네트워킹 시작
  • SSH를 통해 다른 서버에서 키 가져오기
  • 암호화된 물리적 파티션 잠금 해제
  • 암호화된 논리 파티션 마운트( /home/opt)
  • Docker와 같이 암호화된 파티션을 사용하도록 구성된 다른 서비스를 시작합니다.

키를 얻기 위한 스크립트를 삽입하기 위해 LVM/암호화된 부팅 시퀀스를 연결하는 방법이나 해당 단계 전에 네트워크가 시작되도록 부팅 시퀀스를 변경하는 방법을 모르겠습니다.

Linux 시스템의 루트 사용자는 다음과 같이 비밀번호 없이 SSH를 실행할 수 있도록 라우터에 SSH 키를 설정합니다.

PASSPHRASE=$(ssh router cat /config/disk-passphrase.txt)
cryptsetup luksOpen /dev/sda6 sda6_crypt <<< $PASSPHRASE

필요한 경우 변경할 의향이 있지만 지금까지의 디스크 레이아웃은 다음과 같습니다.

NAME                         FSTYPE    LABEL UUID                                   MOUNTPOINT
sda
├─sda2
├─sda5                       LVM2_memb       fjRt18-XKFm-z3RN-1D7t-zkuw-sMal-KyOZ6Z
│ ├─garage--main--vg-tmp     ext4            e90a6186-bf09-41f7-b8bc-392e0fba2207   /tmp
│ ├─garage--main--vg-var     ext4            ee878d29-3b44-463f-adba-083155ea29da   /var
│ └─garage--main--vg-root    ext4            f4fa0962-3c2c-456c-9ee0-84c47d6c12c9   /
├─sda1                       ext4            60d06dea-a07b-4af3-bf30-70fa3f82267d   /boot
└─sda6                       crypto_LU       31b7b643-188c-4ae9-bac6-75316b37d562
  └─sda6_crypt               LVM2_memb       ynUOJB-iRsP-djql-Tzrl-nfHh-Smga-ji4OcT
    ├─garage--enc--vg-opt    ext4            2f149989-f64c-4cab-8a47-fea80ebf4c8e   /opt
    ├─garage--enc--vg-swap_0 swap            bab96476-7209-42c7-9f2a-113dd5c4da67   [SWAP]
    └─garage--enc--vg-home   ext4            c73b9432-ec32-412c-baa4-1329adef9c56   /home

관련 정보