VPS no Linux com interface gráfica: lançando um servidor RDP no Ubuntu 18.04

VPS no Linux com interface gráfica: lançando um servidor RDP no Ubuntu 18.04
В artigo anterior discutimos a execução de um servidor VNC em uma máquina virtual de qualquer tipo. Esta opção tem muitas desvantagens, sendo a principal delas os elevados requisitos de rendimento dos canais de transmissão de dados. Hoje tentaremos conectar-se a um desktop gráfico no Linux via RDP (Remote Desktop Protocol). O sistema VNC é baseado na transmissão de matrizes de pixels usando o protocolo RFB (Remote Framebuffer), e o RDP permite enviar primitivos gráficos mais complexos e comandos de alto nível. Normalmente é usado para hospedar serviços de área de trabalho remota no Windows, mas servidores para Linux também estão disponíveis.

Sumário:

Instalando o ambiente gráfico
Russificação do servidor e instalação de software
Instalando e configurando um servidor RDP
Configuração do firewall
Conectando-se a um servidor RDP
Gerenciador de sessão e sessões de usuário
Alternando layouts de teclado

Instalando o ambiente gráfico

Pegaremos uma máquina virtual com Ubuntu Server 18.04 LTS com dois núcleos de computação, quatro gigabytes de RAM e um disco rígido (HDD) de vinte gigabytes. Uma configuração mais fraca não é adequada para uma área de trabalho gráfica, embora isso dependa das tarefas que estão sendo resolvidas. Não se esqueça de usar o código promocional Habrahabr10 para obter um desconto de 10% no seu pedido.

VPS no Linux com interface gráfica: lançando um servidor RDP no Ubuntu 18.04
A instalação do ambiente desktop com todas as dependências é feita com o seguinte comando:

sudo apt-get install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils

Como no caso anterior, escolhemos o XFCE devido aos seus requisitos relativamente baixos de recursos computacionais.

Russificação do servidor e instalação de software

Freqüentemente, as máquinas virtuais são implantadas apenas com localização em inglês. Na área de trabalho, você pode precisar do russo, que é fácil de configurar. Primeiro, vamos instalar traduções para programas do sistema:

sudo apt-get install language-pack-ru

Vamos configurar a localização:

sudo update-locale LANG=ru_RU.UTF-8

O mesmo efeito pode ser obtido editando manualmente o arquivo /etc/default/locale.

Para localização do GNOME e KDE, o repositório possui os pacotes language-pack-gnome-ru e language-pack-kde-ru - você precisará deles se usar programas desses ambientes de desktop. No XFCE, as traduções são instaladas com aplicativos. Em seguida você pode instalar os dicionários:

# Словари для проверки орфографии
sudo apt-get install hunspell hunspell-ru

# Тезаурус для LibreOffice
sudo apt-get install mythes-ru

# Англо-русский словарь в формате DICT
sudo apt-get install mueller7-dict

Além disso, a instalação de traduções pode ser necessária para alguns programas aplicativos:

# Браузер Firefox
sudo apt-get install firefox firefox-locale-ru

# Почтовый клиент Thunderbird
sudo apt-get install thunderbird thunderbird-locale-ru

# Офисный пакет LibreOffice
sudo apt-get install libreoffice libreoffice-l10n-ru libreoffice-help-ru

Isso completa a preparação do ambiente desktop, resta apenas configurar o servidor RDP.

Instalando e configurando um servidor RDP

Os repositórios do Ubuntu possuem um servidor Xrdp distribuído gratuitamente, que usaremos:

sudo apt-get install xrdp

Se tudo correr bem, o servidor deverá iniciar automaticamente:

sudo systemctl status xrdp

VPS no Linux com interface gráfica: lançando um servidor RDP no Ubuntu 18.04
O servidor Xrdp é executado com direitos de usuário xrdp e, por padrão, usa o certificado /etc/ssl/private/ssl-cert-snakeoil.key, que pode ser substituído pelo seu próprio. Para ter acesso para ler o arquivo, você precisa adicionar o usuário ao grupo ssl-cert:

