15%

Poupe 15% em todos os serviços

Teste as suas habilidades e obtenha Desconto em qualquer plano

Utilizar o código:

Skills
Começar a trabalhar
12.12.2023

Como Instalar e Configurar o XRDP no Ubuntu 22.04

XRDP é uma implementação de código aberto do servidor Remote Desktop Protocol (RDP) da Microsoft para Linux. Permite que qualquer cliente compatível com RDP — incluindo Windows Remote Desktop Connection, Remmina e FreeRDP — estabeleça uma sessão de desktop gráfico completa numa máquina Linux remota. No Ubuntu 22.04, o XRDP funciona como uma ponte entre o cliente RDP e uma sessão de exibição X11 ou Xorg subjacente, proporcionando uma experiência de desktop remoto responsiva e encriptada sem necessidade de VNC ou software proprietário.

Este guia abrange a instalação completa, configuração de certificados SSL, proteção de firewall, integração de ambiente de desktop e procedimento de ligação para XRDP no Ubuntu 22.04 LTS — incluindo casos especiais e problemas pós-instalação que a maioria dos tutoriais omite.

O Que É o XRDP e Como Funciona

O XRDP opera num modelo cliente-servidor. O daemon xrdp escuta na porta TCP 3389 e gere o handshake RDP, a negociação de sessão e a encriptação de transporte via TLS. Internamente, cria uma instância do gestor de sessões xrdp-sesman que autentica utilizadores via PAM (Pluggable Authentication Modules) e inicia uma sessão X11 através de um backend configurável — tipicamente Xvfb (framebuffer virtual) ou uma sessão Xorg direta.

Os principais componentes arquiteturais são:

  • daemon xrdp — gere a negociação do protocolo RDP e a terminação TLS
  • xrdp-sesman — gere o ciclo de vida da sessão do utilizador e a autenticação PAM
  • backend X11 — fornece o framebuffer gráfico (Xvfb, Xorg ou X11rdp)
  • chansrv — gere a partilha de área de transferência, redirecionamento de áudio e mapeamento de unidades

Esta arquitetura significa que o XRDP não substitui o seu gestor de exibição — funciona em paralelo com ele, criando sessões gráficas isoladas por utilizador autenticado.

XRDP vs. Alternativas: Comparação de Protocolos e Funcionalidades

FuncionalidadeXRDP (RDP)x11vnc (VNC)NoMachine (NX)TeamViewer
ProtocoloRDP (padrão Microsoft)VNC/RFBProtocolo NXProprietário
Cliente Windows nativoSim (MSTSC integrado)Não (requer cliente)Não (requer cliente)Não (requer cliente)
Encriptação TLSSim (nativa)Opcional (via stunnel)SimSim
Suporte multi-sessãoSimNão (exibição única)SimSim
Partilha de área de transferênciaSimSimSimSim
Redirecionamento de áudioSim (via PulseAudio)LimitadoSimSim
Desempenho em WANBomFracoExcelenteBom
Código abertoSim (Apache 2.0)SimParcialNão
Porta3389590040005938

Para equipas que já utilizam infraestrutura Windows, o XRDP é a escolha operacionalmente mais eficiente porque não requer software cliente adicional nas máquinas Windows.

Pré-requisitos

Antes de prosseguir, certifique-se do seguinte:

  • Um servidor ou instância de desktop Ubuntu 22.04 LTS em funcionamento
  • Uma conta de utilizador com privilégios sudo
  • Um ambiente de desktop instalado (GNOME, XFCE ou MATE — detalhes abaixo)
  • Acesso SSH ao servidor para configuração inicial
  • UFW ou iptables disponível para gestão de firewall

Se estiver a executar um VPS sem interface gráfica sem um ambiente de desktop pré-instalado, deve instalar um antes que o XRDP possa fornecer uma sessão gráfica. Recomenda-se fortemente uma instalação mínima de XFCE para uso de desktop remoto devido ao seu baixo consumo de memória.

Passo 1 — Atualizar Pacotes do Sistema

Sincronize sempre o índice de pacotes e aplique as atualizações pendentes antes de instalar novo software. Isto evita conflitos de dependências e garante que recebe a versão mais recente e corrigida do XRDP.

sudo apt update && sudo apt upgrade -y

Reinicie se uma atualização do kernel foi aplicada:

sudo reboot

Passo 2 — Instalar um Ambiente de Desktop (Apenas para Servidores Sem Interface Gráfica)

