Verhindern des Zugriffs auf TTY, wenn X beendet wird

Verhindern des Zugriffs auf TTY, wenn X beendet wird

Angenommen, ich starte einen X-Server manuell von einer virtuellen Konsole aus /dev/tty1mit xinitoder startx, wobei die Zeile id:3:initdefault:in gesetzt ist /etc/inittab. Der X-Server wird ausgeführt und auf eine andere virtuelle Konsole gesetzt, normalerweise /dev/tty7. Nach einiger Zeit beschließe ich, den Bildschirm mit zu sperren xscreensaver --lockund meinen Computer zu verlassen. Um den Bildschirm zu entsperren, müsste man mein Benutzerkennwort kennen. Wenn sich nun jemand entscheidet, den laufenden X-Server zu beenden, würde er oder sie zur Shell zurückkehren, die unter ausgeführt wird, /dev/tty1und hätte praktisch Zugriff auf meinen Computer. Normalerweise kann der X-Server mit Ctrl+Alt+Backspaceoder beendet werden, indem zur anfänglichen Konsole und SIGTERMzum laufenden Prozess mit gewechselt wird ^C.

Das ist trivial - was bedeutet, dass es triviale Möglichkeiten geben muss, dies zu verhindern. Ich verwendevlockum meine virtuelle Konsole zu sperren /dev/tty1und dies zu verhindern:

$ xinit && vlock || vlock

Wenn der X-Server nun zurückkehrt, ob ordnungsgemäß &&oder nicht ||, wird die Konsole gesperrt. Dies ist möglicherweise nicht die optimale Lösung. Ich habe gelesenDasFaden undDasWiki-Artikel, der verschiedene Lösungen erklärt.

Welche anderen Methoden gibt es, um diese Art des Zugriffs auf virtuelle Konsolen aus X-Sitzungen heraus zu verhindern? Ist die obige Methode sicher genug? Wie verhindern Sie dies auf Ihrem System? Ich werde keinen Display-Manager verwenden.

Antwort1

Sie können Console Switches von Xorg verhindern, indem Sie denOption "DontVTSwitch" "yes"zu Ihrer Xorg-Konfigurationsdatei.

CtrlUm + Alt+ zu verhindern Backspace, müssen Sie dieDontZapOption zu Ihrer Xorg-Konfigurationsdatei hinzufügen. Natürlich wird dies den Zugriff auf die Konsole nicht vollständig verhindern. Wenn der XVorgang aus irgendeinem Grund beendet wird, z. B. aufgrund eines Treiberproblems, hat der Angreifer weiterhin Zugriff auf Ihre Konsole.

exec startxSie können auch anstelle von verwenden startx, wodurch bash durch startx ersetzt wird. Dies bedeutet, dass selbst wenn jemand abbrechen kann, Xer nicht auf Ihre Konsole zugreifen kann. Sie können auch einen Display-Manager wie lightdm, kdm, gdm, oder verwenden xdm, sodass Sie keine vorhandene Shell-Sitzung benötigen, um eine Ax-Sitzung zu starten.

Antwort2

Ich habe folgenden Eintrag in meiner .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

Wenn ich mich anmelde X, verwende ich TTY1. Das logoutstellt sicher, dass Xich nach dem Start von auf TTY7 von TTY1 abgemeldet werde. Ich verwendexautolockUndschlackeals meine Bildschirmsperrtools.

Wenn Xes beendet wird, werde ich auf ein leeres TTY7 zurückgeleitet und muss dann zu einem der sechs aktiven Gettys wechseln, um mich wieder anzumelden.

verwandte Informationen