나는 새로운 Debian Stretch 설치를 설정하고 있는데, 이것은 나에게 약간 새로운 것입니다. 저는 Linux를 꽤 많이 사용하지만 실제로 서버 관리자가 된 적은 없습니다. 이 시스템 또는 적어도 일부 서비스는 외부 세계에 공개되므로 최대한 안전하게 유지하고 싶습니다. 아시다시피 이것은 모두 "인터넷"이라는 의미에서 볼 수 있습니다. 나는 은행 금고에 살고 있지 않기 때문에 누군가가 내 집에 도둑질을 할 수도 있다는 것은 전적으로 상상할 수 있는 일입니다.
크기가 512MB인 마더보드에 "납땜된" 상자에는 USB 메모리가 있습니다. /boot 파티션을 거기에 넣고 싶고 다른 모든 파티션은 LUKS를 사용하여 암호화되고 상단에 LVM을 사용하여 파티션을 처리하는 2x4tb 드라이브가 있는 RAID1 어레이에 있게 됩니다. 이 모든 것이 나에게는 꽤 좋은 생각처럼 보이지만 시스템을 재부팅할 때마다 암호화 비밀번호를 입력하지 않아도 되는 방법을 찾고 있었습니다. 따라서 분명한 질문은 전체 설정에 영향을 주지 않고 비밀번호나 키를 저장하는 방법입니다.
(내 생각에는 새로운 것이 아닌) 아이디어는 암호화된 드라이브를 마운트하기 위해 서버의 USB 슬롯 중 하나에 물리적으로 삽입해야 하는 USB 스틱(일명 USB 키)에 키를 넣는 것입니다. USB 키를 무작위 데이터로 채우고 파일 시스템을 사용하지 않고 USB 키를 암호화하지 않고(이 경우 비밀번호를 입력해야 함) 보안 수준을 높이는 방법도 찾았습니다. 이를 블록 장치로 마운트하고 사용하여 임의의 쓰레기의 임의 하위 집합을 키로 사용합니다. 다 좋은데 어디서부터 시작해야 할지 막막합니다.
1) 암호화된 드라이브를 마운트하기 전에 데비안이 USB 스틱을 마운트하도록 강제하는 방법은 무엇입니까? 아마도 메모리를 블록 장치로 마운트하고, 메모리에서 읽어야 할 모든 항목을 읽고, 마운트 해제한 다음, 읽은 데이터를 사용하여 암호화된 드라이브를 마운트하는 쉘 스크립트를 작성할 수 있을 것입니다. 그런데 어디에 연결해야 하나요?
2) USB 키가 올바른 데이터와 함께 나타날 때까지 시작을 멈추고 기다릴 수 있습니까(무기한 또는 잠시 후 포기하고 종료)? 아니면 /boot 파티션만 사용하여 계속 부팅하다가 비참하게 실패하게 될까요?
3) 부팅 시 USB 키만 필요하도록 만들 수 있는데, 암호화된 FS를 설치한 후 USB 키를 터미널에 넣지 않고도 안전하게 제거할 수 있나요(물론 다음 재부팅 때까지)?