GNU/Linux >> Tutoriels Linux >  >> Ubuntu

En utilisant un service Vps, puis-je empêcher l'accès aux données par l'hôte Vps ?

En utilisant un fournisseur comme Digital Ocean, si je stocke des informations privées/sensibles sur le VPS, existe-t-il un moyen de protéger ces informations (empêchant l'hôte VPS d'y accéder) tout en conservant l'accès SFTP et SSH ?

Réponse acceptée :

Malheureusement ce n'est pas possible du tout. Voici quelques brèves explications à ce sujet :

  • Même avec le chiffrement, le fournisseur peut prendre un instantané de l'état actuel de la mémoire et du disque et cloner une nouvelle instance pour obtenir autant d'accès que vous. (source)

  • Même si vous utilisez un VPS avec des systèmes de fichiers cryptés, toutes les données en RAM seront non cryptées, auxquelles les administrateurs système de l'hôte VPS auraient accès, y compris la phrase secrète de décryptage. Si vous avez vraiment des exigences de sécurité aussi strictes, il semble que vous deviez exécuter vos propres systèmes physiquement sécurisés ou trouver une société d'hébergement de serveurs dédiée spécialisée dans ce genre de choses. (source)

  • … gardez à l'esprit que toute personne ayant accès à l'image VPS peut potentiellement ajouter un bogue à votre code pour détecter la phrase de passe que vous utilisez. (source)

  • [Le cryptage] a du sens si vous contrôlez le matériel ; quand quelqu'un d'autre contrôle le matériel, il n'y a pas grand intérêt à moins que vous soyez sûr que l'hôte ne veut pas vraiment le regarder... (source)

  • L'accès physique est un accès root, donc si quelqu'un a un accès physique au serveur, qu'il se trouve sur une machine virtuelle ou sur un système nu, il a un accès root. Dans le cas de KVM, le propriétaire de l'hôte bare metal peut accéder à l'invité. Vous pouvez toujours chiffrer les données, mais cela peut présenter un avantage limité car les données seront déchiffrées lorsque vous y accéderez.

    Idem avec le réseau. Le propriétaire de la machine virtuelle peut voir votre trafic réseau. Encore une fois, vous pouvez chiffrer une partie du trafic (https, ssh, etc.). (source)

Voici une solution particulière au cas où vous voudriez simplement stocker des données sensibles sur votre VPS :

Comment créer et utiliser un répertoire chiffré via eCryptfs et le monter à distance

Prérequis

Installez les packages ecryptfs-utils et sshfs et redémarrez le système :

sudo apt update && sudo apt -y install ecryptfs-utils sshfs
sudo apt update && sudo systemctl reboot

Configuration et utilisation standard

Ouvrez une fenêtre de terminal et exécutez cette commande :

ecryptfs-setup-private

Ensuite, il vous sera demandé :

  • Enter your login passphrase [<user>]: cette phrase de passe doit correspondre au mot de passe de l'utilisateur actuel et sera utilisée pour déverrouiller (déchiffrer) vos informations chiffrées.

  • Enter your mount passphrase [leave blank ...]: cette phrase de passe sera utilisée automatiquement lors du montage de vos données cryptées, mais vous en aurez besoin en cas d'urgence et vous devez récupérer vos données, alors notez-la dans un endroit sûr.

La commande ci-dessus créera deux répertoires :

  • ~/.Private où vos données cryptées seront stockées.
  • ~/Private où le répertoire ~/.Private sera monté comme déchiffré.

Tant que ~/.Private n'est pas monté dans le répertoire ~/Private a deux fichiers avec des instructions.

Lorsque vous vous connectez au système via le mot de passe de l'utilisateur (login passphrase ) le répertoire ~/.Private sera automatiquement monté sur ~/Private et vous pourrez y travailler. Lorsque vous vous logout ou exit , le répertoire ~/.Private sera démonté. Pour y parvenir manuellement, vous pouvez utiliser les commandes :ecryptfs-mount-private et ecryptfs-umount-private . Vous trouverez plus d'informations sur ces options dans l'article eCryptfs du ArchLinux Wiki. Voir aussi :comment utiliser ecryptfs avec un répertoire aléatoire.

En relation :Séparer les données d'une colonne en plusieurs colonnes ?

Si vous authentifiez votre connexion SSH/SFTP via un mot de passe, ce qui précède fonctionnera. Mais si vous vous authentifiez via une paire de clés SSH, vous devez utiliser ecryptfs-mount-private pour monter ~/.Private . Dans ce cas, vous devez d'abord vous connecter en SSH au système et exécuter ecryptfs-mount-private alors vous pourrez utiliser SFTP vers le répertoire ~/Private . Vous pouvez ajouter la commande ecryptfs-mount-private au bas de ~/.bashrc pour automatiser ce processus :

echo -e "\n# Mount my Private directory\necryptfs-mount-private\n" | tee -a ~/.bashrc

Monter un répertoire distant chiffré et le déverrouiller (déchiffrer) localement

Sur la machine distante (VPS) et sur la machine locale, exécutez la commande suivante et entrez des données identiques pour login passphrase et pour mount passphrase sur les deux machines :

ecryptfs-setup-private --nopwcheck --noautomount

