5.4. Rendere sicuro l'accesso al sistema X Window
Oggi, i terminali X vengono usati da numerose e svariate compagnie, con il sistema X Window è necessario un solo server per numerose postazioni singole. Questo potrebbe essere pericoloso perché è necessario permettere al file server di connettersi ai client (X server dal punto di vista di X. X scambia le solite definizioni di client e server). Se seguirete il (pessimo) suggerimento di numerosi documenti, digiterete xhost +
sulla vostra macchina. Questo permette ad ogni client X di connettersi al sistema. Per una piccola miglioria di sicurezza, potrete invece usare il comando xhost +hostname
per permettere l'accesso da specifici host.
Una soluzione più sicura, credo, è quella di usare ssh per creare un tunnel per X e cifrare l'intera sessione. Questo viene fatto automaticamente quando vi connettete via ssh ad un'altra macchina. Perché questo funzioni dovete configurare sia il client che il server ssh. Per il client ssh dovrete abilitare ForwardX11
con un yes
in /etc/ssh/ssh_config
. Per il server ssh, invece, dovrete mettere un yes
in /etc/ssh/sshd_config
a fianco di X11Forwarding
e il package xbase-clients dovrebbe essere installato perché il server ssh usi /usr/X11R6/bin/xauth
(/usr/bin/xauth
su Debian instabile) nel momento in cui configura uno pseudo display X. Con SSH, dovreste aggirare completamente il controllo dell'accesso con xhost.
Per una migliore sicurezza, se non avete bisogno di accedere ad X da altre macchine tagliate il legame alla porta TCP 6000 semplicemente digitando:
$ startx -- -nolisten tcp
Questo è il comportamento predefinito in Xfree 4.1.0 (il server X fornito da Debian 3.0). Se state eseguendo Xfree 3.3.6 (cioè se avete Debian 2.2 installata) potete modificare
/etc/X11/xinit/xserverrcc
per avere qualcosa di simile a:
#!/bin/sh
exec /usr/bin/X11/X -dpi 100 -nolisten tcp
If you are using XDM set
/etc/X11/xdm/Xservers
to:
:0 local /usr/bin/X11/X vt7 -dpi 100 -nolisten tcp
. If you are using Gdm make sure that the
DisallowTCP=true
option is set in the
/etc/gdm/gdm.conf
(which is the default in Debian). This will basically append
-nolisten tcp
to every X command line
.
Potete anche impostare il timeout di sistema predefinito per il lock dello
xscreensaver
. Anche se l'utente può sovrascriverla, dovreste modificare la configurazione
/etc/X11/app-defaults/XScreenSaver
e cambiare la riga del lock:
*lock: False
(che è il predefinito di Debian) in:
*lock: True
FIXME: aggiungere informazioni su come disabilitare gli screensaver che mostrano il desktop dell'utente (che potrebbe avere informazioni sensibili).
FIXME: Aggiungere informazioni prese da un thread di debian-security su come fare a cambiare i file di configurazione di XFree 3.3.6.
5.4.1. Controllare il display manager
Se avete un display manager installato per uso locale (avete cioè un piacevole login grafico), assicuratevi che XDMCP (Protocollo di controllo per il Display Manager di X) sia disabilitato. In XDM questo si può ottenere agendo sulla riga in
/etc/X11/xdm/xdm-config
:
DisplayManager.requestPort: 0
Per GDM ci dovrebbe essere questo nel vostro gdm.conf:
[xdmcp]
Enable=false
Di norma, in Debian, tutti i display manager vengono configurati per non lanciare servizi XDMCP.