sudo adduser xrdp ssl-cert

As configurações padrão podem ser encontradas no arquivo /etc/default/xrdp e todos os outros arquivos de configuração do servidor estão localizados no diretório /etc/xrdp. Os principais parâmetros estão no arquivo xrdp.ini, que não precisa ser alterado. A configuração está bem documentada e as páginas de manual correspondentes estão incluídas:

man xrdp.ini
man xrdp

Resta apenas editar o script /etc/xrdp/startwm.sh, que é executado quando a sessão do usuário é inicializada. Primeiro, vamos fazer uma cópia de backup do script da distribuição:

sudo mv /etc/xrdp/startwm.sh /etc/xrdp/startwm.b
sudo nano /etc/xrdp/startwm.sh

Para iniciar o ambiente de desktop XFCE, você precisará de um script parecido com este:

#!/bin/sh
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi
exec /usr/bin/startxfce4

Observação: nos scripts é melhor escrever o caminho completo para os arquivos executáveis ​​​​- este é um bom hábito. Vamos tornar o script executável e neste ponto a configuração do servidor Xrdp pode ser considerada completa:

sudo chmod 755 /etc/xrdp/startwm.sh

Reinicie o servidor:

sudo systemctl restart xrdp

Configuração do firewall

Por padrão, o Xrdp escuta a porta TCP 3389 em todas as interfaces. Dependendo da configuração do servidor virtual, pode ser necessário configurar um firewall Netfilter. No Linux isso geralmente é feito usando o utilitário iptables, mas no Ubuntu é melhor usar o ufw. Se o endereço IP do cliente for conhecido, a configuração é realizada com o seguinte comando:

sudo ufw allow from IP_Address to any port 3389

Você pode permitir conexões de qualquer IP assim:

sudo ufw allow 3389

O protocolo RDP suporta criptografia, mas expor o servidor Xrdp a redes públicas é uma má ideia. Caso o cliente não possua IP fixo, o servidor deverá escutar apenas localhost para aumentar a segurança. É melhor acessá-lo por meio de um túnel SSH, que redirecionará com segurança o tráfego do computador cliente. Temos uma abordagem semelhante usado no artigo anterior para servidor VNC.

Conectando-se a um servidor RDP

Para trabalhar com o ambiente de desktop, é melhor criar um usuário separado e sem privilégios:

sudo adduser rdpuser

VPS no Linux com interface gráfica: lançando um servidor RDP no Ubuntu 18.04
Vamos adicionar o usuário ao grupo sudo para que ele possa realizar tarefas relacionadas à administração. Se não houver essa necessidade, você pode pular esta etapa:

sudo gpasswd -a rdpuser sudo

Você pode se conectar ao servidor usando qualquer cliente RDP, incluindo o cliente integrado do Windows Remote Desktop Services. Se o Xrdp estiver escutando a interface externa, nenhuma ação adicional será necessária. Basta especificar o endereço IP do VPS, nome de usuário e senha nas configurações de conexão. Após a conexão, veremos algo assim:

VPS no Linux com interface gráfica: lançando um servidor RDP no Ubuntu 18.04
Após a configuração inicial do ambiente de desktop, obteremos um desktop completo. Como você pode ver, não consome muitos recursos, embora tudo dependa dos aplicativos utilizados.

VPS no Linux com interface gráfica: lançando um servidor RDP no Ubuntu 18.04
Se o servidor Xrdp escutar apenas localhost, o tráfego no computador cliente terá que ser empacotado em um túnel SSH (o sshd deve estar em execução no VPS). No Windows, você pode usar um cliente SSH gráfico (por exemplo, PuTTY) e em sistemas UNIX você precisa do utilitário ssh:

ssh -L 3389:127.0.0.1:3389 -C -N -l rdpuser RDP_server_ip

