Semua sistem berjalan normal Amsterdam · Paris · Reykjavík +5 Bayar dengan Kripto
Keamanan & hardeningMahirBaca 17 menitDiperbarui 2026-08-29

Enkripsi VPS dengan LUKS

Enkripsi disk penuh menjawab tepat satu pertanyaan: apa yang terjadi kalau disk Anda, dalam keadaan mati, berakhir di tangan orang lain. Berikut cara menyiapkannya dengan benar di VPS sewaan — dan penjelasan jujur soal ancaman yang tidak disentuhnya.

Enkripsi VPS dengan LUKS
Di halaman ini
  1. Apa yang sebenarnya dilindungi oleh enkripsi at rest
  2. Catatan penting soal hardware sewaan, disampaikan apa adanya
  3. Volume data atau root filesystem: putuskan sebelum mulai mengetik
  4. Apa yang Anda butuhkan sebelum mulai
  5. Langkah demi langkah
  6. Keyslot, header, dan passphrase yang Anda rotasi
  7. Performa: AES-NI, NVMe, dan dua flag yang perlu diketahui
  8. Jalur root filesystem, dan remote unlock lewat SSH
  9. Hari kedua: apa yang berubah, dan apa yang tidak
  10. Pertanyaan yang sering diajukan

Alasan untuk mengenkripsi server yang Anda sewa lebih sempit daripada yang disarankan oleh materi pemasaran, dan jauh lebih kuat di dalam cakupan sempit itu. Drive NVMe rusak dan dikembalikan ke vendor dengan data Anda masih ada di dalamnya. Node dipensiunkan dan storage-nya dijual kembali. Hardware di-image, atau dibawa keluar dari rak. Dalam setiap kasus itu, LUKS adalah pembeda antara filesystem yang bisa dibaca — kunci Anda, database Anda, mail spool Anda — dan sebongkah derau yang tidak bisa diapa-apakan siapa pun.

Yang bukan dilakukannya adalah melindungi Anda dari mesin tempat Anda berjalan. Perbedaan itulah inti dari seluruh panduan ini, jadi itu disampaikan lebih dulu, sebelum satu perintah pun. Lalu pekerjaannya: volume LUKS2 yang dibuat dengan benar, backup header, swap terenkripsi, remote unlock lewat SSH, dan rencana pemulihan untuk reboot yang tidak pernah kembali. VPS di bawah Anda bisa disewa tanpa ID dan dibayar dengan Monero; enkripsi adalah lapisan yang Anda tambahkan di atas itu, bukan penggantinya.

Apa yang sebenarnya dilindungi oleh enkripsi at rest

Enkripsi disk penuh menjawab satu pertanyaan dan menjawabnya secara tuntas: apa yang terjadi kalau disk itu berakhir di tangan orang lain saat sedang mati? Di infrastruktur sewaan, ini bukan hal hipotetis. Drive rusak dan dikembalikan ke supplier. Node dipensiunkan dan storage-nya dijual kembali. Volume di-image saat investigasi, atau dibawa keluar gedung dalam sebuah krat.

  • Yang dilindungi. Disk yang mati, image offline dari volume Anda, drive yang dikembalikan lewat garansi, node yang dipensiunkan, file snapshot yang disalin. Dalam semua kasus itu, penyerang hanya memegang ciphertext dan header, dan tanpa passphrase, itu adalah akhir ceritanya.
  • Yang tidak dilindungi: mesin yang sedang berjalan. Begitu volume-nya terbuka, kuncinya ada di memori kernel dan filesystem-nya polos bagi apa pun yang punya akses root.
  • Yang tidak dilindungi: traffic Anda. Byte yang lewat jalur jaringan adalah urusan TLS dan WireGuard. LUKS tidak pernah melihatnya.
  • Yang tidak dilindungi: akun root yang sudah dibobol. Penyusup yang sudah masuk membaca file Anda lewat mount yang sama seperti yang Anda pakai. Untuk itulah hardening ada, dan kedua kontrol ini tidak saling menggantikan.

