Risposte:
La documentazione della comunità di Ubuntu spiega i veri motivi per cui non è consigliabile eseguire una GUI su un sistema server di produzione:
La maggior parte degli sviluppatori di Ubuntu Server non consiglia l'installazione di X su un server. Esistono diversi motivi per non installare una GUI.
Alcuni motivi per non installare una GUI includono:
- Avrai più codice soggetto a vulnerabilità di sicurezza, più pacchetti che devono essere aggiornati e più tempi di inattività del server.
- I pacchetti X11 e desktop non sono supportati per l'intero ciclo di vita di 5 anni della versione del server LTS.
- Le prestazioni potrebbero risentirne perché le risorse (memoria, spazio su disco rigido, CPU, ecc.) Verranno consumate dalla GUI.
- È consigliabile installare solo il software necessario su un server di produzione.
- La GUI può includere altri servizi di rete inappropriati per un server.
- Uno degli obiettivi di Ubuntu Desktop Edition è rendere più semplice l'utilizzo di Linux da parte degli utenti. Quando si installano alcuni ambienti desktop, verranno installati i servizi che potrebbero non essere specificamente desiderati. Ad esempio avahi-daemon , che viene utilizzato per configurare la rete, aggiunge un'altra porta aperta e può introdurre conflitti DNS indesiderati con un dominio .local.
Quindi per il server più sicuro è meglio non installare una GUI.
"ServerGUI" di "Collaboratori al wiki della documentazione di Ubuntu", riprodotto qui come consentito da CC-BY-SA 3.0 .
Contrariamente a un malinteso piuttosto comune, X11 essendo un server non ha davvero nulla a che fare con il motivo per cui l'esecuzione di una GUI su un server di produzione è considerata non ideale dal punto di vista della sicurezza. X11 non è praticamente mai configurato per impostazione predefinita per essere accessibile su una rete, su qualsiasi sistema operativo. In nessuna versione di Ubuntu X11 ha mai eseguito un server accessibile in rete nella configurazione predefinita. (Per accedere a X11 su Ubuntu tramite TCP, è necessario inoltrarlo tramite SSH o riconfigurare manualmente il server.)
Inoltre, anche se X11 avesse eseguito un server accessibile in rete , questo non sarebbe un motivo per non installarlo su un sistema server di produzione. Chiunque esegua un server di produzione è presumibilmente in grado di configurarlo in base alle proprie esigenze e di verificarlo per assicurarsi che i servizi indesiderati non siano in esecuzione. (Se non possono, che potranno costituire una minaccia molto maggiore per la loro sicurezza di quanto sarebbe creato da avere una GUI installato.) Anche se X11 doveva avere un ascolto porta su un'interfaccia di rete fisica ( che non è il caso ), la porta potrebbe essere facilmente bloccato riconfigurando il built-in netfilter
usando iptables
(o un frontend di livello superiore come ufw
).
Al contrario, i problemi sopra elencati non sono così facili da superare con la riconfigurazione.
Ogni processo in esecuzione è un rischio per la sicurezza. In particolare quelli che ascoltano su una porta di rete (X11 lo fa).
La buona pratica generale è di non eseguire nulla su un server che non ha assolutamente bisogno di essere lì, e X11 certamente non ha bisogno di essere su un server in cui SSH.
Dubito che l'articolo che hai letto parlava di una specifica vulnerabilità in X11 (sarebbe stato corretto in tal caso, le vulnerabilità non tendono a rimanere in sospeso per molto tempo), ma piuttosto solo buone pratiche generali.
-nolisten tcp
di default
Questo perché il sistema X Window presenta un grave rischio per la sicurezza se non è adeguatamente protetto. Un "display" X11 è il server X11 in esecuzione sul desktop e include lo schermo, la tastiera e il mouse. Se il tuo display X11 non è sicuro, consentirà a un programma in esecuzione ovunque su Internet di connettersi ad esso e la connessione potrebbe essere completamente invisibile per te. Una volta connesso, quel programma ha pieno accesso al tuo display, il che significa che può:
Una regola del pollice NON è da utilizzare xhost +
: disabilita completamente la sicurezza del display.
Un buon modo è inoltrare X attraverso ssh
Tratto da : http://www2.slac.stanford.edu/computing/security/xwindow/
xhost +
comando
xhost +
non può ignorare -nolisten tcp
, basta aprirti a qualsiasi connessione dal localhost.
Il vero motivo è che gli amministratori possono pensare a se stessi come super intelligenti eseguendo roba dalla riga di comando. Non vi è alcun rischio per la sicurezza di eseguire una GUI sul server Ubuntu.