Se a sua instância Ubuntu 22.04 não tiver GUI, instale um ambiente de desktop leve. O XFCE4 é a escolha mais fiável para XRDP em servidores sem interface gráfica — as sessões GNOME via XRDP no Ubuntu 22.04 têm problemas de renderização conhecidos relacionados com conflitos Wayland/GDM3.

sudo apt install xfce4 xfce4-goodies -y

Alternativamente, para MATE:

sudo apt install ubuntu-mate-desktop -y

Nota crítica para utilizadores de GNOME: O Ubuntu 22.04 utiliza por padrão uma sessão Wayland. O XRDP não suporta Wayland nativamente. Se pretender usar GNOME, deve forçar sessões Xorg editando /etc/gdm3/custom.conf e descomentando WaylandEnable=false. Mesmo assim, o GNOME via XRDP no 22.04 frequentemente produz um ecrã preto no login — o XFCE elimina completamente este tipo de problema.

Passo 3 — Instalar o XRDP

Instale o XRDP a partir dos repositórios oficiais do Ubuntu:

sudo apt install xrdp -y

O gestor de pacotes instalará xrdp juntamente com a sua dependência xorgxrdp, que fornece o backend do driver de exibição baseado em Xorg. A instalação normalmente completa em menos de dois minutos num VPS com cPanel padrão ou servidor bare-metal com ligação à internet estável.

Passo 4 — Ativar e Iniciar o Serviço XRDP

Ative o XRDP para iniciar automaticamente no arranque e, em seguida, inicie-o imediatamente:

sudo systemctl enable xrdp
sudo systemctl start xrdp

Verifique se o serviço está ativo e a escutar:

sudo systemctl status xrdp

O resultado esperado inclui Active: active (running) e uma linha confirmando que o processo está a escutar. Para confirmar explicitamente a ligação à porta:

sudo ss -tlnp | grep 3389

Deverá ver um resultado semelhante a:

LISTEN  0  10  0.0.0.0:3389  0.0.0.0:*  users:(("xrdp",pid=XXXX,fd=12))

Se a porta não estiver ligada, verifique /var/log/xrdp.log para erros de arranque antes de prosseguir.

Passo 5 — Configurar Permissões do Certificado SSL

Durante a instalação, o XRDP cria um utilizador de sistema dedicado chamado xrdp. O daemon utiliza a chave de certificado em /etc/ssl/private/ssl-cert-snakeoil.key para encriptação de sessão TLS. Por padrão, este ficheiro pertence ao grupo ssl-cert, e o utilizador xrdp não pertence a ele — causando falhas no handshake TLS ou retrocesso para sessões não encriptadas.

Adicione o utilizador xrdp ao grupo ssl-cert:

sudo usermod -a -G ssl-cert xrdp

Reinicie o XRDP para aplicar a alteração de associação ao grupo:

sudo systemctl restart xrdp

Nota para produção: O certificado ssl-cert-snakeoil é um certificado autoassinado gerado pelo pacote ssl-cert. Para ambientes de produção ou qualquer servidor exposto à internet, substitua-o por um certificado válido de uma CA de confiança. Se o seu servidor tiver um domínio público, pode utilizar um certificado do seu fornecedor de Certificados SSL e configurar o XRDP para o referenciar através das diretivas certificate e key_file em /etc/xrdp/xrdp.ini.

Para utilizar um certificado personalizado:

sudo nano /etc/xrdp/xrdp.ini

Localize e atualize estas linhas:

certificate=/etc/ssl/certs/your-domain.crt
key_file=/etc/ssl/private/your-domain.key

Passo 6 — Configurar a Sessão de Desktop para XRDP

O XRDP lê um ficheiro de configuração de sessão por utilizador em ~/.xsession ou ~/.Xclients para determinar qual ambiente de desktop iniciar. Sem este ficheiro, muitas configurações do Ubuntu 22.04 produzem um ecrã cinzento ou preto após a autenticação.

Para XFCE, crie o ficheiro de sessão para o seu utilizador:

echo "xfce4-session" > ~/.xsession
chmod +x ~/.xsession

Para MATE:

echo "mate-session" > ~/.xsession
chmod +x ~/.xsession

Se estiver a configurar isto para múltiplos utilizadores num Servidor Dedicado, automatize este passo com um loop de shell ou ferramenta de gestão de configuração como o Ansible.

Passo 7 — Configurar a Firewall