Daftar ini sengaja dibuat pendek. Enkripsi at rest adalah kontrol yang murah dan bernilai tinggi dengan cakupan yang dibatasi secara presisi, dan hampir semua kekecewaan yang dilaporkan orang soal ini berasal dari diam-diam mengharapkannya juga menutup tiga hal lain di atas.

Catatan penting soal hardware sewaan, disampaikan apa adanya

Begitu volume terenkripsi Anda terbuka, kuncinya ada di RAM milik guest — dan di VPS mana pun, RAM itu berada di mesin yang secara fisik dikendalikan oleh operatornya. Hypervisor bisa membaca memori guest. Ini bukan cacat pada LUKS, atau pada KVM, atau pada host ini secara khusus; ini adalah konsekuensi dari menyewa komputer, dan penyedia mana pun yang bilang sebaliknya sedang mendeskripsikan produk yang tidak ada.

Jadi perhitungannya blak-blakan: enkripsi at rest membuat serangan offline jadi mustahil dan membiarkan serangan online persis seperti sebelumnya. Drive yang meninggalkan rak jadi tidak berharga. Server yang sedang berjalan tetap sama terbukanya seperti kemarin. Kedua bagian kalimat itu sama-sama benar sekaligus, dan panduan yang hanya memberi tahu Anda separuh pertama tidak sedang membantu Anda.

Yang benar-benar mengubah keadaan pada bagian kedua itu adalah sekumpulan kontrol yang berbeda, dan itu bertumpuk dengan enkripsi, bukan menggantikannya. Tidak ada apa pun yang tercatat untuk diungkap, karena pendaftaran di sini tanpa KYC — hanya email untuk pengiriman kredensial, tidak lebih. Pembayaran diselesaikan on-chain, bukan lewat bank. Dan yurisdiksi tempat VPS ini berada menentukan perintah macam apa yang bisa memaksa apa pun sama sekali. Uraian jujur kami soal apa yang disembunyikan VPS berbayar kripto membahas sisanya, dan entri Fourteen Eyes membahas sisi berbagi intelijennya. Dibaca sebagai satu lapisan di antara beberapa lapisan, LUKS adalah nilai yang sangat baik. Dibaca sebagai perisai melawan host Anda sendiri, itu adalah kesalahpahaman.

Volume data atau root filesystem: putuskan sebelum mulai mengetik

Ada dua bentuk yang bisa diambil di sini, dan pilihannya soal risiko, bukan soal kekuatan.

  • Volume data terenkripsi. Sebuah container LUKS di samping sistem operasi. Semua yang penting — database, mail, kunci, upload, backup — ada di dalamnya; OS itu sendiri tetap dalam keadaan polos. Sepuluh menit kerja, tanpa risiko boot sama sekali, dan bisa dibatalkan kapan saja. Inilah yang seharusnya dibangun oleh sebagian besar pembaca, dan inilah yang dilakukan oleh langkah-langkah di bawah.
  • Root filesystem terenkripsi. Semuanya ada di dalam, termasuk log, daftar paket, dan riwayat shell yang sudah Anda lupakan. Jelas lebih kuat, dan sungguh-sungguh lebih sulit diterapkan pada mesin yang sudah berjalan.

Alasan di balik kesulitan itu layak disebutkan karena tidak ada satu pun tutorial yang pernah melakukannya: Anda tidak bisa mengenkripsi filesystem yang sedang ter-mount read-write dan sedang melayani sesi SSH Anda. Kedua metode yang benar-benar berfungsi — shrink-and-copy, atau cryptsetup reencrypt di tempat — sama-sama membutuhkan root dalam keadaan offline. Di mesin dengan konsol out-of-band, Anda tinggal boot installer dan itu jadi rutin. Di VPS headless, Anda memindahkan sistem yang sedang berjalan ke RAM disk terlebih dahulu, dan kalau ada bagian mana pun dari proses itu yang salah, VPS-nya tidak akan kembali dan jalan pemulihannya adalah instal ulang, yang menghapus seluruh disk.

