저는 자체 생성 키와 tpm2 변수를 사용하여 부팅 시 하드 드라이브를 자동으로 해독하는 가이드를 따르고 있는데, 결국에는 이것이 의미가 있는 것처럼 보였습니다.https://blastrock.github.io/fde-tpm-sb.html#disable-the-magic-sysrq-key
마법의 SysRq 키를 사용하면 일부 특수 커널 작업을 실행할 수 있습니다. 가장 위험한 기능은 기본적으로 비활성화되어 있으므로 보안을 극대화하려면 해당 기능을 유지해야 합니다.
예를 들어, 그 중 하나(f)는 OOM-killer를 호출합니다. 이 기능은 잠금 화면을 종료하여 악의적인 사용자가 데스크탑에 대한 전체 액세스 권한을 부여할 수 있습니다.
문제는 비활성화하는 방법만 찾았다는 것입니다.모두sysrq 키(예:https://askubuntu.com/questions/911522/how-can-i-enable-the-magic-sysrq-key-on-ubuntu-desktop또는https://askubuntu.com/questions/11002/alt-sysrq-reisub-doesnt-reboot-my-laptop, /etc/sysctl.d/90-sysrq.conf
다음 줄을 사용하여 파일을 추가합니다.
kernel.sysrq=1
시스템이 충돌할 경우 가능하다면 REISUB와 같은 다른 모든 키를 사용하고 해당 키를 비활성화하고 싶습니다 F
.
저도 이 글을 발견했어요https://www.kernel.org/doc/html/latest/admin-guide/sysrq.html, 다음과 같은 비트마스크 추가를 언급합니다.
2 = 0x2 - enable control of console logging level
4 = 0x4 - enable control of keyboard (SAK, unraw)
8 = 0x8 - enable debugging dumps of processes etc.
16 = 0x10 - enable sync command
32 = 0x20 - enable remount read-only
64 = 0x40 - enable signalling of processes (term, kill, oom-kill)
128 = 0x80 - allow reboot/poweroff
256 = 0x100 - allow nicing of all RT tasks
그러나 sysrq-f만 비활성화하고 다른 모든 키를 기본값으로 설정하는 방법을 이해하지 못합니다.
내 노트북(debian 12)의 현재 설정은 다음과 같습니다.
$ grep -IirF sysrq /etc/sysctl.*
/etc/sysctl.conf:# 0=disable, 1=enable all, >1 bitmask of sysrq functions
/etc/sysctl.conf:# See https://www.kernel.org/doc/html/latest/admin-guide/sysrq.html
/etc/sysctl.conf:#kernel.sysrq=438
$ grep -IirF sysrq /etc/sysctl.d/*
/etc/sysctl.d/99-sysctl.conf:# 0=disable, 1=enable all, >1 bitmask of sysrq functions
/etc/sysctl.d/99-sysctl.conf:# See https://www.kernel.org/doc/html/latest/admin-guide/sysrq.html
/etc/sysctl.d/99-sysctl.conf:#kernel.sysrq=438
답변1
부팅 이후(initramfs 포함) 어떤 프로세스도 (아마도 명령을 통해) 아무것도 쓰지 않은 경우 /proc/sys/kernel/sysrq
기본값은 커널이 컴파일될 때 구성된 대로 설정됩니다.sysctl
다음을 통해 확인할 수 있습니다.
$ grep -i sysrq "/boot/config-$(uname -r)"
CONFIG_MAGIC_SYSRQ=y
CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x01b6
CONFIG_MAGIC_SYSRQ_SERIAL=y
CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE=""
나에게는 (Debian에서도) 기본적으로 활성화되어 있지만 438인 0x01b6 또는 0b110110110을 사용합니다.마스크.
현재 값을 확인하려면:
$ cat /proc/sys/kernel/sysrq
438
$ sysctl kernel.sysrq
kernel.sysrq = 438
2|4|16|32|128|256입니다.
2 = 0x2 - enable control of console logging level
4 = 0x4 - enable control of keyboard (SAK, unraw)
16 = 0x10 - enable sync command
32 = 0x20 - enable remount read-only
128 = 0x80 - allow reboot/poweroff
256 = 0x100 - allow nicing of all RT tasks
따라서 다음 사항에 더해:
8 = 0x8 - enable debugging dumps of processes etc.
64 = 0x40 - enable signalling of processes (term, kill, oom-kill)
비트마스크의 어떤 비트가 어떤 키에 대한 입력을 허용하는지 확인할 수 있습니다.drivers/tty/sysrq.c
커널 소스 코드에서.
f허용된SYSRQ_ENABLE_SIGNAL
그리고값 0x0040, 64보다 높은 것은 놀라운 일이 아닙니다.
이 비트는 또한 e(모든 작업 종료), j(모든 고정된 FS 고정 해제), i(모든 작업 종료)를 제어합니다.
따라서 을 제외한 모든 것을 활성화하는 것은 불가능합니다 f. 당신이 할 수 있는 최선 의 방법 e은 f446을 .ijcltpwzm/proc/sys/kernel/sysrq
그러나 시스템에 대한 쉘 액세스가 손실되는 일부 커널 관련 문제를 디버깅하거나 관리자가 아닌 사람이 키보드 또는 시스템 기본값에 연결된 직렬 회선에 물리적으로 액세스할 수 없는 경우에만 더 안전한 438에서 벗어날 것입니다. 값.
또한 sysrq_always_enabled
모든 제한 사항을 우회하는 커널 명령줄 인수에 유의하세요.