GNU/Linux >> Belajar Linux >  >> Ubuntu

Menggunakan Layanan Vps, Bisakah Saya Mencegah Data Tidak Dapat Diakses Oleh Host Vps?

Menggunakan penyedia seperti Digital Ocean, jika saya menyimpan informasi pribadi/sensitif di VPS, apakah ada cara untuk melindungi informasi tersebut (mencegah host VPS mendapatkan akses) sambil tetap mempertahankan akses SFTP dan SSH?

Jawaban yang Diterima:

Sayangnya itu tidak mungkin sama sekali. Berikut adalah beberapa penjelasan singkat tentang ini:

  • Bahkan dengan enkripsi, penyedia dapat memotret status memori dan disk saat ini dan mengkloning instance baru untuk mendapatkan akses sebanyak yang Anda lakukan. (sumber)

  • Bahkan jika Anda menjalankan VPS dengan sistem file terenkripsi, semua data dalam RAM tidak akan dienkripsi, yang dapat diakses oleh sysadmin host VPS, termasuk frasa sandi dekripsi. Jika Anda benar-benar memiliki persyaratan keamanan yang ketat, sepertinya Anda perlu menjalankan sistem Anda sendiri yang aman secara fisik atau menemukan perusahaan hosting server khusus yang berspesialisasi dalam hal semacam ini. (sumber)

  • …ingatlah bahwa siapa pun yang memiliki akses ke gambar VPS berpotensi menambahkan bug pada kode Anda untuk mendeteksi frasa sandi yang Anda gunakan. (sumber)

  • [Enkripsi] masuk akal jika Anda memiliki kendali atas perangkat keras; ketika orang lain mengontrol perangkat keras, tidak ada gunanya kecuali Anda percaya bahwa tuan rumah tidak benar-benar ingin melihatnya ... (sumber)

  • Akses fisik adalah akses root, jadi jika seseorang memiliki akses fisik ke server, terlepas dari apakah itu di VM atau bare metal, mereka memiliki akses root. Dalam kasus KVM, pemilik host bare metal dapat mengakses tamu. Anda selalu dapat mengenkripsi data, tetapi, itu mungkin hanya bermanfaat terbatas karena data akan didekripsi saat Anda mengaksesnya.

    Sama dengan jaringan. Pemilik VM dapat melihat lalu lintas jaringan Anda. Sekali lagi Anda dapat mengenkripsi beberapa lalu lintas (https, ssh, dll). (sumber)

Berikut adalah solusi khusus jika Anda hanya ingin menyimpan beberapa data sensitif di VPS Anda:

Cara membuat dan menggunakan direktori terenkripsi melalui eCryptfs dan memasangnya dari jarak jauh

Persyaratan sebelumnya

Instal paket ecryptfs-utils dan sshfs dan reboot sistem:

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

Pengaturan dan Penggunaan Standar

Buka jendela terminal dan jalankan perintah ini:

ecryptfs-setup-private

Kemudian Anda akan diminta untuk:

  • Enter your login passphrase [<user>]: frasa sandi ini harus cocok dengan sandi pengguna saat ini dan akan digunakan untuk membuka (mendekripsi) informasi terenkripsi Anda.

  • Enter your mount passphrase [leave blank ...]: frasa sandi ini akan digunakan secara otomatis ketika data terenkripsi Anda sedang dipasang, tetapi Anda membutuhkannya jika ada situasi darurat dan Anda harus memulihkan data Anda, jadi tulislah di tempat yang aman.

Perintah di atas akan membuat dua direktori:

  • ~/.Private tempat data terenkripsi Anda akan disimpan.
  • ~/Private di mana direktori ~/.Private akan dipasang sebagai didekripsi.

Sementara ~/.Private tidak dipasang di dalam direktori ~/Private memiliki dua file dengan instruksi.

Saat Anda masuk ke sistem melalui kata sandi pengguna (login passphrase ) direktori ~/.Private akan dipasang secara otomatis ke ~/Private dan Anda akan dapat bekerja di sana. Saat Anda logout atau exit , direktori ~/.Private akan dilepas. Untuk melakukannya secara manual, Anda dapat menggunakan perintah:ecryptfs-mount-private dan ecryptfs-umount-private . Lebih lanjut tentang opsi ini dapat ditemukan di artikel eCryptfs dari ArchLinux Wiki. Lihat juga:cara menggunakan ecryptfs dengan direktori acak.

Terkait:Pisahkan data dari 1 kolom menjadi beberapa kolom?

