VPS no Linux com interface gráfica: iniciando o servidor RDP no Ubuntu 18.04

VPS no Linux com interface gráfica: iniciando o servidor RDP no Ubuntu 18.04
Em artigo anterior Analisamos a inicialização do servidor VNC em uma máquina virtual de qualquer tipo. Essa opção tem muitas desvantagens, sendo a principal a alta demanda por largura de banda da rede. Hoje, vamos tentar nos conectar à área de trabalho gráfica no Linux via RDP (Remote Desktop Protocol). O sistema VNC se baseia na transmissão de matrizes de pixels através do protocolo RFB (Remote Framebuffer), enquanto o RDP permite o envio de primitivos gráficos mais complexos e comandos de alto nível. Geralmente, é usado para organizar serviços de áreas de trabalho remotas em Windows, mas servidores para Linux também estão disponíveis.

Conteúdo:

Instalação do ambiente gráfico
Localização do servidor e instalação de software
Instalação e configuração do servidor RDP
Configuração do firewall
Conexão ao servidor RDP
Gerente de sessões e sessões de usuários
Mudança de layouts de teclado

Instalação do ambiente gráfico

Vamos utilizar uma máquina virtual com Ubuntu Server 18.04 LTS com dois núcleos de CPU, quatro gigabytes de RAM e um disco rígido (HDD) de vinte gigabytes. Uma configuração mais fraca não é ideal para uma área de trabalho gráfica, embora isso dependa das tarefas a serem realizadas. Não se esqueça de usar o código promocional Habrahabr10 para obter um desconto de 10% ao fazer o pedido.

VPS no Linux com interface gráfica: iniciando o servidor RDP no Ubuntu 18.04
A instalação do ambiente de desktop com todas as dependências é realizada 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 requisitos relativamente baixos de recursos computacionais.

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

Frequentemente, as máquinas virtuais são implantadas apenas com a localização em inglês. A área de trabalho pode exigir o russo, que é fácil de configurar. Primeiro, vamos instalar as traduções para os 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 alcançado editando manualmente o arquivo /etc/default/locale.

Para localizar o GNOME e KDE, há pacotes language-pack-gnome-ru e language-pack-kde-ru nos repositórios — eles serão necessários se você usar programas desses ambientes de desktop. No XFCE, as traduções são instaladas junto com os aplicativos. A seguir, você pode instalar 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 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

Com isso, a preparação do ambiente de desktop está completa, faltando apenas configurar o servidor RDP.

Instalação e configuração do servidor RDP

Nos repositórios do Ubuntu, existe o servidor Xrdp disponível gratuitamente, que usaremos:

sudo apt-get install xrdp

Se tudo correr bem, o servidor deve iniciar automaticamente:

sudo systemctl status xrdp

VPS no Linux com interface gráfica: iniciando o servidor RDP no Ubuntu 18.04
O servidor Xrdp é iniciado com permissões do usuário xrdp e, por padrão, utiliza o certificado /etc/ssl/private/ssl-cert-snakeoil.key, que pode ser substituído pelo seu próprio. Para o acesso de leitura do 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 no diretório /etc/xrdp. Os principais parâmetros estão no arquivo xrdp.ini, que pode não precisar ser alterado. A configuração é bem documentada, além de incluir as manpages correspondentes:

man xrdp.ini
man xrdp

Resta apenas editar o script /etc/xrdp/startwm.sh, que é executado na inicialização da sessão do usuário. Primeiro, faremos uma cópia de segurança do script do pacote:

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

Para iniciar o ambiente de desktop XFCE, será necessário um script com um conteúdo mais ou menos assim:

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

Observe que, nos scripts, é melhor especificar o caminho completo para os arquivos executáveis — isso é um bom hábito. Tornaremos o script executável e com isso a configuração do servidor Xrdp estará concluída:

sudo chmod 755 /etc/xrdp/startwm.sh

Reiniciamos 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 o firewall Netfilter. No Linux, isso geralmente é feito com a ferramenta iptables, mas no Ubuntu é melhor usar o ufw. Se o endereço IP do cliente for conhecido, a configuração é feita com o seguinte comando:

sudo ufw allow from IP_Address to any port 3389

Para permitir conexões de qualquer IP, pode-se fazer assim:

sudo ufw allow 3389

O protocolo RDP suporta criptografia, mas abrir o acesso ao servidor Xrdp a partir de redes públicas não é uma boa ideia. Se o cliente não tiver um IP fixo, para aumentar a segurança, o servidor deve escutar apenas o localhost. O acesso deve ser configurado através de um túnel SSH, que redirecionará o tráfego do computador cliente de forma segura. Abordagem semelhante que utilizamos no artigo anterior para o servidor VNC.

