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.
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
melaluisshfs
, 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
atausudo 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 perintahsudo umount -l ~/Private
. -
eCryptfs memiliki bug dan terkadang
ecryptfs-mount-private
danecryptfs-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 menggunakanecryptfs-remote-mount
danecryptfs-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