Recuerdo haber leído que los servidores no tienen una GUI porque X11 es un riesgo de seguridad. ¿Por qué?
La documentación de la comunidad de Ubuntu explica las razones reales por las que no se recomienda ejecutar una GUI en un sistema de servidor de producción:
La mayoría de los desarrolladores de Ubuntu Server no recomiendan instalar X en un servidor. Hay varias razones para no instalar una GUI.
Algunas razones para no instalar una GUI incluyen:
- Tendrá más código sujeto a vulnerabilidades de seguridad, más paquetes que deben actualizarse y más tiempo de inactividad del servidor.
- X11 y los paquetes de escritorio no son compatibles con el ciclo de vida completo de 5 años de la versión del servidor LTS.
- El rendimiento puede verse afectado porque la GUI consumirá los recursos (memoria, espacio en el disco duro, CPU, etc.).
- Se recomienda instalar solo el software necesario en un servidor de producción.
- La GUI puede incluir otros servicios de red que son inapropiados para un servidor.
- Uno de los objetivos de Ubuntu Desktop Edition es facilitar a los usuarios el uso de Linux. Al instalar algunos entornos de escritorio, se instalarán servicios que quizás no desee específicamente. Por ejemplo, avahi-daemon , que se usa para ayudar a configurar las redes, agrega otro puerto abierto y puede introducir conflictos DNS no deseados con un dominio .local.
Entonces, para el servidor más seguro, es mejor no instalar una GUI.
"ServerGUI" de "Colaboradores del wiki de documentación de Ubuntu", reproducido aquí según lo permitido por CC-BY-SA 3.0 .
Contrariamente a una idea errónea algo común, X11 ser un servidor realmente no tiene nada que ver con por qué ejecutar una GUI en un servidor de producción no se considera ideal desde una perspectiva de seguridad. X11 prácticamente nunca está configurado de manera predeterminada para ser accesible a través de una red, en cualquier sistema operativo. Ninguna versión de Ubuntu ha hecho que X11 ejecute un servidor accesible en red en la configuración predeterminada. (Para acceder a X11 en Ubuntu a través de TCP, debe reenviarlo a través de SSH o configurar manualmente el servidor).
Además, incluso si X11 ejecutara un servidor accesible en red , esto no sería una razón para no tenerlo instalado en un sistema de servidor de producción. Cualquiera que ejecute un servidor de producción es presumiblemente capaz de configurarlo para sus necesidades y auditarlo para asegurarse de que no se ejecuten servicios no deseados. (Si no pueden, que supondrán una amenaza mucho mayor para su seguridad que se crearía por tener instalada una interfaz gráfica de usuario.) Aunque X11 tenía que tener un puerto de escucha en una interfaz de red física ( que no es el caso ), el puerto fácilmente podría ser bloqueado mediante la reconfiguración de la incorporada en netfilter
el uso iptables
(o una interfaz de alto nivel como ufw
).
Por el contrario, los problemas enumerados anteriormente no son tan fáciles de superar mediante la reconfiguración.
Cada proceso en ejecución es un riesgo de seguridad. Particularmente aquellos que escuchan en un puerto de red (X11 sí).
Una buena práctica general es no ejecutar nada en un servidor que no necesita estar allí, y X11 ciertamente no necesita estar en un servidor en el que se SSH.
Dudo que el artículo que leyó hablara de una vulnerabilidad específica en X11 (se habría solucionado si es así, las vulnerabilidades no tienden a quedarse sin reparar por mucho tiempo), sino más bien solo una buena práctica general.
fuente
-nolisten tcp
por defectoEsto se debe a que el sistema X Window presenta un grave riesgo de seguridad si no está debidamente asegurado. Una "pantalla" X11 es el servidor X11 que se ejecuta en su escritorio e incluye la pantalla, el teclado y el mouse. Si su pantalla X11 no es segura, permitirá que un programa que se ejecuta en cualquier lugar de Internet se conecte a ella y la conexión puede ser completamente invisible para usted. Una vez conectado, ese programa tiene acceso completo a su pantalla, lo que significa que puede:
NO se debe utilizar una regla general
xhost +
: deshabilita completamente la seguridad de su pantalla.Una buena manera es reenviar X es a través de
ssh
Tomado de : http://www2.slac.stanford.edu/computing/security/xwindow/
fuente
xhost +
comandoxhost +
sin-nolisten tcp
embargo, no se puede anular , solo te abre a cualquier conexión desde el host local.La verdadera razón es que los administradores pueden considerarse súper inteligentes al ejecutar cosas desde la línea de comandos. No hay riesgo de seguridad de ejecutar una GUI en el servidor Ubuntu.
fuente