GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Kann ich mit einem VPS-Dienst verhindern, dass der VPS-Host auf die Daten zugreifen kann?

Wenn ich einen Anbieter wie Digital Ocean verwende und private/sensible Informationen auf dem VPS speichere, gibt es eine Möglichkeit, diese Informationen zu schützen (indem verhindert wird, dass der VPS-Host Zugriff erhält), während der SFTP- und SSH-Zugriff weiterhin erhalten bleibt?

Akzeptierte Antwort:

Leider ist es überhaupt nicht möglich. Hier sind einige kurze Erklärungen dazu:

  • Selbst mit Verschlüsselung könnte der Anbieter den aktuellen Zustand von Arbeitsspeicher und Festplatte erstellen und eine neue Instanz klonen, um so viel Zugriff wie möglich zu erhalten. (Quelle)

  • Selbst wenn Sie einen VPS mit verschlüsselten Dateisystemen betreiben, werden alle In-RAM-Daten unverschlüsselt, auf die die Systemadministratoren des VPS-Hosts Zugriff hätten, einschließlich der Entschlüsselungs-Passphrase. Wenn Sie wirklich diese strengen Sicherheitsanforderungen haben, scheint es, als müssten Sie Ihre eigenen physisch gesicherten Systeme betreiben oder ein dediziertes Server-Hosting-Unternehmen finden, das auf solche Dinge spezialisiert ist. (Quelle)

  • … denken Sie daran, dass jeder mit Zugriff auf das VPS-Image potenziell Fehler in Ihren Code einfügen kann, um die von Ihnen verwendete Passphrase zu erkennen. (Quelle)

  • [Verschlüsselung] macht Sinn, wenn Sie die Kontrolle über die Hardware haben; Wenn jemand anderes die Hardware kontrolliert, hat es wenig Sinn, es sei denn, Sie vertrauen darauf, dass der Host es nicht wirklich sehen will … (Quelle)

  • Physischer Zugriff ist Root-Zugriff. Wenn also jemand physischen Zugriff auf den Server hat, unabhängig davon, ob es sich um eine VM oder Bare Metal handelt, hat er Root-Zugriff. Im Fall von KVM kann der Besitzer des Bare-Metal-Hosts auf den Gast zugreifen. Sie können die Daten immer verschlüsseln, aber das kann nur von begrenztem Nutzen sein, da die Daten entschlüsselt werden, wenn Sie darauf zugreifen.

    Das gleiche mit dem Netzwerk. Der Eigentümer der VM kann Ihren Netzwerkdatenverkehr sehen. Auch hier können Sie einen Teil des Datenverkehrs verschlüsseln (https, ssh usw.). (Quelle)

Hier ist eine spezielle Lösung, falls Sie nur einige sensible Daten auf Ihrem VPS speichern möchten:

Wie man ein verschlüsseltes Verzeichnis über eCryptfs erstellt und verwendet und es aus der Ferne einbindet

Voraussetzungen

Installieren Sie die Pakete ecryptfs-utils und sshfs und starten Sie das System neu:

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

Standardeinrichtung und -nutzung

Öffnen Sie ein Terminalfenster und führen Sie diesen Befehl aus:

ecryptfs-setup-private

Dann werden Sie aufgefordert:

  • Enter your login passphrase [<user>]: Diese Passphrase muss mit dem Passwort des aktuellen Benutzers übereinstimmen und wird zum Entsperren (Entschlüsseln) Ihrer verschlüsselten Informationen verwendet.

  • Enter your mount passphrase [leave blank ...]: Diese Passphrase wird automatisch verwendet, wenn Ihre verschlüsselten Daten gemountet werden, aber Sie brauchen sie, falls es eine Notsituation gibt und Sie Ihre Daten wiederherstellen müssen, also notieren Sie sie an einem sicheren Ort.

Der obige Befehl erstellt zwei Verzeichnisse:

  • ~/.Private wo Ihre verschlüsselten Daten gespeichert werden.
  • ~/Private wobei das Verzeichnis ~/.Private wird entschlüsselt gemountet.

Während ~/.Private nicht im Verzeichnis ~/Private gemountet ist hat zwei Dateien mit Anweisungen.

Wenn Sie sich über das Benutzerpasswort (login passphrase ) das Verzeichnis ~/.Private wird automatisch unter ~/Private gemountet und Sie können dort arbeiten. Wenn Sie sich logout oder exit , das Verzeichnis ~/.Private wird ausgehängt. Um dies manuell zu erreichen, können Sie die Befehle verwenden:ecryptfs-mount-private und ecryptfs-umount-private . Mehr zu diesen Optionen finden Sie im Artikel eCryptfs aus dem ArchLinux-Wiki. Siehe auch:wie man ecryptfs mit einem zufälligen Verzeichnis verwendet.

Verwandte:Trennen Sie Daten von 1 Spalte in mehrere Spalten?

Wenn Sie Ihre SSH/SFTP-Verbindung per Passwort authentifizieren, funktioniert das oben Genannte. Wenn Sie sich jedoch über ein SSH-Schlüsselpaar authentifizieren, müssen Sie ecryptfs-mount-private verwenden um ~/.Private zu mounten . In diesem Fall müssen Sie zuerst eine SSH-Verbindung zum System herstellen und ecryptfs-mount-private ausführen dann können Sie SFTP zum Verzeichnis ~/Private verwenden . Sie können den Befehl ecryptfs-mount-private hinzufügen am Ende von ~/.bashrc um diesen Vorgang zu automatisieren:

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

