Linux – Sicherheit – startx – CTRL+C, CTRL+ALT+BACKSPACE und SysRQ

In den letzten Tagen habe ich mich mal wieder mit Arch Linux und dem Fenstermanager Openbox auseinander gesetzt. Viele werden Arch Linux, genauso wie ich, ohne Login-Manger benutzen – d.h. man loggt sich auf der ersten virtuellen Konsole (tty1) ein und startet dann mit dem Befehl startx den X-Server – sollte er nicht schon von alleine über die .bashrc starten.

if [ -z "$DISPLAY" ] && [ $(tty) == /dev/tty1 ] ; then
startx
fi

In den meisten Fällen wird nun über die .xinitrc der Fenstermanager, in meinem Fall Openbox, gestartet.

# start ConsoleKit, DBUS and OpenBox
exec ck-launch-session dbus-launch --sh-syntax --exit-with-session openbox-session

archlinux openbox 650x373 - Linux - Sicherheit - startx - CTRL+C, CTRL+ALT+BACKSPACE und SysRQ

Jetzt habe ich immer, wenn ich mal nicht am Platz war, ein Meeting hatte oder eine Raucherpause eingelegt habe, meinen Bildschirm über den XScreenSaver gesperrt. Irgendwann hatte sich der Bildschirmschoner aufgehangen und ich musste ihn über eine virtuelle Konsole (STRG+ALT+[F1-F6]) beenden. Währenddessen kam mir in den Sinn, dass einfach jemand trotz gesperrten Bildschirms auf das tty1 (erste virtuelle Konsole) wechseln und den X-Server mit STRG-C beenden kann, um dann als User die Linux-Kiste unsicher zu machen – das geht mal garnicht!

UPDATE_2012-05-23: Sollte ihr den X-Server über die /etc/inittab (Runlevel 5) starten, …

x:5:once:/bin/su USERNAME -l -c "/bin/bash -login -c startx"

… muss die virtuelle Konsole nicht über vlock abgesichert werden – weil kein Login auf dem TTY stattfindet. /UPDATE_ENDE

Also habe ich mich nach einer Lösung umgeschaut und bin auf das kleine Programm vlock gestoßen.

vlock ist ein Programm zum Sperren von einer oder mehreren Sitzungen in der Linux-Konsole… [Pro-Linux]

apt-get install vlock
# oder
pacman -S vlock

Ich habe dann meine .bashrc bearbeitet und eine neue Funktion startx hinzugefügt.  mrgreen - Linux - Sicherheit - startx - CTRL+C, CTRL+ALT+BACKSPACE und SysRQ

startx() {
nohup startx "$@" > /dev/null 2>&1 &
disown
vlock
}

archlinux openbox vlock - Linux - Sicherheit - startx - CTRL+C, CTRL+ALT+BACKSPACE und SysRQ

Nun am Besten einen Neustart durchführen oder die .bashrc neu einlesen (source .bashrc) lassen. Nachdem der X-Server gestartet ist, wird die virtuelle Konsole automatisch gesperrt und erst nach der Eingabe des User- oder Root-Passwortes entsperrt.

In diesem Zuge habe ich STRG+ALT+BACKSPACE zum Neustarten des X-Servers und SysRQ deaktiviert. Magic SysRQ ist seit Ubuntu 10.10 und Arch Linux standardmäßig deaktiviert – prüfen kann man es mit …

cat /proc/sys/kernel/sysrq

Antwortet das Linux-System mit 0 – ist SysRQ deaktiviert. Unter Arch Linux ist es in der Datei /etc/sysctl.conf konfiguriert.

cat /etc/sysctl.conf | grep -i sysrq
# Disable the magic-sysrq key (console security issues)
kernel.sysrq = 0

STRG+ALT+BACKSPACE deaktiviert man in der X-Server Konfiguration (sollte ab X-Server Version 1.6 standardmäßig deaktiviert sein).

Section "ServerFlags"
Option "DontZap" "true"
EndSection

Quellen:
ubuntuusers.de – Magic SysRQ
0x7e.org – securing your xsession when using startx
archlinux.org – Lock screen without display manager, can still change tty

Veröffentlicht von

_nico

Mac-User aus Leidenschaft, Blogger seit Oktober 2009, 88er Baujahr, technikaffin. Ich fühle mich aber nicht nur auf Apple'schen Betriebssystemen zu Hause, alles was eine Shell hat, interessiert mich besonders! Ihr findet mich auch auf Twitter und Google+.

12 Gedanken zu „Linux – Sicherheit – startx – CTRL+C, CTRL+ALT+BACKSPACE und SysRQ“

  1. Also ich verwende LightDM als Displaymanager (Standard ab Ubuntu 11.10), und wenn man da den Bildschirm sperrt, kann man immer noch auf eine virtuelle Konsole wechseln und dort – wenn ein User eingeloggt ist – sein Unwesen treiben. vlock ist da schon ganz praktisch.

  2. Hm.
    Habe mir das von vornehrein komfortabler gestaltet:
    Ich habe als Login-Manager gdm installiert und diesen einfach in der /etc/rc.conf bei „Daemons = (… … … gdm)“ als letztes eingetragen (so dass er als letztes gestartet wird).
    D.h. ich lande direkt beim Start schon bei gdm, muss kein „startx“ mehr benutzen und logge mich ausschließlich dort (tty7) ein. Wenn also mein Bildschirmschoner läuft, hilft auch ein Wechsel in die anderen Konsolen nicht, da ich dort gar nicht eingeloggt bin.

    Theoretisch müsste das doch auch mit jedem anderen grafischen Login-Manager funktionieren?

    Grüße,

  3. Du kannst auch „exec startx“ statt „startx“ benutzen. Dann wird die komplette Shell durch startx ersetzt und nach Beenden von X (wie auch immer) kehrt die Konsole direkt zum Login-Prompt zurück.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert