Product SiteDocumentation Site

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 [36].
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).
Leggete di più sulla sicurezza di X Window in http://www.tldp.org/HOWTO/XWindow-User-HOWTO.html (/usr/share/doc/HOWTO/en-txt/XWindow-User-HOWTO.txt.gz).
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.


[36] Gdm will not append -nolisten tcp if it finds a -query or -indirect on the command line since the query wouldn't work.