Jadi: bangun volume data-nya hari ini, taruh semua yang penting di sana, dan perlakukan root terenkripsi sebagai keputusan yang Anda ambil saat deploy, di mesin yang belum punya apa-apa untuk dikorbankan. Bagian terakhir membahas jalur itu, termasuk dropbear-initramfs untuk mengetik passphrase lewat SSH saat boot.

Apa yang Anda butuhkan sebelum mulai

Tidak banyak, dan itu salah satu alasan kenapa ini layak dilakukan.

  • Sebuah paket. Enkripsi tidak menambah kebutuhan RAM dan nyaris tidak menambah beban CPU. Cub (1 vCPU / 2 GB / 40 GB NVMe, $5.00/mo) sudah cukup; Scout (2 vCPU / 4 GB / 70 GB, $9.00/mo) adalah ukuran yang nyaman kalau VPS-nya juga menjalankan layanan sungguhan. Satu-satunya angka yang benar-benar penting adalah disk, karena volume terenkripsi Anda diambil dari situ.
  • Debian 12 atau 13 dari template library, atau Ubuntu LTS — perintah-perintah di bawah bergaya Debian dan nama paketnya berbeda di distro lain. Deploy makan waktu sekitar satu menit, dan virtualisasi KVM penuh berarti kernel sungguhan dengan modul dm-crypt yang tersedia, bukan container yang meminjam kernel milik orang lain.
  • Sepuluh menit hardening dasar lebih dulu. Enkripsi pada VPS yang masih menerima login lewat password itu seperti gembok di pintu tanpa kusen.
  • Passphrase yang belum pernah Anda pakai di tempat lain, dihasilkan secara acak, bukan dikarang sendiri, dan disimpan di suatu tempat yang tetap ada meski Anda kehilangan mesin ini. Tidak ada pemulihan, tidak ada reset, dan tidak ada tiket dukungan yang bisa membantu.
  • Suatu tempat di luar VPS untuk menyimpan backup header. Snapshot mingguan sudah termasuk di setiap paket, tapi snapshot dari volume terenkripsi tetap saja terenkripsi — berguna untuk rollback, tidak berguna kalau passphrase-nya sudah hilang.

Lokasi tidak berpengaruh pada semua ini, jadi pilih berdasarkan harga atau yurisdiksi: Amsterdam, Paris, Bucharest, dan Sofia berada di harga dasar, sementara Zurich, Reykjavik, Stockholm, dan Kuala Lumpur punya pengali harga.