O XRDP escuta na porta TCP 3389. Deve permitir explicitamente esta porta através do UFW. No entanto, expor o RDP diretamente à internet em 0.0.0.0 é um risco de segurança significativo — o RDP é um dos serviços mais ativamente sujeitos a ataques de força bruta na internet.

Abordagem recomendada: restringir o acesso a um intervalo de IP específico ou sub-rede VPN.

Permitir acesso apenas a partir de uma sub-rede de confiança específica:

sudo ufw allow from 192.168.1.0/24 to any port 3389

Se estiver a ligar a partir de um único endereço IP conhecido:

sudo ufw allow from YOUR.IP.ADDRESS to any port 3389

Se precisar de permitir acesso mais amplo temporariamente (não recomendado para produção):

sudo ufw allow 3389/tcp

Recarregue e verifique as regras de firewall:

sudo ufw reload
sudo ufw status verbose

Recomendações de proteção de segurança:

  • Altere a porta padrão: Edite /etc/xrdp/xrdp.ini e defina port=33890 (ou qualquer porta não padrão), depois atualize a sua regra UFW em conformidade. Isto reduz drasticamente o ruído de análise automatizada.
  • Use fail2ban: Instale e configure fail2ban com a jail xrdp para bloquear IPs após tentativas de autenticação falhadas repetidas.
  • Tunelizar via SSH: Para máxima segurança, vincule o XRDP apenas a 127.0.0.1 e aceda-o através de um túnel SSH. Isto elimina completamente a exposição direta à internet.

Para vincular o XRDP apenas ao localhost:

sudo nano /etc/xrdp/xrdp.ini

Defina:

address=127.0.0.1

Em seguida, ligue via túnel SSH a partir do seu cliente:

ssh -L 3389:127.0.0.1:3389 user@your-server-ip -N

Aponte o seu cliente RDP para 127.0.0.1:3389.

Passo 8 — Ligar ao Desktop Remoto XRDP

A partir do Windows

  1. Prima Win + R, escreva mstsc e prima Enter para abrir a Ligação ao Ambiente de Trabalho Remoto.
  2. No campo Computador, introduza o endereço IP do seu servidor Ubuntu (ex., 203.0.113.45).
  3. Clique em Ligar.
  4. No ecrã de login do XRDP, selecione o tipo de sessão (tipicamente Xvnc ou Xorg), introduza o seu nome de utilizador e palavra-passe Ubuntu e clique em OK.

A partir do Linux (Remmina)

  1. Abra o Remmina e crie um novo perfil de ligação.
  2. Defina o protocolo para RDP.
  3. Introduza o IP do servidor, o seu nome de utilizador e palavra-passe.
  4. Defina a profundidade de cor para True color (32 bpp) para melhor qualidade visual.
  5. Ligue.

A partir do macOS

Utilize o Microsoft Remote Desktop da Mac App Store — suporta RDP nativamente e funciona perfeitamente com o XRDP.

Resolução de Problemas Comuns do XRDP no Ubuntu 22.04

Ecrã Preto Após Login

Este é o problema mais comum no Ubuntu 22.04. Causas e soluções:

  • Ficheiro ~/.xsession em falta: Crie-o conforme indicado no Passo 6.
  • Conflito de sessão Wayland: Desative o Wayland em /etc/gdm3/custom.conf.
  • Ficheiro de bloqueio X obsoleto: Elimine os ficheiros /tmp/.X*-lock e reinicie o XRDP.

Falha de Autenticação Apesar de Credenciais Corretas

  • Verifique se o PAM não está a bloquear o processo xrdp-sesman: verifique /var/log/xrdp-sesman.log.
  • Certifique-se de que a conta de utilizador não está bloqueada: sudo passwd -S username.
  • Confirme que o utilizador não é obrigado a alterar a sua palavra-passe no próximo login.

Desempenho Fraco ou Alta Latência

  • Reduza a profundidade de cor nas definições do cliente RDP (16 bits em vez de 32 bits).
  • Ative RemoteFX ou codec H.264 em /etc/xrdp/xrdp.ini se o seu cliente suportar.
  • Mude de backend Xvnc para Xorg no seletor de sessão XRDP para melhor desempenho em servidores com aceleração de hardware.

Porta 3389 Inacessível

  • Confirme que o XRDP está em execução: sudo systemctl status xrdp
  • Confirme que o UFW não está a bloquear: sudo ufw status
  • Verifique os grupos de segurança do fornecedor de cloud ou ACLs de rede — muitos fornecedores de VPS têm uma camada de firewall adicional ao nível do hipervisor que é independente do UFW.

