Keinen display manager - Sicherheit?

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
chr.gogolin
Beiträge: 441
Registriert: 12.10.2005 23:09:28
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Keinen display manager - Sicherheit?

Beitrag von chr.gogolin » 12.04.2009 13:40:46

Auf meinem Notebook hatte ich als display manager immer gdm installiert. Da ich aber sowieso der einzige bin der den Rechner verwendet und auch immer nur einen window manager (xmonad) benutze und darüber hinaus gdm einen ganze Reihe von Abhängigkeiten mitbringt und auch noch ein paar Sekunden zum laden braucht habe ich Ihn von der Platte gefegt.

Meine X session starte ich jetzt mittels folgenden Eintrag in der ~/.bash_profile

Code: Alles auswählen

if [ -z "$DISPLAY" ] && [ $(tty) == /dev/tty1 ]; then
       startx -- -br
       exit
fi
Ich logge mich also in der Konsole auf tty1 ein und X wird gestartet. Nachdem X beendet wird werde ich automatisch im tty1 ausgeloggt. tty1 ist also sozusagen mein display manager.

Ich habe jetzt jedoch schon mehrfach gelesen dass der Verzicht auf einen display manager ein Sicherheitsrisiko darstellt. Das bezieht sich aber wohl nur auf die Methode X mittels startx aus der Konsole zu starten, oder?. Dann reicht ein einfaches strg-alt-backspace um einen screenlocker/Bildschirmschoner zu umgehen.

Ist meine Methode unbedenklich?
"Linux supports the notion of a command line or a shell for the same reason that only children read books with only pictures in them." - Bill Garrett

Benutzeravatar
peschmae
Beiträge: 4844
Registriert: 07.01.2003 12:50:33
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: nirgendwo im irgendwo

Re: Keinen display manager - Sicherheit?

Beitrag von peschmae » 12.04.2009 21:22:54

chr.gogolin hat geschrieben:Ist meine Methode unbedenklich?
Ich denke da hast du dasselbe Problem - zumindest bei den X-Lock Applikationen die ich verwende kann man noch auf die Konsole wechseln (und selbst wenn nicht ist es halt potentiell eine Frage des Tempos ob man genug schnell den Server killen und dann gleich ctrl-c drücken kann ;)).
Wenn du da jetzt das Script abbrichst (control-c) dann kriegst du wohl ein offenes Terminal.

Hab ich jetzt so aber zugegebenermasse nicht getestet ;)

MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy

chr.gogolin
Beiträge: 441
Registriert: 12.10.2005 23:09:28
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Re: Keinen display manager - Sicherheit?

Beitrag von chr.gogolin » 14.04.2009 02:38:10

OK, Ich sehe das Problem.

Man könnte das umgehen wenn man startx in einer screen session oder mittels nohup ausführen könnte, oder es aus der bash_profile z.B. mittels

Code: Alles auswählen

if [ -z "$DISPLAY" ] && [ $(tty) == /dev/tty1 ]; then
       startx -- -br &> /dev/null &
       disown %1
       exit
fi
aufrufen könnte, aber leider geht das nicht. X startet nicht.

Als Fehler erhalte ich bei allen Methoden:

Code: Alles auswählen

X: user not authorized to run the X server, aborting.
xinit: Server error
Warum? DIrekt auf der Konsole kann ich mittels

Code: Alles auswählen

startx & disown %1 ; exit
den gewünschten Effekt erzielen.

Edit: Im Arch-Forum werden unter [1] genau solche Methoden vorgeschlagen und bei anderen Leuten scheint das zu gehen...

[1] http://bbs.archlinux.org/viewtopic.php?id=57677&p=2
"Linux supports the notion of a command line or a shell for the same reason that only children read books with only pictures in them." - Bill Garrett

cosmac
Beiträge: 4579
Registriert: 28.03.2005 22:24:30

Re: Keinen display manager - Sicherheit?

Beitrag von cosmac » 14.04.2009 10:19:12

hallo,

irgendwie geht das gerade in die falsche Richtung: je komplizierter, umso angreifbarer. Wie wäre es mit "exec"? Damit startet die Login-Shell den Xserver, aber nicht als neuen Prozess. D.h. es gibt keine Shell mehr, wenn der Xserver beendet wird und was nicht da ist, kann auch nicht so leicht missbraucht werden. Das kann man schön mit "pstree" sehen.

Code: Alles auswählen

if [ -z "$DISPLAY" ] && [ $(tty) == /dev/tty1 ]; then
   exec xinit -- -br -nolisten tcp
fi
xinit statt startx geht ein klein wenig schneller, startx ruft auch xinit auf, wertet aber vorher noch diverse Systemweite Einstellungen aus -- Geschmackssache.

Mit exec sollte auch "user not authorized to run the X server" kein Problem mehr sein. Wenn doch: das wird bei Debian mit "dpkg-reconfigure x11-common" eingestellt. Per Default kann der Xserver nur direkt von der Console gestartet werden, auch wieder aus Sicherheitsgründen.
Beware of programmers who carry screwdrivers.

chr.gogolin
Beiträge: 441
Registriert: 12.10.2005 23:09:28
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Re: Keinen display manager - Sicherheit?

Beitrag von chr.gogolin » 15.04.2009 12:19:38

Sehr gut, funktioniert einwandfrei!
An 'exec' hatte ich gar nicht gedacht...

Danke!
"Linux supports the notion of a command line or a shell for the same reason that only children read books with only pictures in them." - Bill Garrett

Antworten