Langkah demi langkah

  1. Deploy, lakukan hardening, dan pastikan CPU-nya punya AES-NI

    Deploy Debian 13 dari template library dan luangkan sepuluh menit untuk dasar-dasarnya lebih dulu: SSH key saja, login password root dinonaktifkan, nftables default-deny, unattended security upgrades. Lalu pastikan hardware-nya tidak akan membuat Anda membayar mahal untuk ini:

    grep -o -m1 ' aes ' /proc/cpuinfo
    apt update && apt install -y cryptsetup
    cryptsetup benchmark

    Anda sedang mencari angka aes-xts dalam gigabyte per detik. CPU server x86-64 mana pun dari dekade terakhir punya AES-NI, jadi enkripsi tidak akan jadi bottleneck Anda — NVMe di bawahnyalah yang akan jadi bottleneck, persis seperti sebelumnya.

  2. Siapkan ruang untuk volume-nya

    Kalau disk paket Anda punya ruang yang belum dipartisi, pakai itu — partisi sungguhan adalah hal paling bersih untuk dienkripsi:

    lsblk -o NAME,SIZE,TYPE,MOUNTPOINT
    sgdisk -n 0:0:0 -c 0:secure /dev/vda
    partprobe /dev/vda

    Kalau template-nya sudah memenuhi seluruh disk, jangan dilawan. Container berbasis file adalah warga kelas satu di sini, tidak mengorbankan throughput sama sekali di NVMe, dan bisa diperbesar belakangan:

    fallocate -l 20G /var/lib/secure.img
    chmod 600 /var/lib/secure.img
    losetup --find --show /var/lib/secure.img

    Perhatikan loop device yang ditampilkan — biasanya /dev/loop0. Semua contoh di bawah memakai /dev/disk/by-partlabel/secure; ganti dengan loop device Anda kalau Anda mengambil jalur container.

  3. Format sebagai LUKS2 — dan batasi biaya memorinya

    Inilah perintah yang menentukan segalanya, jadi lebih baik dibaca dulu daripada langsung ditempel:

    cryptsetup luksFormat --type luks2 \
      --cipher aes-xts-plain64 --key-size 512 \
      --pbkdf argon2id --pbkdf-memory 262144 --iter-time 5000 \
      /dev/disk/by-partlabel/secure

    --key-size 512 adalah AES-256 dalam mode XTS, yang membagi kunci menjadi dua — ini bukan AES-512, yang memang tidak ada. --pbkdf argon2id adalah key derivation memory-hard yang membuat brute-force terhadap passphrase Anda jadi mahal, baik dari sisi RAM maupun CPU.

    --pbkdf-memory 262144 membatasi itu di 256 MB, dan inilah baris yang sering dilewatkan orang dan disesali kemudian. Kalau dibiarkan, cryptsetup menyesuaikan biaya memori dengan RAM yang tersedia pada saat format dilakukan. Buka header yang sama nanti di tempat dengan RAM lebih kecil — paket 1 GB, lingkungan rescue, sebuah initramfs — dan proses itu bisa gagal total. Batasi secara sengaja.

  4. Buka volume-nya, pasang filesystem, lalu mount
    cryptsetup --perf-no_read_workqueue --perf-no_write_workqueue \
      --allow-discards open /dev/disk/by-partlabel/secure secure
    
    mkfs.ext4 -L secure /dev/mapper/secure
    mkdir -p /srv/secure
    mount -o noatime /dev/mapper/secure /srv/secure
    df -h /srv/secure

    Kedua flag workqueue itu penting di NVMe dan tidak di tempat lain; --allow-discards menjaga TRIM tetap berfungsi dengan konsekuensi membocorkan block mana yang sedang dipakai kepada siapa pun yang memegang disk yang mati. Keduanya dibahas di atas — default di atas sudah yang paling tepat untuk server serba guna.

  5. Backup header LUKS, simpan di luar VPS-nya

    Lakukan ini sekarang, sebelum ada apa pun di volume-nya yang sayang untuk hilang. Header-nya kira-kira 16 MB metadata yang menyimpan keyslot, dan header yang korup berarti ciphertext-nya tidak bisa dipulihkan, sebagus apa pun Anda mengingat passphrase-nya:

    cryptsetup luksHeaderBackup /dev/disk/by-partlabel/secure \
      --header-backup-file /root/secure-header.img
    sha256sum /root/secure-header.img

    Salin ke tempat lain — scp turunkan ke laptop Anda, taruh di password manager, cetak hash-nya — lalu hapus salinan lokalnya. Perlakukan file itu setara dengan passphrase-nya, karena digabung dengan passphrase apa pun yang pernah dipegangnya, memang begitulah adanya.

  6. Pindahkan yang penting ke volume-nya

    Volume terenkripsi yang tidak ditulisi apa pun tidak melindungi apa pun. Hentikan dulu service-nya, pindahkan state-nya, lalu bind-mount path lama supaya tidak ada yang lain perlu dikonfigurasi ulang:

    systemctl stop postgresql
    rsync -aHAX --info=progress2 /var/lib/postgresql/ /srv/secure/postgresql/
    mv /var/lib/postgresql /var/lib/postgresql.old
    mkdir /var/lib/postgresql
    echo '/srv/secure/postgresql /var/lib/postgresql none bind 0 0' >> /etc/fstab
    mount /var/lib/postgresql
    systemctl start postgresql

    Verifikasi dulu bahwa service-nya sehat sebelum men-shred atau menghapus direktori .old — dan ingat bahwa di filesystem copy-on-write atau NVMe dengan wear levelling, menghapus plaintext tidak sama dengan menghancurkannya. Versi paling bersih dari cerita ini adalah membuat volume terenkripsi sebelum service-nya ada.

  7. Putuskan cara volume-nya di-unlock, dan jujurlah soal itu

    Inilah persimpangan yang dihadapi semua orang. Tambahkan volume-nya ke /etc/crypttab dengan noauto supaya tidak ada yang menghalangi proses boot, dan unlock secara manual lewat SSH saat Anda membutuhkannya:

    echo 'secure /dev/disk/by-partlabel/secure none \
      luks,noauto,discard,no-read-workqueue,no-write-workqueue' >> /etc/crypttab
    cryptdisks_start secure

    Itulah konfigurasi yang jujur: kuncinya hanya ada selama Anda hadir, dan reboot membuat volume-nya tetap tertutup sampai Anda memutuskan sebaliknya. Konsekuensinya, reboot tanpa penjagaan akan kembali dengan service dalam keadaan mati.

    Alternatifnya adalah sebuah keyfile di /etc/crypttab supaya volume-nya terbuka otomatis. Kalau keyfile itu ada di disk yang sama, Anda belum mengenkripsi apa-apa — siapa pun yang memegang drive yang mati juga memegang kuncinya, persis di sebelah gemboknya. Ini baru berarti kalau kuncinya datang dari tempat yang bukan di disk itu: diambil lewat tunnel WireGuard saat boot, atau diketik ke initramfs lewat SSH seperti di bagian terakhir. Pilih dengan sengaja; default unlock manual adalah pilihan yang benar-benar sesuai dengan namanya.

  8. Enkripsi swap-nya, dan verifikasi semuanya

    Swap adalah tempat memori berakhir menjadi artefak disk, jadi volume terenkripsi di sebelah swap plaintext membocorkan persis rahasia yang sedang Anda lindungi. Kunci acak per boot adalah jawaban yang tepat — tidak ada yang perlu dikelola, tidak ada yang bisa hilang. Cek swapon --show dulu dan ganti dengan device Anda sendiri; kalau template-nya memberi Anda swap berupa file, bukan partisi, hapus dan pakai partisi kecil sebagai gantinya, karena device dengan kunci acak butuh sebuah block device:

    swapoff -a
    sed -i '/swap/s/^/#/' /etc/fstab
    echo 'swap /dev/vda3 /dev/urandom \
      swap,cipher=aes-xts-plain64,size=512' >> /etc/crypttab
    echo '/dev/mapper/swap none swap sw 0 0' >> /etc/fstab

    Lalu reboot — selagi masih murah untuk salah — dan cek hasilnya dengan jujur:

    lsblk -o NAME,FSTYPE,MOUNTPOINT
    cryptsetup status secure
    blkid /dev/disk/by-partlabel/secure   # should say crypto_LUKS
    swapon --show                          # should show /dev/mapper/swap

    Tes yang benar-benar menentukan: dengan volume dalam keadaan tertutup, pastikan /srv/secure kosong dan service yang bergantung padanya menolak untuk start. Kalau keduanya benar, enkripsinya nyata, bukan sekadar dekorasi.

Keyslot, header, dan passphrase yang Anda rotasi

LUKS2 menyimpan sampai 32 keyslot. Masing-masing menampung salinan dari master key yang sama, dibungkus dengan passphrase yang berbeda-beda, itulah sebabnya Anda bisa menambahkan passphrase kedua tanpa perlu meng-enkripsi ulang apa pun:

cryptsetup luksAddKey /dev/disk/by-partlabel/secure
cryptsetup luksDump /dev/disk/by-partlabel/secure | grep -A2 '^Keyslots'
cryptsetup luksKillSlot /dev/disk/by-partlabel/secure 1

Dua passphrase sejak awal adalah default yang tepat: satu yang Anda pakai sehari-hari, satu lagi ditulis dan disimpan di tempat lain. Kehilangan satu-satunya akses ke sebuah volume gara-gara salah ketik di password manager adalah cara paling umum orang kehilangan data LUKS-nya, jauh mengalahkan apa pun yang dilakukan penyerang.

Sekarang jebakannya. Backup header yang diambil sebelum Anda merotasi passphrase tetap bisa membuka volume dengan passphrase yang lama. Keyslot berada di dalam header, jadi salinan lama dari header adalah salinan lama dari keyslot — master key di baliknya tidak pernah berubah. Kalau Anda merotasi passphrase karena kemungkinan bocor, Anda harus menghancurkan setiap backup header yang diambil sebelum rotasi itu dan mengambil yang baru. Kalau tidak, rotasi itu tidak mencapai apa-apa selain membuat Anda merasa lebih tenang.