Jika Anda mengautentikasi koneksi SSH/SFTP Anda melalui kata sandi, hal di atas akan berfungsi. Tetapi jika Anda mengautentikasi diri Anda melalui pasangan kunci SSH, Anda perlu menggunakan ecryptfs-mount-private untuk memasang ~/.Private . Dalam hal ini pertama-tama Anda perlu SSH ke sistem dan menjalankan ecryptfs-mount-private maka Anda akan dapat menggunakan SFTP ke direktori ~/Private . Anda dapat menambahkan perintah ecryptfs-mount-private ke bagian bawah ~/.bashrc untuk mengotomatiskan proses ini:

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

Pasang direktori terenkripsi jarak jauh dan buka kunci (dekripsi) secara lokal

Pada mesin jarak jauh (VPS) dan pada mesin lokal jalankan perintah berikut dan masukkan data yang sama untuk login passphrase dan untuk mount passphrase di kedua mesin:

ecryptfs-setup-private --nopwcheck --noautomount

Pada mesin jarak jauh:

  • Jalankan perintah:

    ecryptfs-mount-private
    

    Catatan: Saat saya menguji pendekatan ini, saya harus melakukan perintah di atas dua kali!

  • Buat beberapa konten sederhana:

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

    ecryptfs-umount-private
    
  • Selanjutnya Anda dapat menghapus direktori ~/.ecryptfs (dari VPS), tempat data dekripsi Anda disimpan.

Di mesin lokal:

  • Pasang folder terenkripsi jarak jauh ~/.Private ke folder lokal ~/.Private melalui sshfs , dan menyamarkan kepemilikan file (ganti <user>@<host_name_or_ip> ):

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

    Untuk melepas, gunakan perintah:fusermount -u ~/.Private atau sudo umount -l ~/.Private .

  • Kemudian pasang (dan dekripsi) direktori lokal ~/.Private ke ~/Private

    ecryptfs-mount-private
    
  • Periksa apakah file hello.txt apakah ada:

    $ cat ~/Private/hello.txt
    Hello Word!
    
  • Jika Anda menghadapi masalah dengan perintah ecryptfs-umount-private (umount.ecryptfs_private ) Anda dapat meng-unmount ~/Private local lokal direktori dengan perintah sudo umount -l ~/Private .

  • eCryptfs memiliki bug dan terkadang ecryptfs-mount-private dan ecryptfs-umount-private tidak berfungsi dengan baik.

  • Menurut di atas, Anda dapat membuat dua fungsi di dalam ~/.bashrc yang akan mengotomatiskan seluruh proses (mount/unmount) (ganti <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
    

    Kemudian source ~/.bashrc dan Anda akan dapat menggunakan ecryptfs-remote-mount dan ecryptfs-remote-umount sebagai perintah.

Referensi dan bacaan lebih lanjut

  • Buat file arsip terenkripsi (tar), tempat data sensitif Anda disembunyikan:

    • Enkripsi file tar.gz saat dibuat
    • Cara Membuat Arsip Tar atau Zip Terenkripsi (Dilindungi Kata Sandi) di Linux
    • Bagaimana cara melindungi file gzip dengan kata sandi di baris perintah?
    • Bagaimana cara melindungi sandi file .tgz dengan tar di Unix?.
  • Buat direktori terenkripsi:

    • Cadangan terenkripsi ke server SFTP (WebSpace) dengan ecryptfs
    • Petunjuk Volume Jarak Jauh Terenkripsi Aman
    • Bagaimana cara mengenkripsi folder individual?
    • Cara Mengenkripsi Direktori dengan eCryptfs di Ubuntu 16.04
    • YouTube:Cara Mengenkripsi Folder di Ubuntu
  • Gunakan enkripsi direktori home pengguna:

    • Folder Beranda Terenkripsi
    • Cara Direktori Beranda Terenkripsi
    • CARA mengenkripsi direktori home Anda
    • Mengakses direktori home terenkripsi Anda di Ubuntu
    • Bermigrasi ke Direktori Beranda Terenkripsi
    • Pesan SSH setelah login, lalu batasi pengguna untuk tidak menggunakan akun
Terkait:Indikator manajer jaringan hilang?
Ubuntu
  1. Menggunakan Reddit dari konsol pada tahun 2020

  2. Bagaimana Cara Mengakses Internet Dari Mesin Virtual Di Kotak Gnome?

  3. Bagaimana Mencegah Pengguna Mengakses Direktori Root?

  1. CentOS / RHEL :Bagaimana mencegah repositori yang dinonaktifkan agar tidak diunduh ke yum cache

  2. Bagaimana cara mengatur bit paritas saat menggunakan layar untuk mengakses port serial

  3. Bagaimana cara mencegah pengguna menyalin file ke hard drive lain?

  1. Dapatkah saya meng-host hanya gambar di layanan Anda?

  2. CentOS / RHE 7:Cara Mencegah Pengguna Menggunakan 10 Kata Sandi Terakhir

  3. Mengizinkan akses ke host virtual Apache hanya dari jaringan lokal