sudoer가 LUKS 마스터 키를 변경하는 것을 방지하는 방법은 무엇입니까?

sudoer가 LUKS 마스터 키를 변경하는 것을 방지하는 방법은 무엇입니까?

과연 가능할지 확신할 수 없어 걱정되는 장면이 하나 있다. 다음과 같은 설정을 가진 컴퓨터가 있습니다.

  • LUKS 암호화 기본 시스템 파티션.
  • sudo 액세스 권한이 있는 사용자(sudoers 목록에 추가됨)
  • sudoer는 비밀번호를 모르기 때문에 루트로 로그인할 수 없으며 "sudo su"를 실행할 수 없습니다.
  • 시스템 관리자로서 루트 액세스 권한을 얻었습니다.

문제는 sudoer 사용자가 LUKS 마스터 키를 변경하는 것을 어떻게든 막거나 거부할 수 있습니까?

나는 그 사람의 dm-setup 또는 cryptsetup 실행을 거부할 수 있지만, 그 사람은 언제든지 파일을 이동하고 이름을 바꿀 수 있습니다. 또는 일부 라이브러리를 다운로드하고 MK를 변경하는 응용 프로그램을 직접 작성할 수도 있습니다. 커널 수준에서 dm-setup/cryptsetup 인터페이스의 Linux 작업을 수행하는 것을 방해하는 것이 있는지 궁금합니다.

그렇다면 사용자에게 sudoer 액세스 권한을 부여하면 LUKS 마스터 키를 그대로 유지할 수 있는 방법이 있습니까?

답변1

"루트로 로그인"과 "Sudo 액세스 권한 보유" 사이에 잘못된 이분법을 그리고 있습니다. 이것들은 다른 것으로 간주되어서는 안됩니다. 사용자의 루트 액세스 권한을 신뢰할 수 없다면 sudo를 사용하지 못하게 하세요! 어쨌든 명령을 차단하는 것만으로는 의미가 없습니다. 루트 쉘을 얻는 sudo su방법이 있거나 . 아니면 다른 방법도 백만 가지가 있습니다.sudo -ssudo bash

기본적으로 당신할 수 없다sudo 사용자가 할 수 없는 작업에 대한 블랙리스트를 만듭니다. 그것이 작동하는 방식이 아니기 때문에 당신은 실패할 것입니다. PID 1과 같은 몇 가지 항목에 액세스하면 시스템이 귀하의 것이 됩니다.

너 뭐야할 수 있는특정 프로세스를 화이트리스트에 추가하세요. 이러한 프로세스에는 사용자가 쓸 수 없는지, 임의의 명령 실행을 허용하는 방식으로 사용자 입력이나 인수를 허용하지 않는지 확인하세요. 많은 일반적인 UNIX 도구를 사용하면 어떤 방식으로든 임의의 명령을 실행할 수 있습니다. 하나의 작업을 수행하기 위해 sudo 액세스만 필요한 경우 좋은 접근 방식은 하나의 작업만 수행하고 인수를 사용하지 않으며 사용자가 루트로 스크립트를 실행할 수 있도록 허용하는 래퍼 스크립트를 만드는 것입니다.

답변2

통과되면마스터 키LUKS 컨테이너를 다시 작성하지 않고는 변경할 수 없는 콘텐츠 암호화에 사용되는 키를 의미합니다. 즉, 데이터에 액세스하기 위해 잠금을 해제하고, 데이터를 백업하고, LUKS 컨테이너를 다시 생성하고, 백업에서 복원합니다.

당신이 의미하는 경우마스터 키는 LUKS 컨테이너를 잠금 해제하는 데 사용되는 비밀번호 중 하나일 뿐입니다. 예, 변경할 수 있지만 먼저 기존 비밀번호를 알아야 합니다.

즉, 다른 사용자가 LUKS 키를 조작하는 것을 원하지 않으면 그 사용자에게 비밀번호를 알려주지 마십시오. 아무것도 하기 위해 sudo를 사용할 필요는 없습니다. 물론, LUKS 헤더가 손상되거나 변조된 경우 복원할 수 있도록 오프사이트 백업을 만드십시오.

관련 정보