Product SiteDocumentation Site

5.4. Tornando o acesso ao sistema X Window mais seguro

Hoje em dia, terminais do X são usados por mais e mais empresas onde é necessário para várias estações de trabalho. Isto pode ser perigoso, porque você precisa permitir o servidor de arquivos a se conectar aos clientes (a partir do ponto de vista do servidor X, o X altera a definição de cliente e servidor). Se você seguir a (péssima) sugestão de muitas documentações você digitará xhost + em sua máquina. Isto permitirá qualquer cliente do X a se conectar em seu sistema. Para ter um pouco mais de segurança, você deverá usar o comando xhost +hostname ao invés de somente permitir acessos através de máquinas específicas.
Uma solução muito mais segura, no entanto, é usar o ssh para para toda a seção. Isto é feito automaticamente quando você faz um ssh para a outra máquina. Para isto funcionar, você terá que configurar ambos o cliente ssh e o servidor ssh. No cliente ssh, a opção ForwardX11 deverá estar ajustada para yes no arquivo /etc/ssh/ssh_config. No servidor ssh, a opção X11Forwarding deverá estar ajustada para yes no arquivo /etc/ssh/sshd_config e o pacote xbase-clients deverá estar instalado, pois o servidor ssh utiliza o /usr/X11R6/bin/xauth quando está configurando uma tela de pseudo terminal do X. Nos tempos do SSH, agora você deverá deixar de usar o controle de acesso baseado em xhost completamente.
Para melhor segurança, você não precisará permitir o acesso ao X a partir de outras máquinas, isto é feito desativando o servidor na porta 6000 simplesmente digitando:
$ startx -- -nolisten tcp
Este é o comportamento padrão do Xfree 4.1.0 (o Xserver fornecido no Debian 3.0). Se estiver executando o Xfree 3.3.6 (i.e. você tem o Debian 2.2 instalada) você poderá editar o arquivo /etc/X11/xinit/xserverrcc e fazer a alteração nestas seguintes linhas:
#!/bin/sh
exec /usr/bin/X11/X -dpi 100 -nolisten tcp
If you are using XDM set /etc/X11/xdm/Xservers to: :0 local /usr/bin/X11/X vt7 -dpi 100 -nolisten tcp. If you are using Gdm make sure that the DisallowTCP=true option is set in the /etc/gdm/gdm.conf (which is the default in Debian). This will basically append -nolisten tcp to every X command line [36].
Você também poderá configurar o timeout padrão para o travamento do xscreensaver. Até mesmo se o usuário substituir este valor, você poderá editar o arquivo /etc/X11/app-defaults/XScreenSaver e alterar a linha:
*lock:                  False
(que é padrão no Debian) para:
*lock:                  True
FIXME: adicionar informações sobre como desativar as proteções de tela que mostra o desktop do usuário (que pode conter informações sensíveis).
Leia mais sobre a segurança em servidores X Window em http://www.tldp.org/HOWTO/XWindow-User-HOWTO.html (/usr/share/doc/HOWTO/en-txt/XWindow-User-HOWTO.txt.gz).
FIXME: Adicionar informações sobre a discussão na debian-security sobre como alterar os arquivos de configuração no servidor XFree 3.3.6 para fazer isto.

5.4.1. Verifique seu gerenciador de tela

Se somente quiser ter um gerenciador de tela instalado para uso local (tendo um lindo login gráfico) tenha certeza que tudo que estiver relacionado com o XDMCP (X Display Manager Control Protocol) está desativado. No XDM você poderá fazer isto através da linha em /etc/X11/xdm/xdm-config:
DisplayManager.requestPort:     0
For GDM there should be in your gdm.conf:
[xdmcp]
Enable=false
Normalmente, todos os gerenciadores de tela estão configurados para não iniciar serviços do XDMCP por padrão no Debian.


[36] Gdm will not append -nolisten tcp if it finds a -query or -indirect on the command line since the query wouldn't work.