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
| Funcionalidade | XRDP (RDP) | x11vnc (VNC) | NoMachine (NX) | TeamViewer |
|---|---|---|---|---|
| Protocolo | RDP (padrão Microsoft) | VNC/RFB | Protocolo NX | Proprietário |
| Cliente Windows nativo | Sim (MSTSC integrado) | Não (requer cliente) | Não (requer cliente) | Não (requer cliente) |
| Encriptação TLS | Sim (nativa) | Opcional (via stunnel) | Sim | Sim |
| Suporte multi-sessão | Sim | Não (exibição única) | Sim | Sim |
| Partilha de área de transferência | Sim | Sim | Sim | Sim |
| Redirecionamento de áudio | Sim (via PulseAudio) | Limitado | Sim | Sim |
| Desempenho em WAN | Bom | Fraco | Excelente | Bom |
| Código aberto | Sim (Apache 2.0) | Sim | Parcial | Não |
| Porta | 3389 | 5900 | 4000 | 5938 |
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 -yReinicie se uma atualização do kernel foi aplicada:
sudo rebootPasso 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 -yAlternativamente, para MATE:
sudo apt install ubuntu-mate-desktop -yNota 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 -yO 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 xrdpVerifique se o serviço está ativo e a escutar:
sudo systemctl status xrdpO 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 3389Deverá 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 xrdpReinicie o XRDP para aplicar a alteração de associação ao grupo:
sudo systemctl restart xrdpNota 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.iniLocalize e atualize estas linhas:
certificate=/etc/ssl/certs/your-domain.crt
key_file=/etc/ssl/private/your-domain.keyPasso 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 ~/.xsessionPara MATE:
echo "mate-session" > ~/.xsession
chmod +x ~/.xsessionSe 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 3389Se estiver a ligar a partir de um único endereço IP conhecido:
sudo ufw allow from YOUR.IP.ADDRESS to any port 3389Se precisar de permitir acesso mais amplo temporariamente (não recomendado para produção):
sudo ufw allow 3389/tcpRecarregue e verifique as regras de firewall:
sudo ufw reload
sudo ufw status verboseRecomendações de proteção de segurança:
- Altere a porta padrão: Edite
/etc/xrdp/xrdp.inie definaport=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
fail2bancom a jailxrdppara 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.1e 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.iniDefina:
address=127.0.0.1Em seguida, ligue via túnel SSH a partir do seu cliente:
ssh -L 3389:127.0.0.1:3389 user@your-server-ip -NAponte o seu cliente RDP para 127.0.0.1:3389.
Passo 8 — Ligar ao Desktop Remoto XRDP
A partir do Windows
- Prima
Win + R, escrevamstsce prima Enter para abrir a Ligação ao Ambiente de Trabalho Remoto. - No campo Computador, introduza o endereço IP do seu servidor Ubuntu (ex.,
203.0.113.45). - Clique em Ligar.
- No ecrã de login do XRDP, selecione o tipo de sessão (tipicamente
XvncouXorg), introduza o seu nome de utilizador e palavra-passe Ubuntu e clique em OK.
A partir do Linux (Remmina)
- Abra o Remmina e crie um novo perfil de ligação.
- Defina o protocolo para RDP.
- Introduza o IP do servidor, o seu nome de utilizador e palavra-passe.
- Defina a profundidade de cor para True color (32 bpp) para melhor qualidade visual.
- 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
~/.xsessionem 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*-locke 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.inise o seu cliente suportar. - Mude de backend
XvncparaXorgno 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-chansrvSe 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 -yTermine 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-seslistPara 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
~/.xsessionconfigurado por utilizador (XFCE recomendado) - Utilizador
xrdpadicionado ao grupossl-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.loge/var/log/xrdp-sesman.logpara 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.
