암호화된 파티션과 네트워크의 다른 서버에 저장된 키 파일을 사용하여 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