Instalar e configurar o xrdp para usar a Área de Trabalho Remota com o Ubuntu
Aplica-se a: ✔️ VMs do Linux ✔️ Conjuntos de dimensionamento flexíveis
Para novos usuários do Linux ou para cenários de solução rápida de problemas, o uso da área de trabalho remota pode ser mais fácil do que o acesso ao Secure Shell (SSH). Este artigo fornece detalhes sobre como instalar e configurar um ambiente de área de trabalho (xfce) e de área de trabalho remota (xrdp) para sua VM Linux com Ubuntu.
O artigo foi gravado e testado usando uma VM Ubuntu 18.04.
Observação
O uso da Área de Trabalho Remota pela Internet introduzirá notável "retardo" (latência de entrada) em comparação com o uso da área de trabalho local. Isso pode ser influenciado por vários fatores, incluindo a velocidade da Internet local e a distância do datacenter onde a máquina virtual está hospedada. Esse retardo geralmente não reflete o desempenho da própria VM.
Pré-requisitos
Este artigo requer uma VM Ubuntu 18.04 LTS ou Ubuntu 20.04 LTS existente no Azure. Se você precisar criar uma VM, use um dos seguintes métodos:
Instalar um ambiente de área de trabalho em sua VM do Linux
A maioria das VMs Linux no Azure não tem um ambiente de área de trabalho instalado por padrão. As VMs Linux geralmente são gerenciadas usando conexões SSH em vez de um ambiente de área de trabalho, no entanto, há vários ambientes de área de trabalho que você pode optar por instalar. Dependendo de sua escolha de ambiente de área de trabalho, ele pode consumir até 2 GB de espaço em disco e leva até dez minutos para instalar e configurar todos os pacotes necessários.
O exemplo a seguir instala o ambiente de área de trabalho leve xfce4 em uma VM do Ubuntu. Os comandos para outras distribuições variam um pouco (use yum
para instalar no Red Hat Enterprise Linux e configurar as regras selinux
apropriadas ou use zypper
para instalar no SUSE, por exemplo).
Primeiro, SSH para sua VM. O seguinte exemplo conecta-se à VM chamada myvm.westus.cloudapp.azure.com com o nome de usuário azureuser. Use seus próprios valores:
ssh azureuser@myvm.westus.cloudapp.azure.com
Se você estiver usando o Windows e precisar de mais informações sobre como usar o SSH, veja Como usar chaves SSH no Windows.
Em seguida, instale o xfce usando apt
:
sudo apt-get update
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install xfce4
sudo apt install xfce4-session
Instalar e configurar um servidor de área de trabalho remoto
Agora que você tem um ambiente de área de trabalho instalado, configure um serviço de área de trabalho remota para escutar conexões de acesso remoto de entrada. xrdp é um servidor RDP (Protocolo de Área de Trabalho Remota) de código aberto que está disponível na maioria das distribuições do Linux e funciona bem com xfce. Instale o xrdp em sua VM do Ubuntu da seguinte maneira:
sudo apt-get -y install xrdp
sudo systemctl enable xrdp
No Ubuntu 20, você precisará fornecer acesso de certificado a um usuário xrdp:
sudo adduser xrdp ssl-cert
Diga ao xrdp o ambiente de área de trabalho a ser usado ao iniciar a sessão. Configure xrdp para usar xfce como seu ambiente de área de trabalho da seguinte maneira:
echo xfce4-session >~/.xsession
Reinicie o serviço xrdp para que as alterações entrem em vigor da seguinte maneira:
sudo systemctl restart xrdp
Definir a senha da conta de usuário local
Se você tiver criado uma senha para sua conta de usuário durante a criação de sua VM, ignore esta etapa. Se você usar apenas a autenticação de chave SSH e não tiver uma senha de conta local definida, especifique uma senha antes de usar o xrdp para fazer logon em sua VM. O xrdp não aceita chaves SSH para autenticação. O seguinte exemplo especifica uma senha para a conta de usuário azureuser:
sudo passwd azureuser
Observação
A especificação de uma senha não atualiza a configuração de SSHD para permitir logons de senha, caso ela não permita no momento. De uma perspectiva de segurança, convém conectar-se à sua VM com um túnel SSH usando a autenticação baseada em chave e, depois, conectar-se ao xrdp. Nesse caso, ignore a etapa a seguir sobre a criação de uma regra de grupo de segurança de rede para permitir o tráfego de área de trabalho remota.
Criar uma regra de Grupo de Segurança de Rede para tráfego de Área de Trabalho Remota
Para permitir que o tráfego da Área de Trabalho Remota alcance sua VM do Linux, é necessário criar uma regra de grupo de segurança de rede que permite ao TCP na porta 3389 acessar sua VM. Para saber mais sobre regras de grupo de segurança de rede, confira O que é um grupo de segurança de rede? Você também pode usar o portal do Azure para criar uma regra de grupo de segurança de rede.
O exemplo a seguir cria uma regra de grupo de segurança de rede com az vm open-port na porta 3389. De CLI do Azure, não a sessão SSH para sua VM, abra a seguinte regra de grupo de segurança de rede:
az vm open-port --resource-group myResourceGroup --name myVM --port 3389
Conectar-se a sua VM do Linux com um cliente de Área de Trabalho Remota
Abra o cliente da área de trabalho remota local e conecte-se ao endereço IP ou nome DNS de sua VM do Linux.
Insira o nome de usuário e a senha da conta de usuário em sua VM da seguinte maneira:
Após a autenticação, o ambiente de área de trabalho xfce carregará e será semelhante ao exemplo a seguir:
Se o cliente RDP local usar o NLA (autenticação no nível da rede), talvez você precise desabilitar essa configuração de conexão. Atualmente, o XRDP não dá suporte ao NLA. Examine também soluções RDP alternativas que dão suporte ao NLA, como o FreeRDP.
Solucionar problemas
Se você não puder se conectar à sua VM Linux usando um cliente de Área de Trabalho Remota, use netstat
em sua VM Linux para verificar se sua VM está escutando conexões RDP da seguinte maneira:
sudo netstat -plnt | grep rdp
O exemplo a seguir mostra a VM escutando na porta TCP 3389, conforme o esperado:
tcp 0 0 127.0.0.1:3350 0.0.0.0:* LISTEN 53192/xrdp-sesman
tcp 0 0 0.0.0.0:3389 0.0.0.0:* LISTEN 53188/xrdp
Se o serviço xrdp-sesman não estiver escutando, em uma VM Ubuntu, reinicie o serviço da seguinte maneira:
sudo systemctl restart xrdp
Examine os logs em /var/log na VM Ubuntu para obter indicações sobre o motivo de o serviço não estar respondendo. Você também pode monitorar o syslog durante uma tentativa de conexão de área de trabalho remota para exibir quaisquer erros:
tail -f /var/log/syslog
Outras distribuições do Linux como Red Hat Enterprise Linux e SUSE podem ter maneiras diferentes de reiniciar serviços e locais alternativos de arquivos de log para examinar.
Se você não receber nenhuma resposta em seu cliente de área de trabalho remota e não vir nenhum evento no log do sistema, esse comportamento indica que o tráfego da área de trabalho remota não pode alcançar a VM. Examine suas regras de grupo de segurança de rede para garantir que você tenha uma regra para permitir o TCP na porta 3389. Para saber mais, veja Solucionar problemas de conectividade do aplicativo.
Próximas etapas
Para saber mais sobre como criar e usar chaves SSH com VMs do Linux, veja Criar chaves SSH para VMs do Linux no Azure.
Para saber mais sobre como usar o SSH do Windows, veja Como usar chaves SSH com o Windows.