Fakta yang sama membuat backup header sensitif dengan sendirinya: file 16 MB itu, ditambah passphrase apa pun yang pernah dikenalnya, sudah cukup untuk mendekripsi volume-nya. Simpan itu di tempat yang sama seperti Anda menyimpan passphrase, bukan di tempat Anda menyimpan snapshot.

Performa: AES-NI, NVMe, dan dua flag yang perlu diketahui

cryptsetup benchmark memberi tahu Anda kebenarannya untuk vCPU spesifik Anda dalam kira-kira lima belas detik. Di CPU mana pun dengan AES-NI — yang berarti prosesor server x86-64 mana pun dari dekade terakhir — harapkan angka beberapa gigabyte per detik untuk aes-xts, jauh lebih cepat daripada NVMe di bawahnya. Overhead praktis pada beban kerja sungguhan hanya beberapa persen kecil, dan itu adalah beban CPU, bukan latency.

Dua opsi cryptsetup yang penting di storage cepat, dan hanya di storage cepat:

cryptsetup --perf-no_read_workqueue --perf-no_write_workqueue \
  --allow-discards open /dev/disk/by-partlabel/secure secure

Flag workqueue ini melewati antrean internal dm-crypt dan menyerahkan I/O langsung ke device-nya. Di disk berputar, keduanya tidak mengubah apa-apa; di NVMe RAID10, keduanya menghilangkan bottleneck nyata pada queue depth yang tinggi. Tambahkan ke baris opsi crypttab sebagai no-read-workqueue,no-write-workqueue supaya permanen.

--allow-discards adalah yang punya trade-off. Opsi ini meneruskan TRIM ke NVMe, yang menjaga performa tulis tetap baik seiring waktu — dan sekaligus membocorkan kepada siapa pun yang memegang disk yang mati, block mana yang sedang dipakai dan mana yang kosong. Itu kebocoran informasi yang nyata, meski kecil: ini membeberkan kira-kira seberapa penuh volume-nya dan bisa memberi petunjuk soal struktur filesystem-nya. Di server serba guna, ambil saja performanya. Kalau isi volume Anda termasuk hal yang ukurannya sensitif, matikan discard.

Jalur root filesystem, dan remote unlock lewat SSH

Kalau Anda ingin semuanya terenkripsi, lakukan di mesin yang belum punya apa-apa di dalamnya — deploy, konversi, baru bangun. Konversinya sendiri standar: kecilkan root filesystem saat sedang offline, buat container LUKS2 di ruang yang dibebaskan, salin sistemnya dengan rsync -aHAX, arahkan /etc/fstab dan /etc/crypttab ke mapper device-nya, lalu update-initramfs -u -k all dan instal ulang GRUB. Bagian yang membuat ini jadi masalah khusus VPS headless ada pada kata saat sedang offline: mencapai kondisi itu tanpa konsol berarti memindahkan sistem yang sedang berjalan ke RAM root terlebih dahulu, dan itulah langkah yang berakhir dengan instal ulang kalau ada yang salah.

Yang membuat root terenkripsi bisa dipakai sama sekali di mesin remote adalah dropbear-initramfs — SSH server berukuran kira-kira 200 KB yang dipanggang ke dalam boot image, mendengarkan selagi kernel menunggu passphrase-nya:

apt install dropbear-initramfs cryptsetup-initramfs

# Debian 12/13: /etc/dropbear/initramfs/
cp ~/.ssh/unlock_key.pub /etc/dropbear/initramfs/authorized_keys
chmod 600 /etc/dropbear/initramfs/authorized_keys

echo 'DROPBEAR_OPTIONS="-I 300 -j -k -p 2222 -s -c cryptroot-unlock"' \
  >> /etc/dropbear/initramfs/dropbear.conf

