X가 종료될 때 TTY에 대한 액세스 방지

X가 종료될 때 TTY에 대한 액세스 방지

/dev/tty1또는 xinitstartx라인이 id:3:initdefault:설정된 가상 콘솔에서 X 서버를 수동으로 시작한다고 가정합니다 /etc/inittab. X 서버가 실행되어 다른 가상 콘솔에 배치됩니다. 일반적으로 /dev/tty7. 얼마 후 나는 화면을 잠그고 xscreensaver --lock컴퓨터를 떠나기로 결정했습니다. 화면을 잠금 해제하려면 내 사용자의 비밀번호를 알아야 합니다. 이제 누군가가 실행 중인 X 서버를 종료하기로 결정하면 그 사람은 실행 중인 셸로 돌아가서 /dev/tty1거의 내 컴퓨터에 액세스할 수 있습니다. 일반적으로 X 서버는 Ctrl+Alt+Backspace초기 콘솔과 SIGTERM실행 중인 프로세스 로 전환하거나 종료할 수 있습니다 ^C.

이는 간단한 일입니다. 이는 이러한 일이 발생하는 것을 방지할 수 있는 간단한 방법이 있어야 함을 의미합니다. 나는 사용하고있다vlock/dev/tty1이를 방지하기 위해 가상 콘솔을 잠그려면 :

$ xinit && vlock || vlock

이제 X 서버가 반환되면(정상적이든 &&아니든 ||) 콘솔이 잠깁니다. 이는 최적의 솔루션이 아닐 수도 있습니다. 나는 읽었다이것스레드와이것다양한 솔루션을 설명하는 wiki 기사.

X 세션에서 가상 콘솔에 대한 이러한 접근을 방지하는 다른 방법은 무엇입니까? 위의 방법은 충분히 안전한가요? 시스템에서 이를 어떻게 방지합니까? 디스플레이 관리자를 사용하지 않을 것입니다.

답변1

다음을 추가하여 Xorg에서 콘솔 전환을 방지할 수 있습니다.Option "DontVTSwitch" "yes"Xorg 구성 파일에.

Ctrl+ Alt+를 방지하려면 Backspace다음을 추가해야 합니다.DontZapXorg 구성 파일에 대한 옵션입니다. 물론 이것이 콘솔에 대한 액세스를 완전히 차단하지는 않습니다. X드라이버 문제 등 어떤 이유로 종료 하더라도 공격자는 여전히 콘솔에 액세스할 수 있습니다.

exec startxbash를 startx로 대체하는 대신 사용할 수도 있습니다 startx. 이는 누군가가 중단할 수 있더라도 X콘솔에 액세스할 수 없음을 의미합니다. lightdm, kdm, gdm또는 같은 디스플레이 관리자를 사용할 수도 있으므로 xdmax 세션을 시작하는 데 기존 쉘 세션이 필요하지 않습니다.

답변2

내 항목은 다음과 같습니다 .profile.

# startx if on tty1 and tmux on tty2
if [[ -z "$DISPLAY" ]] && [[ $(tty) = /dev/tty1 ]]; then
    exec xinit -- :0 -novtswitch &>/dev/null &
    logout

  elif [[ $(tty) = /dev/tty2 ]]; then
    tmux -f $HOME/.tmux/conf new -s secured
fi

에 로그인하기로 선택한 경우 XTTY1을 사용합니다. TTY7에서 시작된 logout후 TTY1에서 로그 X아웃됩니다. 나는 사용한다xautolock그리고슬록내 화면 잠금 도구로.

X죽으면 빈 TTY7로 다시 덤프된 다음 다시 로그인하려면 6개의 활성 getty 중 하나로 전환해야 합니다.

관련 정보