Por que o X11 é um risco de segurança nos servidores?


11

Lembro-me de ler que os servidores não têm uma GUI porque o X11 é um risco de segurança. Por quê?

Respostas:


8

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:

  1. 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.
  2. Os pacotes X11 e desktop não são suportados pelo ciclo de vida completo de 5 anos da versão do servidor LTS.
  3. O desempenho pode sofrer porque os recursos (memória, espaço no disco rígido, CPU etc.) serão consumidos pela GUI.
  4. É uma prática recomendada instalar apenas o software necessário em um servidor de produção.
  5. A GUI pode incluir outros serviços de rede que são inadequados para um servidor.
    1. 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 netfilterusando 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.


1
O 10.04 teve uma vida útil de suporte diferente para servidor versus desktop, 12.04 e versões posteriores não. Além disso, uma GUI ociosa não consome nenhuma CPU, e a ram usada será trocada.
psusi 14/01

@psusi O ponto sobre a mudança no ciclo de vida do suporte é bom. Quanto aos problemas de CPU e RAM, (1) eu discordo da experiência de que uma GUI ociosa nunca consome CPU e (2) se uma GUI estiver em execução, quando alguém estiver trabalhando na máquina local, provavelmente a usará, seja eles querem ou não, e isso fará com que consuma mais recursos de CPU e memória. No entanto, os pontos 1, 4 e 5 são (e provavelmente sempre foram) os motivos mais significativos para considerar a não execução de uma GUI em um servidor de produção e são independentes dos problemas de ciclo de vida do suporte ou de utilização de recursos.
Eliah Kagan 15/01

Posso acrescentar que o Xorg também roda como root por padrão.
Wadih M.

5

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.


2
Na maioria das distribuições modernas de Linux (como Ubuntu), o servidor X, por padrão, não escuta em uma porta de rede, mas apenas aceita conexões locais por soquetes de domínio.
Florian Diesch 6/02/2012

@FlorianDiesch Even No desconfigurado do servidor?
Amith KK

Grande +1 por mencionar que o X11 é um servidor de rede.
Stefano Palazzo

2
Amith: Sim. xinit / startx usa -nolisten tcppor padrão
Florian Diesch

5

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:

  • Veja e copie o conteúdo da tela, usando programas utilitários X11 padrão;
  • Monitore suas teclas;
  • Controle remotamente qualquer navegador Netscape na área de trabalho e pressione as teclas do Forge como se você estivesse digitando você mesmo (embora nem todos os aplicativos X11 sejam suscetíveis a isso).

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/


1
Este artigo tem cerca de 10 anos. As informações ainda são válidas?
Stefano Palazzo

1
Na maior parte, sim ... porque AFAIK temos o xhost +comando
Amith KK

xhost +não pode substituir -nolisten tcp, basta abrir você para qualquer conexão do host local.
Alanc

esses problemas seriam resolvidos iniciando um xserver para cada aplicativo individualmente?
31918 phil294

-6

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.