В
Sumário:
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.
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
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
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
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:
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.
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
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
sudo netstat -ap |grep xrdp
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.
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
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
Fonte: habr.com