Após a inicialização do túnel, o cliente RDP não se conectará mais ao servidor remoto, mas ao host local.

É mais difícil com dispositivos móveis: clientes SSH capazes de criar um túnel terão que ser adquiridos e, no iOS e iPadOS, a operação em segundo plano de aplicativos de terceiros é difícil devido à otimização muito boa do consumo de energia. No iPhone e no iPad, você não poderá criar um túnel em um aplicativo separado; você precisará de um aplicativo coletor que possa estabelecer uma conexão RDP via SSH. Como, por exemplo Remoto Pro.

Gerenciador de sessão e sessões de usuário

A capacidade de trabalho multiusuário é implementada diretamente no servidor Xrdp e não requer configuração adicional. Após iniciar o serviço via systemd, um processo é executado em modo daemon, escuta na porta 3389 e se comunica através de localhost com o gerenciador de sessão.

ps aux |grep xrdp

VPS no Linux com interface gráfica: lançando um servidor RDP no Ubuntu 18.04

sudo netstat -ap |grep xrdp

VPS no Linux com interface gráfica: lançando um servidor RDP no Ubuntu 18.04
O gerenciador de sessão geralmente não fica visível para os usuários, pois o login e a senha especificados nas configurações do cliente são transferidos para ele automaticamente. Se isso não acontecer ou houver um erro durante a autenticação, uma janela de login interativa aparecerá no lugar da área de trabalho.

VPS no Linux com interface gráfica: lançando um servidor RDP no Ubuntu 18.04
A inicialização automática do gerenciador de sessão é especificada no arquivo /etc/default/xrdp e a configuração é armazenada em /etc/xrdp/sesman.ini. Por padrão, é algo assim:

[Globals]
ListenAddress=127.0.0.1
ListenPort=3350
EnableUserWindowManager=true
UserWindowManager=startwm.sh
DefaultWindowManager=startwm.sh

[Security]
AllowRootLogin=true
MaxLoginRetry=4
TerminalServerUsers=tsusers
TerminalServerAdmins=tsadmins
; When AlwaysGroupCheck=false access will be permitted
; if the group TerminalServerUsers is not defined.
AlwaysGroupCheck=false

[Sessions]

Você não precisa alterar nada aqui, apenas desabilitar o login com direitos de root (AllowRootLogin=false). Para cada usuário autorizado no sistema, um processo xrdp separado é iniciado: se você desconectar sem encerrar a sessão, os processos do usuário continuarão em execução por padrão e você poderá se conectar à sessão novamente. As configurações podem ser alteradas no arquivo /etc/xrdp/sesman.ini (seção [Sessões]).

Alternando layouts de teclado

Geralmente não há problemas com uma área de transferência bidirecional, mas com o layout do teclado russo você terá que brincar um pouco (a localidade russa já deve estar instalado). Vamos editar as configurações do teclado do servidor Xrdp:

sudo nano /etc/xrdp/xrdp_keyboard.ini

Você precisa adicionar as seguintes linhas ao final do arquivo de configuração:

[rdp_keyboard_ru]
keyboard_type=4
keyboard_type=7
keyboard_subtype=1
model=pc105
options=grp:alt_shift_toggle
rdp_layouts=default_rdp_layouts
layouts_map=layouts_map_ru

[layouts_map_ru]
rdp_layout_us=us,ru
rdp_layout_ru=us,ru

Só falta salvar o arquivo e reiniciar o Xrdp:

sudo systemctl restart xrdp

Como você pode ver, não é difícil configurar um servidor RDP em um VPS Linux, mas artigo anterior Já discutimos a configuração do VNC. Além dessas tecnologias, existe outra opção interessante: o sistema X3Go utilizando protocolo NX 2 modificado. Trataremos disso na próxima publicação.

VPS no Linux com interface gráfica: lançando um servidor RDP no Ubuntu 18.04

Fonte: habr.com

Adicionar um comentário