echo 'IP=:::::eth0:dhcp' >> /etc/initramfs-tools/initramfs.conf
update-initramfs -u -k all

Anda kemudian ssh -p 2222 root@your-ip saat boot dan perintah cryptroot-unlock yang dipaksa akan meminta passphrase-nya. Ada tiga hal soal ini yang layak diketahui sebelum Anda mengandalkannya. Initramfs punya host key sendiri, jadi klien Anda akan memperingatkan soal ketidakcocokan di port 2222 — itu memang wajar terjadi, dan itulah alasan memberinya port khusus. Host key itu dan authorized_keys Anda berada di partisi boot yang tidak terenkripsi, bisa dibaca oleh siapa pun yang memegang disknya, jadi gunakan unlock key yang tidak dipakai untuk hal lain apa pun. Dan -s menonaktifkan login password di initramfs, dan itu bukan pilihan opsional.

Detail lain yang menggigit di paket kecil adalah yang dari langkah tiga, dan di sinilah gigitannya paling keras. Initramfs berjalan sebelum sebagian besar RAM Anda tersedia untuk hal yang nyaman, jadi header yang diformat dengan biaya memori Argon2id yang besar bisa gagal terbuka justru di mesin yang membuatnya. Format dengan --pbkdf-memory yang dibatasi, dan uji reboot-nya selagi Anda belum kehilangan apa-apa.

Hari kedua: apa yang berubah, dan apa yang tidak

Nyaris tidak ada, dan itulah intinya. Volume LUKS yang terbuka adalah block device biasa; fsck, rsync, df, dan tool backup Anda semuanya berperilaku persis seperti sebelumnya. Upgrade kernel tidak terdampak karena dm-crypt sudah in-tree. Memperbesar volume setelah upgrade paket hanya dua perintah — cryptsetup resize lalu resize filesystem-nya sendiri — dan tidak butuh enkripsi ulang.

Ada tiga kebiasaan yang layak dibangun. Latih reboot-nya secara terjadwal, alih-alih baru sadar jam 3 pagi bahwa passphrase yang tidak pernah Anda tulis adalah satu-satunya salinan. Jaga agar backup tetap terenkripsi secara independenrestic atau borg ke target off-site, yang merupakan kontrol terpisah dari volume-nya dan tetap bertahan meski VPS-nya hilang sepenuhnya; add-on backup off-site harian tersedia seharga $2.00/mo kalau Anda tidak mau membangunnya sendiri. Dan tutup volume-nya sebelum Anda berhenti peduli pada VPS itu: cryptsetup close secure sebelum shutdown terencana, migrasi, atau instal ulang berarti kuncinya sudah keluar dari memori sebelum disknya berhenti menjadi milik Anda.

Soal kebijakan, tidak ada yang perlu dinegosiasikan. Anda mendapat full root di guest KVM dan apa yang Anda lakukan dengan block layer adalah urusan Anda sendiri; mengenkripsi volume Anda sendiri adalah administrasi sistem biasa, bukan kasus khusus. Acceptable use policy kami mengatur soal perilaku — batas mutlaknya adalah tidak boleh CSAM dan tidak boleh terorisme — dan tidak bicara apa-apa soal dm-crypt. Yang benar-benar diubah oleh enkripsi adalah bentuk dari hari buruk yang hipotetis: volume yang mati dan meninggalkan gedung ini hanyalah derau, dan itu sepadan dengan sepuluh menit waktu Anda.

Pertanyaan yang sering diajukan

Apakah enkripsi disk penuh mencegah penyedia hosting saya membaca data saya?

Tidak, selama server-nya masih menyala. Begitu volume-nya terbuka, kuncinya ada di RAM milik guest, dan di VPS mana pun, memori itu berada di hardware yang dikendalikan operatornya — hypervisor bisa membacanya. Yang sepenuhnya dilakukan LUKS adalah membuat disk yang mati jadi tidak berharga: drive yang dikembalikan ke vendor, node yang dipensiunkan, image offline. Siapa pun yang memasarkan enkripsi disk sebagai perlindungan dari host Anda sendiri sedang mendeskripsikan sesuatu yang tidak ada.