Conexão ao servidor RDP

Para trabalhar com o ambiente de desktop, é melhor criar um usuário separado não privilegiado:

sudo adduser rdpuser

VPS no Linux com interface gráfica: iniciando o servidor RDP no Ubuntu 18.04
Vamos adicionar o usuário ao grupo sudo para que ele possa resolver questões relacionadas à administração. Se essa necessidade não existir, este passo pode ser pulado:

sudo gpasswd -a rdpuser sudo

Você pode se conectar ao servidor usando qualquer cliente RDP, incluindo o cliente embutido nos serviços de área de trabalho remota do Windows. Se o Xrdp escutar a interface externa, não será necessário nenhum passo adicional. Basta inserir o endereço IP do VPS, nome de usuário e senha nas configurações de conexão. Após a conexão, devemos ver algo assim:

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

VPS no Linux com interface gráfica: iniciando o servidor RDP no Ubuntu 18.04
Se o servidor Xrdp está escutando apenas em localhost, o tráfego no computador cliente precisará ser encapsulado em um túnel SSH (o sshd deve estar em execução no VPS). No Windows, é possível usar um cliente gráfico SSH (como o PuTTY), enquanto em sistemas UNIX é necessário utilizar o 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 irá se conectar mais ao servidor remoto, mas sim ao host local.

Com dispositivos móveis, a situação é mais complicada: será necessário adquirir clientes SSH que consigam configurar um túnel, além disso, no iOS e iPadOS, o funcionamento em segundo plano de aplicativos de terceiros é dificultado por uma otimização de consumo de energia bastante eficaz. Em iPhones e iPads, não será possível criar um túnel em um aplicativo separado — será necessário um aplicativo combinado que consiga estabilizar a conexão RDP através do SSH, como, por exemplo, o Remoter Pro.

Gerente de sessões e sessões de usuários

A capacidade de trabalho multusuário está diretamente implementada no servidor Xrdp e não requer configurações adicionais. Após iniciar o serviço via systemd, um processo opera no modo daemon, escutando a porta 3389 e interagindo através do localhost com o gerenciador de sessões.

ps aux |grep xrdp

VPS no Linux com interface gráfica: iniciando o servidor RDP no Ubuntu 18.04

sudo netstat -ap |grep xrdp

VPS no Linux com interface gráfica: iniciando o servidor RDP no Ubuntu 18.04
O gerenciador de sessões geralmente não é visível para os usuários, pois o login e a senha definidos nas configurações do cliente são transmitidos a ele automaticamente. Se isso não ocorrer ou se ocorrer um erro durante a autenticação, em vez da área de trabalho aparecerá uma janela interativa para o login no sistema.

VPS no Linux com interface gráfica: iniciando o servidor RDP no Ubuntu 18.04
O início automático do gerenciador de sessões está especificado no arquivo /etc/default/xrdp, e a configuração é armazenada em /etc/xrdp/sesman.ini. Por padrão, ela se parece mais ou menos com isto:

[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
; Quando AlwaysGroupCheck=false, o acesso será permitido
; se o grupo TerminalServerUsers não estiver definido.
AlwaysGroupCheck=false

[Sessions]

Aqui, não é necessário alterar nada, exceto proibir logins com permissões de root (AllowRootLogin=false). Para cada usuário autenticado no sistema, um processo xrdp separado é iniciado: se a conexão for encerrada sem finalizar a sessão, os processos do usuário continuarão funcionando por padrão, e a sessão poderá ser reconectada. As configurações podem ser alteradas no arquivo /etc/xrdp/sesman.ini (seção [Sessions]).

Mudança de layouts de teclado

Com o clipboard bidirecional, normalmente não há problemas, mas você terá que fazer alguns ajustes com o layout do teclado russo (a localidade russa deve já estar instalada). Vamos editar as configurações do teclado do servidor Xrdp:

sudo nano /etc/xrdp/xrdp_keyboard.ini

No final do arquivo de configuração, adicione as seguintes linhas:

[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

Agora, basta salvar o arquivo e reiniciar o Xrdp:

sudo systemctl restart xrdp

Como você pode ver, levantar um servidor RDP em um VPS Linux não é difícil, e em artigo anterior já analisamos a configuração do VNC. Além dessas tecnologias, há uma outra opção interessante: o sistema X2Go, que utiliza um protocolo NX 3 modificado. Vamos explorar isso na próxima publicação.

VPS no Linux com interface gráfica: iniciando o servidor RDP no Ubuntu 18.04

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster