Chiffrement des données sur un serveur virtuel





Un peu de paranoïa saine n'a encore fait de mal à personne. En plus des messagers avec cryptage de bout en bout, cryptage de fichiers sur les smartphones «out of the box» et utilisation obligatoire de SSL sur les sites Web, il ne sera pas superflu de protéger les données sur les serveurs virtuels. De plus, les technologies modernes l'ont rendu simple et accessible à tout utilisateur. Les grands fournisseurs proposant des services d'hébergement VPS proposent de crypter les données des utilisateurs à l'aide d'outils de système d'exploitation standard. Par exemple, Microsoft, dans son cloud Azure, utilise BitLocker pour les serveurs sous Windows et DM-Crypt pour les machines virtuelles sous Linux. ... Ces outils vous permettent de garder vos données privées, même si un attaquant accède au centre de données où se trouve le serveur ou à votre ordinateur local.



 Vous pouvez confier vos données à des hébergeurs fournissant des VPS, vous ne pouvez pas faire confiance, mais personne ne vous interdira d'utiliser les mêmes méthodes avec n'importe quel fournisseur de VPS, configuré vous-même. Dans cet article, je vais vous montrer comment faire.



Chiffrement des données sous Windows avec BitLocker



La méthode de chiffrement la plus simple mais la plus fiable pour Windows est le service BitLocker intégré. Sa configuration est simple et rapide, le moyen le plus simple est donc d'utiliser l'interface graphique. Analysons ce processus à l'aide de l'exemple de Windows Server 2016, situé chez le fournisseur RuVDS. Je vais choisir un emplacement de serveur à Moscou pour réduire le ping:





Et pour BitLocker plus rapide, utilisez le plus petit SSD.





Nous allons nous connecter via RDP standard, qui devrait être configuré un peu avant utilisation. Pour cela, cliquez sur le bouton "Afficher les paramètres" en bas de la fenêtre, cochez la case "Presse-papiers" dans l'onglet "Ressources locales", et sélectionnez "Disques" dans la boîte de dialogue appelée par le bouton "Détails". 





Cela vous permettra de copier des fichiers sur votre ordinateur ou de les coller dans le presse-papiers normal. RDP vous avertira honnêtement que: "Cette connexion à distance peut être nuisible ...", en raison du partage des ressources locales. Prenons note et connectons-nous au serveur.



Après la connexion, nous verrons le bureau et le panneau d'administration habituels. Connectons directement le service BitLocker à partir de celui-ci en sélectionnant l'option "Ajouter des rôles et des fonctionnalités". Sur le premier écran, cochez la case "Ignorer ..." pour ne pas lire l'avertissement à chaque fois que vous modifiez la configuration, puis cliquez sur "Suivant" et sélectionnez "Installation basée sur les rôles ou les fonctionnalités", puis sélectionnez notre serveur local et dans la section "Fonctionnalités", marquez "Chiffrement de lecteur BitLocker". 





Confirmez "Ajouter des fonctionnalités", cliquez sur "Suivant", cochez l'option "Redémarrer automatiquement le serveur de destination si nécessaire" et cliquez sur "Installer".





Après avoir installé le service, le système redémarrera automatiquement et la prochaine fois que vous vous connecterez, une fenêtre apparaîtra indiquant que l'installation a réussi.



Étant donné que nous avons un serveur virtuel, il ne dispose pas d'un processeur de chiffrement « Trusted Platform Module », ce qui signifie que nous devons configurer des stratégies d'accès afin que BitLocker demande un mot de passe au démarrage du système. Si vous ne le faites pas, lorsque vous essayez d'activer le chiffrement, le système affiche un message d'erreur:





Nous allons à la recherche, y insérons le nom du programme: " gpedit.msc " et l'exécutons. Nous devons trouver l'option le long du chemin suivant: Stratégie de l'ordinateur local → Configuration ordinateur → Modèles d'administration → Composants Windows → Chiffrement de lecteur BitLocker → Lecteurs du système d'exploitation





Il est nécessaire d'activer la stratégie en sélectionnant «Activé», cochez la case «Autoriser BitLocker sans TPM compatible (nécessite un mot de passe ou une clé de démarrage sur une clé USB)» dans les options et cliquez sur «OK». 



Il reste à sélectionner les lecteurs que vous souhaitez crypter dans l'Explorateur. 





L'assistant de configuration analysera le système et vous demandera de continuer ("Suivant"). Dans la boîte de dialogue suivante, il vous avertira que le lecteur sera utilisé par BitLocker et vous recommandera de sauvegarder d'abord les données critiques. Bonne idée, mais en supposant que vous avez déjà fait cela, cliquez sur Suivant. Le système préparera le lecteur pour le cryptage, mais dans le processus, il vous avertira qu'il n'y a nulle part où transférer les données de récupération Windows et vous proposera d'activer et de configurer ce système après le cryptage. L'installation est presque terminée et l'assistant vous demandera de redémarrer le système.





Après le redémarrage, le service sera installé et le système proposera de crypter le disque





Dans la boîte de dialogue suivante, l'assistant vous demandera d'insérer une clé USB ou de saisir un mot de passe. Puisque notre serveur est virtuel, nous choisissons ce dernier. Dans la fenêtre suivante, nous proposons, entrons et confirmons le mot de passe, le système jurera, s'il est trop simple ou trop court, vous devez montrer votre imagination. 



Ensuite, nous serons invités à choisir la manière dont la clé de récupération d'accès sera enregistrée au cas où nous oublierions le mot de passe BitLocker. 





Nous n'avons nulle part où insérer l'USB, vous pouvez sélectionner le disque local de votre ordinateur, dont l'accès a été ouvert dans les options RDP. Le fichier sera nommé quelque chose comme ceci: "Clé de récupération BitLocker BE32F397-9C84-4765-9840-50BF3893CAB6.TXT". Et à l'intérieur, il y aura une brève instruction et une clé de récupération: 



Regardez
BitLocker Drive Encryption recovery key 

To verify that this is the correct recovery key, compare the start of the following identifier with the identifier value displayed on your PC.

Identifier:

      BE32F397-9C84-4765-9840-50BF3893CAB6

If the above identifier matches the one displayed by your PC, then use the following key to unlock your drive.

Recovery Key:

      667260-267685-242209-551199-606441-680966-499147-122408

If the above identifier doesn't match the one displayed by your PC, then this isn't the right key to unlock your drive.
Try another recovery key, or refer to http://go.microsoft.com/fwlink/?LinkID=260589 for additional assistance.

      
      





Après avoir sauvegardé le fichier, nous procédons au choix du type de cryptage. Puisque notre disque dur local est protégé, nous sélectionnons la première option: "Nouveau mode de cryptage". 



L'écran suivant nécessite la confirmation que nous voulons vraiment crypter le disque, cliquez sur "Continuer", nous obtenons un message indiquant que le processus va démarrer après le redémarrage et une proposition de redémarrage de l'ordinateur.



Tout - le disque système de notre serveur est crypté.



Nous essayons de nous y connecter et ... Rien ne fonctionne!



Tout est logique. BitLocker vous demandera de saisir un mot de passe au démarrage, et cela se produit avant même que le système ne soit prêt pour une opération à distance. Cela ne peut pas être fait via RDP.



Nous allons à la page RuVDS, qui contient des informations sur les serveurs en cours d'exécution, et nous voyons une image intéressante:





Dans la capture d'écran du moniteur virtuel, quelque chose de très similaire à l'invite du système. En effet, nous devrons utiliser la console d'accès en mode urgence afin de saisir le mot de passe avant de démarrer le système:





Nous entrons le mot de passe et voyons la suite du téléchargement. La console d'urgence peut être fermée et connectée via RDP. En passant, nous avons besoin d'une telle opération à chaque redémarrage du serveur virtuel. Pas très pratique, mais c'est le prix de la sécurité.



Maintenant, lorsque nous ouvrons le menu du lecteur, nous y voyons de nouveaux éléments: «Modifier le mot de passe BitLocker» et «Gérer BitLocker». Après avoir ouvert le deuxième élément, nous pouvons voir l'état du disque et sa gestion de cryptage. Puisque j'ai délibérément choisi un petit SSD pour la démonstration, le cryptage a pris moins de cinq minutes. À la fin, l'interface ressemblait à ceci:





L'installation de Bitlocker et le chiffrement du disque sur le serveur virtuel sont maintenant terminés. Désormais, si quelqu'un accède physiquement à votre ordinateur, il ne pourra pas se connecter au serveur, même s'il accède au site Web du fournisseur sous votre identifiant. Et s'il vient au centre de données et se connecte à votre VPS de l'intérieur, il ne pourra toujours pas recevoir les données - elles seront cryptées.



L'essentiel est de ne pas garder en vue le fichier contenant la clé pour restaurer l'accès!



Au fait, comment utiliser cette clé si vous avez oublié votre mot de passe BitLocker? C'est très simple, vous devez redémarrer le serveur et accéder à la console d'urgence, mais choisissez maintenant de ne pas vous connecter, mais de restaurer. Appuyez sur Echap et recevez une invitation à saisir la clé. Une subtilité, il vous suffit de saisir des chiffres, et les séparateurs moins seront insérés automatiquement. Si vous ne saisissez pas correctement, vous recevrez un message d'erreur et une demande de saisie à nouveau de la clé. S'il est entré correctement, le système continuera de démarrer. 



Configuration de BitLocker sur un serveur distant - terminée.



Crypter des données sous Linux avec dm-crypt



Il existe de nombreuses solutions de chiffrement de partition différentes pour Linux, nous utiliserons dm-crypt , un système simple et fiable que Microsoft utilise dans son cloud Azure. 



dm-crypt - un système de cryptage de disque standard basé sur le noyau Linux, basé sur: d ériphérique m apper , le sous - système crée et assure la transparence au travail avec des dispositifs virtuels; et crypto API- un sous-système de chiffrement utilisé pour VPN sur IPsec et un certain nombre d'autres fonctions. Dm-crypt a deux façons de travailler avec un cryptocontainer, clair - dans lequel les données ne contiennent pas de format visible et ressemblent à un ensemble aléatoire d'octets, et LUKS - qui fournit plus d'options, par exemple, la détection automatique des cryptocontainers par le système, mais le fichier contiendra des métadonnées, selon qui peut déterminer le fait même du cryptage. Nous utiliserons la deuxième méthode, via le protocole LUKS .



Le serveur est sélectionné de la même manière que dans la première section, sauf pour le système d'exploitation. Sautons les étapes de préréglage, elles se trouvent dans le manuel RuVDSet passez à l'installation du système de cryptage. Mettons à jour la liste des paquets et installons cryptsetup - l'interface de ligne de commande dm-crypt (pour plus de simplicité, toutes les commandes seront entrées en tant que root):



apt update
apt install cryptsetup 

      
      





Pour stocker des données chiffrées, vous devez d'abord créer un fichier spécial, qui agira ensuite comme un appareil. Il doit être inséparable, et pour cela il existe plusieurs moyens, avec des degrés de sécurité variables.



L'un d'eux est avec la commande fallocate.



Créons un fichier de 512 Mo nommé test-crypt dans le répertoire personnel de l'utilisateur root:



fallocate -l 512M /root/test-crypt

      
      





C'est la méthode la plus simple et la plus rapide, mais la moins sécurisée, car la commande alloue simplement de l'espace disque sans écraser les données qui y étaient contenues.



Il est plus sûr de créer un fichier à l'aide de l'utilitaire dd (définition de l'ensemble de données), il vous permet non seulement de créer un fichier, mais aussi d'y écrire des informations qui écraseront le contenu précédent de la zone sélectionnée. Par exemple, des zéros de / dev / zéro périphérique virtuel:



dd if=/dev/zero of=/root/test-crypt bs=1M count=512

      
      





Le moyen le plus paranoïaque est de remplir le fichier à partir de / dev / urandom. Mais c'est aussi le plus lent:



dd if=/dev/urandom of=/root/test-crypt bs=1M count=512

      
      





Après avoir créé le fichier, vous devez le convertir en une section LUKS:



cryptsetup -y luksFormat /root/test-crypt

      
      





Répondez à YES



l'invite du programme, puis définissez un mot de passe. Contrairement à BitLocker, il n'y aura pas de méthodes de récupération, de clés privées et d'autres commodités, si vous oubliez votre mot de passe, vos données seront irrémédiablement perdues! Abordez ce problème de manière très responsable. Par conséquent, assurez-vous d'utiliser l'option -y



qui demande la confirmation du mot de passe. 



Vérifions ce que nous avons avec l'utilitaire file



:



file /root/test-crypt

      
      





La sortie devrait afficher quelque chose comme:



test-crypt:  LUKS encrypted file, ver 2 [, , sha256] UUID: 820a6557-ee7b-4f67-9f53-eb11586cc5dc

      
      





Cela signifie que le conteneur de cryptage est créé et prêt à être utilisé, il reste à le déployer sur le périphérique de volume de cryptage: 



cryptsetup luksOpen /root/test-crypt crypt-volume

      
      





Créez-y un système de fichiers:



mkfs.ext4 -j /dev/mapper/crypt-volume

      
      





Et sélectionnez le point de montage: 



mkdir /mnt/crypt-files

      
      





L'appareil crypté est prêt à l'emploi, il ne reste plus qu'à le monter et à l'utiliser comme un disque ordinaire, toutes les opérations de cryptage et de décryptage se déroulent «à la volée», de manière transparente pour l'utilisateur et le système.



mount /dev/mapper/crypt-volume /mnt/crypt-files

      
      





Vérifions notre appareil. Copions-y quelques données, par exemple, le contenu du répertoire / etc / ssh et voyons ce que dit l'utilitaire dh



cp -r /etc/ssh/ /mnt/crypt-files/ 
df -h

Filesystem           Size  Used Avail Use% Mounted on
udev                 928M     0  928M   0% /dev
tmpfs                191M  648K  191M   1% /run
/dev/sda1             20G  2.7G   16G  15% /
tmpfs                955M     0  955M   0% /dev/shm
tmpfs                5.0M     0  5.0M   0% /run/lock
tmpfs                955M     0  955M   0% /sys/fs/cgroup
tmpfs                191M     0  191M   0% /run/user/1000
/dev/mapper/crypt-volume  465M  1.3M  429M   2% /mnt/crypt-files

      
      





Comme nous pouvons le voir, le périphérique est monté, a le volume déterminé par nous et est rempli à environ 1% avec les fichiers du répertoire ssh.



Pour finir de travailler avec le conteneur cryptographique, vous devez le démonter, puis le désactiver:



cd /
umount /mnt/crypt-files
cryptsetup luksClose crypt-volume

      
      





Le travail avec l'appareil est terminé et nous avons le fichier le plus ordinaire, chiffré avec notre mot de passe, des données inaccessibles à un étranger, même s'il obtient un accès physique au serveur. 



Pour utiliser à nouveau le conteneur crypto, vous devrez l'initialiser et le remonter:



cryptsetup luksOpen /root/test-crypt crypt-volume
mount /dev/mapper/crypt-volume /mnt/crypt-files

      
      





Ceci termine l'examen des systèmes de chiffrement de données qui peuvent être utilisés sur des serveurs virtuels.



Bonne connexion tout le monde!



All Articles