Bisakah saya mengenkripsi VPS yang tidak punya akses konsol atau KVM-over-IP?

Volume data terenkripsi, ya — sepenuhnya lewat SSH, tanpa risiko boot, dalam kira-kira sepuluh menit. Root filesystem terenkripsi itu lain soal: setiap metode membutuhkan root dalam keadaan offline, yang di mesin headless berarti memindahkan sistem yang sedang berjalan ke RAM disk terlebih dahulu. Itu bisa berhasil, dan itu juga cara orang kehilangan server mereka. Konversilah saat deploy, ketika VPS-nya belum punya apa-apa, dan gunakan dropbear-initramfs supaya Anda bisa mengetik passphrase lewat SSH saat boot.

Berapa banyak performa yang sebenarnya hilang karena LUKS?

Hanya beberapa persen kecil di CPU mana pun dengan AES-NI, yang berarti vCPU x86-64 modern mana pun. Jalankan cryptsetup benchmark dan Anda akan melihat aes-xts dalam gigabyte per detik — lebih cepat daripada NVMe tempatnya berada, jadi storage tetap jadi bottleneck-nya. Di disk cepat, --perf-no_read_workqueue dan --perf-no_write_workqueue memulihkan sebagian besar sisanya di queue depth yang tinggi.

Apa yang terjadi kalau saya kehilangan passphrase-nya?

Datanya hilang. Tidak ada mekanisme pemulihan, tidak ada master key yang dipegang orang lain, dan tidak ada tiket dukungan yang bisa membantu — itulah properti yang Anda beli. Mitigasi dari awal: tambahkan passphrase kedua di keyslot terpisah dengan cryptsetup luksAddKey, dan simpan backup header-nya di luar VPS. Perlu diingat, backup header yang diambil sebelum rotasi passphrase tetap bisa membuka volume dengan passphrase yang lama, jadi hancurkan salinan lama itu saat Anda melakukan rotasi.

Paket VPS mana yang saya butuhkan untuk menjalankan volume terenkripsi?

Enkripsi tidak menambah kebutuhan RAM dan nyaris tidak menambah beban CPU, jadi tier-nya ditentukan oleh beban kerja Anda, bukan oleh LUKS. Cub (1 vCPU / 2 GB / 40 GB NVMe, $5.00/mo) menjalankan volume terenkripsi tanpa terasa bedanya; Scout (2 vCPU / 4 GB / 70 GB, $9.00/mo) adalah ukuran yang nyaman kalau VPS-nya juga menjalankan database atau mail server. Satu-satunya batasan nyata adalah disk, karena volume-nya diambil dari situ.

Apakah mengenkripsi server saya diperbolehkan di paket-paket Anda?

Ya — itu administrasi sistem biasa. Anda mendapat full root di guest KVM dengan kernel sungguhan, jadi dm-crypt, partisi custom, dan apa pun lainnya di block layer adalah milik Anda untuk dikonfigurasi. Acceptable use policy kami mengatur perilaku, bukan konfigurasi, dan batas mutlaknya di sana adalah tidak boleh CSAM dan tidak boleh terorisme.

Apakah saya perlu mengenkripsi swap juga?

Ya, dan ini langkah yang paling sering dilewatkan kebanyakan panduan. Swap adalah tempat memori kernel — termasuk kunci dan buffer yang sudah didekripsi — berakhir menjadi artefak disk, jadi swap plaintext di sebelah volume terenkripsi membocorkan hal yang justru sedang Anda lindungi. Gunakan kunci acak per boot lewat /etc/crypttab: tidak ada yang perlu dikelola dan tidak ada yang bisa hilang. Akibatnya, hibernation jadi tidak mungkin dilakukan, dan di VPS itu tidak merugikan Anda sama sekali.

Deploy VPS offshore dalam waktu sekitar satu menit

Tanpa KYC, dibayar kripto, semua NVMe. Pilih paket, bayar dengan Monero atau koin besar lainnya, dapatkan root dalam sekitar 60 detik.

Fenrir berjaga