В
Table des matières:
Installation de l'environnement graphique
Nous prendrons une machine virtuelle avec Ubuntu Server 18.04 LTS avec deux cœurs de calcul, quatre Go de RAM et un disque dur (HDD) de vingt Go. Une configuration plus faible ne convient pas à un bureau graphique, bien que cela dépende des tâches à résoudre. N'oubliez pas d'utiliser le code promo Habrahabr10 pour bénéficier d'une réduction de 10 % sur votre commande.
L'installation de l'environnement de bureau avec toutes les dépendances se fait avec la commande suivante :
sudo apt-get install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils
Comme dans le cas précédent, nous avons choisi XFCE en raison de ses besoins relativement faibles en ressources informatiques.
Russification du serveur et installation du logiciel
Souvent, les machines virtuelles sont déployées uniquement avec une localisation en anglais. Sur le bureau, vous aurez peut-être besoin du russe, qui est facile à configurer. Tout d'abord, installons les traductions pour les programmes système :
sudo apt-get install language-pack-ru
Configurons la localisation :
sudo update-locale LANG=ru_RU.UTF-8
Le même effet peut être obtenu en éditant manuellement le fichier /etc/default/locale.
Pour la localisation de GNOME et KDE, le référentiel contient les packages Language-pack-gnome-ru et Language-pack-kde-ru - vous en aurez besoin si vous utilisez des programmes de ces environnements de bureau. Dans XFCE, les traductions sont installées avec les applications. Ensuite, vous pouvez installer les dictionnaires :
# Словари для проверки орфографии
sudo apt-get install hunspell hunspell-ru
# Тезаурус для LibreOffice
sudo apt-get install mythes-ru
# Англо-русский словарь в формате DICT
sudo apt-get install mueller7-dict
De plus, l'installation de traductions peut être requise pour certains programmes d'application :
# Браузер 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
Ceci termine la préparation de l'environnement de bureau, il ne reste plus qu'à configurer le serveur RDP.
Installer et configurer un serveur RDP
Les référentiels Ubuntu disposent d'un serveur Xrdp distribué gratuitement, que nous utiliserons :
sudo apt-get install xrdp
Si tout s'est bien passé, le serveur devrait démarrer automatiquement :
sudo systemctl status xrdp
Le serveur Xrdp fonctionne avec les droits d'utilisateur xrdp et prend par défaut le certificat /etc/ssl/private/ssl-cert-snakeoil.key, qui peut être remplacé par le vôtre. Pour avoir accès à la lecture du fichier, vous devez ajouter l'utilisateur au groupe ssl-cert :
sudo adduser xrdp ssl-cert
Les paramètres par défaut se trouvent dans le fichier /etc/default/xrdp et tous les autres fichiers de configuration du serveur se trouvent dans le répertoire /etc/xrdp. Les principaux paramètres se trouvent dans le fichier xrdp.ini, qui n'a pas besoin d'être modifié. La configuration est bien documentée et les pages de manuel correspondantes sont incluses :
man xrdp.ini
man xrdp
Il ne reste plus qu'à éditer le script /etc/xrdp/startwm.sh, qui est exécuté à l'initialisation de la session utilisateur. Commençons par faire une copie de sauvegarde du script de la distribution :
sudo mv /etc/xrdp/startwm.sh /etc/xrdp/startwm.b
sudo nano /etc/xrdp/startwm.sh
Pour démarrer l'environnement de bureau XFCE, vous aurez besoin d'un script ressemblant à ceci :
#!/bin/sh
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi
exec /usr/bin/startxfce4
Attention : dans les scripts, il est préférable d'écrire le chemin complet vers les fichiers exécutables - c'est une bonne habitude. Rendons le script exécutable et à ce stade, la configuration du serveur Xrdp peut être considérée comme terminée :
sudo chmod 755 /etc/xrdp/startwm.sh
Redémarrez le serveur :
sudo systemctl restart xrdp
Configuration du pare-feu
Par défaut, Xrdp écoute le port TCP 3389 sur toutes les interfaces. En fonction de la configuration du serveur virtuel, vous devrez peut-être configurer un pare-feu Netfilter. Sous Linux, cela se fait généralement à l'aide de l'utilitaire iptables, mais sous Ubuntu, il est préférable d'utiliser ufw. Si l'adresse IP du client est connue, la configuration s'effectue avec la commande suivante :
sudo ufw allow from IP_Address to any port 3389
Vous pouvez autoriser les connexions depuis n'importe quelle adresse IP comme ceci :
sudo ufw allow 3389
Le protocole RDP prend en charge le cryptage, mais exposer le serveur Xrdp aux réseaux publics est une mauvaise idée. Si le client n'a pas d'adresse IP fixe, le serveur ne doit écouter que localhost pour augmenter la sécurité. Il est préférable d'y accéder via un tunnel SSH, qui redirigera en toute sécurité le trafic depuis l'ordinateur client. Nous avons une approche similaire
Connexion à un serveur RDP
Pour travailler avec l'environnement de bureau, il est préférable de créer un utilisateur non privilégié distinct :
sudo adduser rdpuser
Ajoutons l'utilisateur au groupe sudo afin qu'il puisse effectuer des tâches liées à l'administration. Si cela n'est pas nécessaire, vous pouvez ignorer cette étape :
sudo gpasswd -a rdpuser sudo
Vous pouvez vous connecter au serveur à l'aide de n'importe quel client RDP, y compris le client intégré des services Bureau à distance Windows. Si Xrdp écoute l'interface externe, aucune action supplémentaire ne sera nécessaire. Il suffit de préciser l'adresse IP du VPS, le nom d'utilisateur et le mot de passe dans les paramètres de connexion. Après la connexion, nous verrons quelque chose comme ceci :
Après la configuration initiale de l'environnement de bureau, nous obtiendrons un bureau à part entière. Comme vous pouvez le constater, il ne consomme pas beaucoup de ressources, même si tout dépendra des applications utilisées.
Si le serveur Xrdp écoute uniquement localhost, le trafic sur l'ordinateur client devra être regroupé dans un tunnel SSH (sshd doit être exécuté sur le VPS). Sous Windows, vous pouvez utiliser un client SSH graphique (par exemple, PuTTY), et sur les systèmes UNIX, vous avez besoin de l'utilitaire ssh :
ssh -L 3389:127.0.0.1:3389 -C -N -l rdpuser RDP_server_ip
Une fois le tunnel initialisé, le client RDP ne se connectera plus au serveur distant, mais à l'hôte local.
C'est plus difficile avec les appareils mobiles : il faudra acheter des clients SSH capables de monter un tunnel, et sous iOS et iPadOS, le fonctionnement en arrière-plan des applications tierces est difficile en raison d'une trop bonne optimisation de la consommation d'énergie. Sur iPhone et iPad, vous ne pourrez pas créer de tunnel dans une application distincte ; vous aurez besoin d'une application moissonneuse capable d'établir elle-même une connexion RDP via SSH. Comme par exemple
Gestionnaire de sessions et sessions utilisateur
La possibilité de travailler en multi-utilisateurs est implémentée directement dans le serveur Xrdp et ne nécessite aucune configuration supplémentaire. Après avoir démarré le service via systemd, un processus s'exécute en mode démon, écoute sur le port 3389 et communique via localhost avec le gestionnaire de session.
ps aux |grep xrdp
sudo netstat -ap |grep xrdp
Le gestionnaire de session n'est généralement pas visible pour les utilisateurs, car le login et le mot de passe spécifiés dans les paramètres client y sont automatiquement transférés. Si cela ne se produit pas ou s'il y a une erreur lors de l'authentification, une fenêtre de connexion interactive apparaîtra à la place du bureau.
Le lancement automatique du gestionnaire de session est spécifié dans le fichier /etc/default/xrdp et la configuration est stockée dans /etc/xrdp/sesman.ini. Par défaut, cela ressemble à ceci :
[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]
Vous n’avez rien à changer ici, il vous suffit de désactiver la connexion avec les droits root (AllowRootLogin=false). Pour chaque utilisateur autorisé dans le système, un processus xrdp distinct est lancé : si vous vous déconnectez sans mettre fin à la session, les processus utilisateur continueront à s'exécuter par défaut et vous pourrez vous reconnecter à la session. Les paramètres peuvent être modifiés dans le fichier /etc/xrdp/sesman.ini (section [Sessions]).
Changer la disposition du clavier
Il n'y a généralement aucun problème avec un presse-papiers bidirectionnel, mais avec la disposition du clavier russe, vous devrez jouer un peu (les paramètres régionaux russes devraient déjà être
sudo nano /etc/xrdp/xrdp_keyboard.ini
Vous devez ajouter les lignes suivantes à la fin du fichier de configuration :
[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
Il ne reste plus qu'à sauvegarder le fichier et redémarrer Xrdp :
sudo systemctl restart xrdp
Comme vous pouvez le constater, il n'est pas difficile de configurer un serveur RDP sur un VPS Linux, mais
Source: habr.com