Mounten Sie ein verschlüsseltes Remote-Verzeichnis und entsperren (entschlüsseln) Sie es lokal

Führen Sie auf dem entfernten Rechner (VPS) und auf dem lokalen Rechner den folgenden Befehl aus und geben Sie identische Daten für login passphrase ein und für mount passphrase auf beiden Rechnern:

ecryptfs-setup-private --nopwcheck --noautomount

Auf dem Remote-Rechner:

  • Führen Sie den Befehl aus:

    ecryptfs-mount-private
    

    Hinweis: Während ich diesen Ansatz testete, musste ich den obigen Befehl zweimal ausführen!

  • Erstellen Sie einige einfache Inhalte:

    echo "Hello Word!" > ~/Private/hello.txt
    
  • Unmounten Sie ~/.Private :

    ecryptfs-umount-private
    
  • Außerdem können Sie das Verzeichnis ~/.ecryptfs entfernen (vom VPS), wo Ihre Entschlüsselungsdaten gespeichert sind.

Auf dem lokalen Rechner:

  • Mounten Sie den verschlüsselten Remote-Ordner ~/.Private in den lokalen Ordner ~/.Private über sshfs , und maskieren Sie den Besitz der Dateien (ersetzen Sie <user>@<host_name_or_ip> ):

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

    Verwenden Sie zum Unmounten den folgenden Befehl:fusermount -u ~/.Private oder sudo umount -l ~/.Private .

  • Mounten (und entschlüsseln) Sie dann das lokale Verzeichnis ~/.Private zu ~/Private

    ecryptfs-mount-private
    
  • Überprüfen Sie, ob die Datei hello.txt ist da:

    $ cat ~/Private/hello.txt
    Hello Word!
    
  • Bei Problemen mit dem Befehl ecryptfs-umount-private (umount.ecryptfs_private ) können Sie den lokalen ~/Private aushängen Verzeichnis durch den Befehl sudo umount -l ~/Private .

  • eCryptfs hat Fehler und manchmal ecryptfs-mount-private und ecryptfs-umount-private funktionieren nicht richtig.

  • Entsprechend dem Obigen können Sie zwei Funktionen innerhalb von ~/.bashrc erstellen Dadurch wird der gesamte Prozess (mounten/unmounten) automatisiert (ersetzen Sie <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
    

    Dann source ~/.bashrc und Sie können ecryptfs-remote-mount verwenden und ecryptfs-remote-umount als Befehle.

Referenzen und weiterführende Literatur

  • Erstellen Sie eine verschlüsselte Archivdatei (tar), in der sich Ihre sensiblen Daten verstecken:

    • tar.gz-Datei beim Erstellen verschlüsseln
    • Wie man ein verschlüsseltes (kennwortgeschütztes) Tar- oder Zip-Archiv unter Linux erstellt
    • Wie schütze ich gzip-Dateien auf der Kommandozeile mit einem Passwort?
    • Wie schütze ich eine .tgz-Datei mit einem Passwort unter Unix mit tar?.
  • Erstellen Sie ein verschlüsseltes Verzeichnis:

    • Verschlüsseltes Backup auf einen SFTP-Server (WebSpace) mit ecryptfs
    • Anleitung zum sicheren verschlüsselten Remote-Volume
    • Wie kann ich einzelne Ordner verschlüsseln?
    • Verschlüsseln von Verzeichnissen mit eCryptfs unter Ubuntu 16.04
    • YouTube:Ordner in Ubuntu verschlüsseln
  • Verschlüsselung des Home-Verzeichnisses des Benutzers verwenden:

    • Verschlüsselter Home-Ordner
    • Anleitung zum verschlüsselten Home-Verzeichnis
    • HOW-TO-Verschlüsselung Ihres Home-Verzeichnisses
    • Zugriff auf Ihr verschlüsseltes Home-Verzeichnis in Ubuntu
    • Migration zu einem verschlüsselten Home-Verzeichnis
    • SSH-Nachricht nach Anmeldung, dann Nutzung des Kontos durch den Benutzer einschränken
Verwandt:Netzwerk-Manager-Anzeige fehlt?
Ubuntu
  1. Verwendung von Reddit von der Konsole im Jahr 2020

  2. Müssen Sie verhindern, dass ein Paket installiert wird?

  3. Wie greife ich von einer virtuellen Maschine in Gnome-Boxen auf das Internet zu?

  4. Wie kann man verhindern, dass Benutzer auf das Root-Verzeichnis zugreifen?

  5. CentOS / RHEL :So verhindern Sie, dass deaktivierte Repositories in den Yum-Cache heruntergeladen werden

So verhindern Sie, dass ein Paket in Ubuntu- und Debian-basierten Linux-Distributionen aktualisiert wird

So überprüfen Sie die Ubuntu-Version über die Befehlszeile

Wie können wir den SSH-Zugriff mit UFW unter Linux Mint 20 einschränken

Wie kann ich den Bildschirm mit dem neuen Sperrbildschirm von der Befehlszeile aus sperren?

CentOS / RHE 7:So verhindern Sie, dass Benutzer die letzten 10 Passwörter verwenden

Wie kann ich verhindern, dass Tintenfisch entdeckt wird?