Sur la machine distante :

  • Exécutez la commande :

    ecryptfs-mount-private
    

    Remarque : Pendant que je testais cette approche, j'ai dû exécuter la commande ci-dessus deux fois !

  • Créez du contenu simple :

    echo "Hello Word!" > ~/Private/hello.txt
    
  • Démonter ~/.Private :

    ecryptfs-umount-private
    
  • De plus, vous pouvez supprimer le répertoire ~/.ecryptfs (du VPS), où sont stockées vos données de déchiffrement.

Sur la machine locale :

  • Montez le dossier chiffré distant ~/.Private dans le dossier local ~/.Private via sshfs , et masquez la propriété des fichiers (remplacez <user>@<host_name_or_ip> ):

    sshfs -o idmap=user,uid=$(id -u),gid=$(id -g) <user>@<host_name_or_ip>:.Private ~/.Private
    

    Pour démonter, utilisez la commande :fusermount -u ~/.Private ou sudo umount -l ~/.Private .

  • Puis montez (et déchiffrez) le répertoire local ~/.Private vers ~/Private

    ecryptfs-mount-private
    
  • Vérifiez si le fichier hello.txt est là :

    $ cat ~/Private/hello.txt
    Hello Word!
    
  • Si vous rencontrez un problème avec la commande ecryptfs-umount-private (umount.ecryptfs_private ) vous pouvez démonter le ~/Private local répertoire par la commande sudo umount -l ~/Private .

  • eCryptfs a des bogues et parfois ecryptfs-mount-private et ecryptfs-umount-private ne fonctionnent pas correctement.

  • Selon ce qui précède, vous pouvez créer deux fonctions dans ~/.bashrc qui automatisera l'ensemble du processus (montage/démontage) (remplacez <user>@<host_name_or_ip> ):

    function ecryptfs-remote-mount {
            sshfs -o idmap=user,uid=$(id -u),gid=$(id -g) <user>@<host_name_or_ip>:.Private ~/.Private > /dev/null 2>&1
            sudo keyctl clear @u
            sudo ecryptfs-insert-wrapped-passphrase-into-keyring $HOME/.ecryptfs/wrapped-passphrase
            # Attempt to mount, and loop the function unless it is true - due to  CLI usage bug
            ecryptfs-mount-private && echo "Done!" || ecryptfs-remote-mount            
    }
    
    function ecryptfs-remote-umount {
            ecryptfs-umount-private > /dev/null 2>&1 || sudo umount -l $HOME/Private
            fusermount -u $HOME/.Private > /dev/null 2>&1 || sudo umount -l $HOME/.Private
            echo "Done!"
    }
    
    export -f ecryptfs-remote-mount ecryptfs-remote-umount
    

    Puis source ~/.bashrc et vous pourrez utiliser ecryptfs-remote-mount et ecryptfs-remote-umount comme commandes.

Références et lectures complémentaires

  • Créez un fichier d'archive crypté (tar), où se cachent vos données sensibles :

    • Crypter le fichier tar.gz lors de sa création
    • Comment créer une archive tar ou zip cryptée (protégée par mot de passe) sous Linux
    • Comment protéger par mot de passe les fichiers gzip sur la ligne de commande ?
    • Comment puis-je protéger par mot de passe un fichier .tgz avec tar sous Unix ?
  • Créez un répertoire chiffré :

    • Sauvegarde cryptée sur un serveur SFTP (WebSpace) avec ecryptfs
    • Comment faire pour sécuriser le volume distant chiffré
    • Comment chiffrer des dossiers individuels ?
    • Comment chiffrer des répertoires avec eCryptfs sur Ubuntu 16.04
    • YouTube :Comment chiffrer un dossier dans Ubuntu
  • Utiliser le chiffrement du répertoire personnel de l'utilisateur :

    • Dossier d'accueil chiffré
    • Guide d'utilisation du répertoire personnel chiffré
    • HOW-TO chiffrer votre répertoire personnel
    • Accéder à votre répertoire personnel chiffré dans Ubuntu
    • Migration vers un répertoire personnel chiffré
    • Message SSH après la connexion, puis empêche l'utilisateur d'utiliser le compte
En relation :Indicateur de gestionnaire de réseau manquant ?
Ubuntu
  1. Comment accéder à Internet à partir d'une machine virtuelle dans les boîtes Gnome ?

  2. Comment empêcher les utilisateurs d'accéder au répertoire racine ?

  3. CentOS / RHEL :Comment empêcher les référentiels désactivés d'être téléchargés dans le cache yum

  4. Modifier le nom d'hôte sur Ubuntu à l'aide de l'interface graphique et de la ligne de commande

  5. Autoriser l'accès à un hôte virtuel Apache à partir du réseau local uniquement

Comment empêcher la mise à jour d'un paquet dans les distributions Linux basées sur Ubuntu et Debian

Comment vérifier la version d'Ubuntu à partir de la ligne de commande

Comment pouvons-nous limiter l'accès SSH avec UFW sur Linux Mint 20

Utiliser Reddit depuis la console en 2020

Besoin d'empêcher l'installation d'un package ?

Comment verrouiller l'écran à l'aide du nouvel écran de verrouillage à partir de la ligne de commande ?