Respostas:
A documentação da comunidade do Ubuntu explica os reais motivos pelos quais não é recomendável executar uma GUI em um sistema de servidor de produção:
A maioria dos desenvolvedores do Ubuntu Server não recomenda instalar o X em um servidor. Existem vários motivos para não instalar uma GUI.
Alguns motivos para não instalar uma GUI incluem:
- Você terá mais código sujeito a vulnerabilidades de segurança, mais pacotes que precisam de atualização e mais tempo de inatividade do servidor.
- Os pacotes X11 e desktop não são suportados pelo ciclo de vida completo de 5 anos da versão do servidor LTS.
- O desempenho pode sofrer porque os recursos (memória, espaço no disco rígido, CPU etc.) serão consumidos pela GUI.
- É uma prática recomendada instalar apenas o software necessário em um servidor de produção.
- A GUI pode incluir outros serviços de rede que são inadequados para um servidor.
- Um dos objetivos do Ubuntu Desktop Edition é facilitar o uso do Linux pelos usuários. Ao instalar alguns ambientes de área de trabalho, os serviços que você pode não querer especificamente serão instalados. Por exemplo, o avahi-daemon , usado para ajudar a configurar a rede, adiciona outra porta aberta e pode introduzir conflitos indesejados de DNS com um domínio .local.
Portanto, para o servidor mais seguro, é melhor não instalar uma GUI.
"ServerGUI" por "Contribuintes para a wiki de documentação do Ubuntu", reproduzido aqui conforme permitido pelo CC-BY-SA 3.0 .
Ao contrário do equívoco bastante comum, o X11 ser um servidor realmente não tem nada a ver com o motivo pelo qual a execução de uma GUI em um servidor de produção é considerada não ideal do ponto de vista da segurança. O X11 praticamente nunca é configurado por padrão para ficar mais acessível em uma rede, em qualquer sistema operacional. Nenhuma versão do Ubuntu já teve o X11 executando um servidor acessível em rede na configuração padrão. (Para acessar o X11 no Ubuntu via TCP, você deve encaminhar através do SSH ou reconfigurar manualmente o servidor.)
Além disso, mesmo se o X11 executasse um servidor acessível pela rede , isso não seria um motivo para não instalá-lo em um sistema de servidor de produção. Qualquer pessoa que esteja executando um servidor de produção provavelmente é capaz de configurá-lo para suas necessidades e auditá-lo para garantir que serviços indesejáveis não estejam em execução. (Se não puderem, isso representará uma ameaça muito maior à segurança do que seria criado com a instalação de uma GUI.) Mesmo se o X11 tivesse que ter uma porta escutando em uma interface de rede física (o que não é o caso ), a porta pode ser facilmente bloqueado reconfigurando o built-in netfilter
usando iptables
(ou um frontend de nível superior ufw
).
Por outro lado, os problemas listados acima não são tão fáceis de superar pela reconfiguração.
Todo processo em execução é um risco à segurança. Especialmente aqueles que escutam em uma porta de rede (o X11 faz).
A boa prática geral é não executar nada em um servidor que não precise estar absolutamente lá, e o X11 certamente não precisa estar em um servidor no qual você fará o SSH.
Duvido que o artigo que você leu estivesse falando sobre uma vulnerabilidade específica no X11 (teria sido corrigido, se for o caso, as vulnerabilidades não tendem a permanecer sem correção por muito tempo), mas apenas como boas práticas gerais.
-nolisten tcp
por padrão
Isso ocorre porque o sistema X Window representa um sério risco de segurança se não estiver adequadamente protegido. Um "monitor" X11 é o servidor X11 em execução na área de trabalho e inclui a tela, o teclado e o mouse. Se o seu monitor X11 for inseguro, permitirá que um programa em execução em qualquer lugar da Internet se conecte a ele e a conexão poderá ficar completamente invisível para você. Uma vez conectado, esse programa tem acesso total ao seu monitor, o que significa que ele pode:
Uma regra de polegar NÃO deve ser usada xhost +
- desativa completamente a segurança do seu monitor.
Uma boa maneira é encaminhar X é através ssh
Retirado de : http://www2.slac.stanford.edu/computing/security/xwindow/
xhost +
comando
xhost +
não pode substituir -nolisten tcp
, basta abrir você para qualquer conexão do host local.
A verdadeira razão é que os administradores podem se considerar super inteligentes executando coisas na linha de comando. Não há risco de segurança de executar uma GUI no servidor Ubuntu.