제목에서 알 수 있듯이 PXE 부팅을 사용하여 사용자 지정 서명 키로 CentOS7로 부팅하는 시스템을 설정하려고 합니다. 이 프로세스는 여러 가이드에서 채택되었지만 grub.cfg
요점은 의 grub을 사용한다는 것입니다 initramfs.gz
. tftpserver
이는 모두 GPG 서명을 통해 확인됩니다.
그러나 보안 부팅을 위해 자체 데이터베이스 키로 서명한 반면 Linux 커널은 올바르게 서명되지 않았다는 오류가 발생했습니다. grub
EFI 바이너리도 서명되어 있고 보안 부팅을 통해 확인되어야 하므로 키는 UEFI에 올바르게 설치되어야 합니다. 또한 명령줄을 통해 GPG 확인이 성공했는지 확인했는데 grub
성공했습니다.
나중에 나는 온라인에서 몇 가지 기사를 읽고 첫 번째 단계 부트로더로 shim을 사용해야 한다는 결론에 도달했습니다(그리고 동일한 데이터베이스 키로 서명해야 합니다). 따라서 Centos VM에서 복사하고 DHCP 서버가 shim을 가리키도록 하세요. 동일한 오류 메시지가 표시되므로 문제가 여전히 존재하지만 이제 위치도 제공됩니다.
error: ../../grub-core/loader/i386/efi/linux.c:215:/vmlinuz has invalid signature.
다른 버전일 수 있으므로 grub에서 해당 파일을 찾을 수 없는 것 같습니다. 내 검색이 나를 여기로 이끌었습니다.Red Hat 기사.
하지만 이 기사는 유료화되어 있습니다... 기사에 대한 액세스를 요청하는 것이 아닙니다(허용되는지 확실하지 않음). 이는 완전히 다른 질문일 수 있기 때문입니다. 또한 빌드 프로세스 중에 DER 암호화 키를 제공하여 직접 빌드해 보았지만 shim
아무 것도 바뀌지 않는 것 같습니다.
저도 이 기능을 처음 접했는데 shim
, MOK(Machine Operator Key)를 반드시 사용해야 하는지 아니면 DB 키로 서명하는 것만으로도 충분한지 잘 모르겠습니다.
혹시 나에게 조언을 해줄 수 있는 사람이 있나요? 감사해요
답변1
또한 CentOS, Clonezilla-live 및 기타 운영 체제를 PXE 부팅하고 클라이언트에서 보안 부팅을 활성화하도록 하는 PXE 환경을 구축하려고 합니다.
나는 이 가이드를 사용했다 https://docs.centos.org/en-US/8-docs/advanced-install/ Assembly_preparing-for-a-network-install/
따라서 CentOS를 부팅할 때 clonezilla를 부팅하려고 하면 제대로 작동하고 다음과 같은 메시지가 나타납니다. /Tftppath/clonezilla/vmlinuz has an valid sign
다양한 운영 체제를 안전하게 부팅할 수 있도록 자체 서명 shim, grub 및 커널 프로세스를 더 잘 이해하고 싶습니다.
진행하신 과정에 대해 좀 더 자세히 설명해주실 수 있나요? 감사해요! !
답변2
나는 그것을 해결했다. 그래서 내 문제는 shim
대부분의 방법이 자체 시스템에서 mokmanager를 사용하기 때문에 키를 수동으로 배포하는 방법을 이해하지 못한다는 것입니다 . 다른 시스템에서 부팅하려고 하므로 이 방법은 PXE에서는 작동하지 않습니다. 다양한 것을 시도하고 shim
소스 코드를 살펴본 후 다음에서 이것을 얻었습니다.아치스 위키, 이것은 보안 부팅에 관한 것입니다. 페이지에 에 대한 언급이 없었기 때문에 처음에는 관심을 끌지 못했습니다 PXE
. 업데이트를 더 쉽게 하기 위해 키를 사용하고 싶었습니다 shim
. 일반적으로 EFI 파티션을 사용하여 DER
인코딩된 공개 키를 FAT
파일 시스템 에 복사 할 수 있다는 문장이 있습니다 .
그래서 결국 서버 시스템 shim
에서 복사한 바이너리를 사용한 다음 EFI 파티션에 저장된 공개 키를 사용하여 Linux 커널과 바이너리를 인증했습니다. 또한 Microsoft/Windows/CentOS 서명을 사용하여 커널을 부팅할 수 있는지 확인하여 완전한 제어를 원하는 경우 이를 제거할 수도 있습니다.PXE
grub