Manovrare X da remoto: differenze tra le versioni
(configurazione lato server e utilizzo lato client (lanciando X direttamente)) |
m (aggiunta categoria e template) |
||
Riga 1: | Riga 1: | ||
{{Guida da adottare|[[Utente:HAL 9000|HAL 9000]]}} | {{Guida da adottare|[[Utente:HAL 9000|HAL 9000]]}}{{Versioni compatibili|Wheezy|Jessie}} | ||
== Introduzione == | == Introduzione == | ||
Nelle distribuzioni GNU/Linux e in generale nei sistemi UNIX e Unix-like l'interfaccia grafica (''GUI'') non è parte del kernel ma gestita da un programma a parte: l' ''X window system'' o semplicemente server '''X''', di cui [[Xorg]] rappresenta l'implementazione attualmente più diffusa. | Nelle distribuzioni GNU/Linux e in generale nei sistemi UNIX e Unix-like l'interfaccia grafica (''GUI'') non è parte del kernel ma gestita da un programma a parte: l' ''X window system'' o semplicemente server '''X''', di cui [[Xorg]] rappresenta l'implementazione attualmente più diffusa. | ||
Riga 139: | Riga 139: | ||
* [http://www.tldp.org/HOWTO/XDMCP-HOWTO Linux XDMCP HOWTO] | * [http://www.tldp.org/HOWTO/XDMCP-HOWTO Linux XDMCP HOWTO] | ||
[[Categoria:Xorg]] | {{Autori | ||
|Autore = [[Utente:HAL 9000|HAL 9000]] 16:36, 5 dic 2015 (CET) <br/>(guida originariamente scritta da [[Utente:MaXeR|MaXeR]]) | |||
}} | |||
[[Categoria:Xorg]][[Categoria:Altri servizi di rete]] |
Versione delle 15:36, 5 dic 2015
Guida adottata da HAL 9000 |
Attenzione. Questa guida è da considerarsi abbandonata, per via del tempo trascorso dall'ultima verifica.
Potrà essere resa obsoleta, previa segnalazione sul forum, se nessuno si propone per l'adozione. |
Versioni Compatibili Debian 7 "wheezy" Debian 8 "jessie" |
Introduzione
Nelle distribuzioni GNU/Linux e in generale nei sistemi UNIX e Unix-like l'interfaccia grafica (GUI) non è parte del kernel ma gestita da un programma a parte: l' X window system o semplicemente server X, di cui Xorg rappresenta l'implementazione attualmente più diffusa.
Le richieste dai client X di gestire le finestre avvengono di solito localmente, ma nulla impedisce di gestire le finestre attraverso la rete, permettendo a utenti remoti di effettuare il login sul display manager (xdm
, gdm
, kdm
, lightdm
, ecc...) per accedere al server X locale attraverso XDMCP (X Display Manager Control Protocol).
Per semplicità di configurazione, e per la stabilità dimostrata attraverso i passaggi di versione di Debian, in questa guida si considera unicamente xdm
.
ATTENZIONE Ogni comunicazione da e verso il server X avverrebbe in chiaro, e sarebbe pertanto manipolabile e/o ascoltabile sulla rete. Questo rappresenta un enorme rischio per la sicurezza del sistema! Se è possibile, si raccomanda caldamente invece di configurare una connessione SSH e di abilitare l'X11 forwarding per avviare un'applicazione grafica o anche un'intera sessione. |
Lato server
Installazione
Con privilegi di amministrazione è necessario installare xdm
, oltre ovviamente al server Xorg, se ancora non presente nella macchina che farà da server. Per esempio con apt-get basta:
# apt-get install xdm xorg
Configurazione di xdm
Sempre con privilegi di amministrazione, è sufficiente modificare i file di configurazione indicati in questa sezione con un editor di testo, per esempio nano:
# nano /etc/X11/xdm/xdm-config
In /etc/X11/xdm/xdm-config
commenta:
DisplayManager.requestPort: 0
che diventa:
!DisplayManager.requestPort: 0
Salva il file (con nano
premi Ctrl-o
e per uscire Ctrl-x
).
In modo analogo, apri il file /etc/X11/xdm/Xaccess
e togli il comento a:
#* #any host can get a login window
che diventerà:
* #any host can get a login window
Al posto di *
è possibile anche specificare, uno a uno, gli host da cui si intende accettare la connessione, anche con uso di pattern. Per esempio basta scrivere (al posto di *
):
192.168.0.*
per accettare connessioni dagli host appartenenti alla rete 192.168.0.0/24
, ossia tutti gli indirizzi compresi da 192.168.0.1
a 192.168.0.254
. Sono permessi anche hostname, per esempio se definiti in /etc/hosts
, e l'uso di indirizzi multicast a cui limitare l'ascolto. Per maggiori informazioni si consultino gli esempi scritti nel file.
Per finire è necessario specificare di restare in ascolto sulla porta TCP, modificando il file /etc/X11/xdm/Xservers
:
:0 local /usr/bin/X :0 vt8 -nolisten tcp
che diventerà:
:0 local /usr/bin/X :0 vt8
dove:
:0
è l'identificativo del server X che sarà avviato e dev'essere libero; se ce n'è già uno in esecuzione, utilizzarne un altro (:1
,:2
, ecc...);- vt8 è il terminale virtuale da utilizzare, in questo caso
tty8
(accessibile conCtrl-Alt-F8
). Sceglierne uno qualsiasi libero (vt9
,vt10
, ecc...).
È possibile anche specificare più linee, se si intendono avviare più server X simultaneamente. In tal caso è consigliabile lasciare l'opzione -nolisten tcp
su quelli per cui non è previsto l'accesso remoto, come misura di sicurezza.
Per rendere effettive le modifiche, è necessario riavviare il display manager:
# service xdm restart
e questo conclude la configurazione lato server. xdm
resterà in ascolto sulla porta 177 del protocollo UDP per ricevere richieste di autenticazione, secondo il protocollo XDMCP, dagli host specificati nel file Xaccess
. Il server Xorg
resta invece in ascolto sulla porta 6000 del protocollo TCP e successive, in base al display utilizzato, e permetterà l'accesso soltanto previa autenticazione, di default in base alla conoscenza di una sequenza casuale generata in precedenza: il magic cookie (per maggiori informazioni si rimanda alla lettura del manuale di xauth
), comunicato da xdm
per permettere l'autenticazione.
Lato client
Installazione
È necessario il solo pacchetto xorg
, per cui se non fosse installato, con privilegi di amministrazione:
# apt-get install xorg
Utilizzo
Se l'indirizzo IP del server è 192.168.0.2
, dal client sarà sufficiente il comando:
# X -query 192.168.0.2 :0 vt8
per connettersi a xdm
sulla macchina server. Si noti che il display e il terminale virtuale non devono combaciare per forza con quelli scelti sul server, l'unica cosa importante è che siano entrambi liberi sul client, in maniera analoga a quanto visto in precedenza per il server.
In alternativa, se si è nella stessa rete locale del server, è anche possibile:
# X -broadcast :0 vt8
per mandare il messaggio di richiesta in broadcast (ossia a tutti gli host della rete), per effettuare la connessione al server X del primo host che risponde.
Altro
TODO: da sistemare (per ora commentato)
Link
- What is X?: interessante articolo che parte dalle basi del funzionamento fino agli utilizzi più avanzati del server X in remoto;
- Linux XDMCP HOWTO
Guida scritta da: HAL 9000 16:36, 5 dic 2015 (CET) (guida originariamente scritta da MaXeR) |
Debianized 20% |
Estesa da: | |
Verificata da: | |
Verificare ed estendere la guida | Cos'è una guida Debianized |