Opções de Configuração Avançada

Ativar Partilha de Área de Transferência

O redirecionamento da área de transferência entre o cliente RDP e o desktop remoto requer o serviço de canal xrdp-chansrv. Inicia automaticamente com a sessão, mas se a área de transferência não estiver a funcionar, verifique se o processo está em execução:

ps aux | grep xrdp-chansrv

Se não estiver em execução, verifique os erros nos ficheiros de log ~/.xrdp/ no diretório home do utilizador.

Ativar Redirecionamento de Áudio

Instale o módulo RDP do PulseAudio:

sudo apt install pulseaudio-module-xrdp -y

Termine a sessão e volte a ligar. A saída de áudio do desktop remoto será redirecionada para os altifalantes do seu cliente local.

Sessões Simultâneas Multi-Utilizador

O XRDP suporta múltiplas sessões simultâneas de forma nativa. Cada utilizador autenticado recebe uma sessão X11 isolada. Para verificar as sessões ativas:

sudo xrdp-seslist

Para ambientes com muitos utilizadores simultâneos — como estações de trabalho de desenvolvimento ou ambientes de formação — um Servidor Dedicado fornece os recursos de CPU e RAM necessários para sustentar múltiplas sessões gráficas sem contenção.

Principais Conclusões e Lista de Verificação de Decisão

Antes de implementar o XRDP em produção, verifique cada um dos seguintes pontos:

  • Ambiente de desktop instalado e ~/.xsession configurado por utilizador (XFCE recomendado)
  • Utilizador xrdp adicionado ao grupo ssl-cert — ignorar isto causa erros TLS
  • Wayland desativado se usar GNOME (/etc/gdm3/custom.conf)
  • Regras de firewall restringem a porta 3389 apenas a IPs de confiança — nunca exponha o RDP a 0.0.0.0 num servidor público
  • Certificado autoassinado substituído por um certificado válido emitido por CA para implementações em produção
  • fail2ban configurado com uma jail XRDP para mitigar ataques de força bruta
  • Túnel SSH considerado como alternativa à exposição direta de porta para ambientes de alta segurança
  • Firewall ao nível do hipervisor verificada — os grupos de segurança do fornecedor de cloud são independentes do UFW
  • Ficheiros de log monitorizados em /var/log/xrdp.log e /var/log/xrdp-sesman.log para erros de sessão

Perguntas Frequentes

O XRDP suporta Ubuntu 22.04 com Wayland?

Não. O XRDP requer uma sessão X11/Xorg. O Ubuntu 22.04 utiliza por padrão Wayland com GNOME. Deve desativar o Wayland em /etc/gdm3/custom.conf ou utilizar um ambiente de desktop que utilize Xorg por padrão, como XFCE ou MATE.

Qual é a diferença entre os tipos de sessão Xvnc e Xorg no XRDP?

O backend Xvnc cria um framebuffer virtual usando VNC internamente, que é compatível com a maioria das configurações mas tem maior sobrecarga de CPU. O backend Xorg utiliza o driver xorgxrdp para renderização Xorg direta, oferecendo melhor desempenho e suporte a aceleração de hardware. Utilize Xorg quando disponível.

Podem múltiplos utilizadores ligar-se ao XRDP simultaneamente?

Sim. O XRDP cria uma sessão X11 separada e isolada para cada utilizador autenticado. As sessões são independentes e não interferem entre si, tornando o XRDP adequado para acesso remoto multi-utilizador num único servidor.

É seguro expor a porta XRDP 3389 diretamente à internet?

Não. O RDP é um dos protocolos mais visados por ataques de força bruta e exploração. Restrinja sempre a porta 3389 a endereços IP conhecidos através de regras de firewall, utilize fail2ban e considere tunelizar o XRDP via SSH para qualquer implementação voltada para a internet.

Como desinstalo o XRDP do Ubuntu 22.04?

Execute sudo apt purge xrdp -y && sudo apt autoremove -y. Isto remove os pacotes XRDP e as suas dependências. Elimine também os ficheiros de configuração residuais com sudo rm -rf /etc/xrdp e remova a regra UFW com sudo ufw delete allow 3389/tcp.

15%

Poupe 15% em todos os serviços

Teste as suas habilidades e obtenha Desconto em qualquer plano

Utilizar o código:

Skills
Começar a trabalhar