encrypted-swap-using-luks

Encrypted Swap menggunakan LUKS Encryption

Dua hari yang lalu saya dibuat kaget dengan tidak terbacanya swap saat melakukan pengecekan menggunakan free -h . Seperti terlihat di gambar, swap saya total 0B yang seharusnya sekitar 8GB. Ketika saya cek crypttab dan fstab semua tidak ada masalah, namun ketika saya cek blkid, saya kaget setengah sadar 😀 UUID pada partisi saya yang /dev/sda6  hanya berisi PARTUUID tanpa UUID, saya cari-cari di device tidak ada UUID yang tersimpan pada crypttab. Kebetulan saya memasang Encrypted Swap menggunakan LUKS Encryption begitu juga dengan beberapa partisi pada laptop saya.

Usut demi usut, setelah saya obrak-abrik mbah gugel saya menemukan informasi yang valid yang mengatakan bahwa kondisi itu adalah bug yang belum dipatch dari ubuntu 14.04 dan sampai dengan ubuntu 16.04 hal tersebut masih akan terjadi. Saya sampe obrak-abrik gugel karena hal ini terjadi 2 kali, uda rebuildnya lumayan eh hilang mulu swapnya.

Encrypted SwapSekarang swap saya sudah aman lagi, cuma bukan karena sudah aman trus saya menulis artikel ini. Tapi lebih kepada bila ada teman-teman pembaca yang juga mengalami hal yang serupa dapat mencoba solusi yang sudah terbukti ampuh ini. Karena delik masalah yang agak ruwet, akhirnya saya buatkan program kecil disini untuk melakukan soft reboot/shutdown bisa juga untuk rebuilding Encrypted Swap yang hilang entah kenapa. Seluruh proses telah diuji, bahkan pada laptop pribadi penulis (saya) 😀 .

Namun, untuk tetap selalu diingat. Segala bentuk kerusakan yang mungkin ditimbulkan karena mengikuti petunjuk pada postingan ini, sepenuhnya menjadi resiko anda sendiri, BUKAN tanggung jawab penulis. Bila ada diskusi monggo comment. 😀

Berikut Cara Membuat Encrypted Swap menggunakan LUKS Encryption :

1. sudo cryptsetup --verbose --verify-passphrase luksFormat /dev/sda6
2. sudo cryptsetup luksOpen /dev/sda6 sda6_crypt
3. sudo mkswap -L swap /dev/mapper/sda6_crypt
Gunakan UUID pada partisi untuk digunakan pada /etc/crypttab
Data UUID untuk partisi /dev/sda6
UUID="b39babff-ccfb-47d2-bef7-576783659381"

Cek blkid
4. sudo blkid
ekojs@ekojs-laptop:~$ sudo blkid
/dev/sda1: UUID="fcb1ff57-fbfe-4f5d-82bf-fc372cf53904" TYPE="ext4" PARTUUID="2ba375fb-01"
/dev/sda2: UUID="e87c4cc9-81cb-46ae-892d-15f6b1977bbc" TYPE="ext4" PARTUUID="2ba375fb-02"
/dev/sda5: UUID="59a8a751-8f78-49ad-81ac-383f6870588c" TYPE="crypto_LUKS" PARTUUID="2ba375fb-05"
/dev/sda6: UUID="b39babff-ccfb-47d2-bef7-576783659381" TYPE="crypto_LUKS" PARTUUID="2ba375fb-06"

5. sudo vim /etc/crypttab
#sda6_crypt UUID=5b154575-4677-4573-8f97-80664da5b864 none luks,swap,discard
sda6_crypt UUID=b39babff-ccfb-47d2-bef7-576783659381 none luks,swap,discard

Tambahkan entri untuk swap bila belum ada
6. sudo vim /etc/fstab
/dev/mapper/sda6_crypt none swap sw 0 0

Kemudian di test dengan menjalankan cryptdisks_start
7. sudo swapoff -a
8. sudo cryptsetup luksClose sda6_crypt
9. sudo cryptdisks_start sda6_crypt

Aktifkan Swap
10. sudo swapon -a
11. free -h

Nonaktifkan Swap
12. sudo swapoff -a
13. free -h
14. sudo cryptsetup luksClose sda6_crypt

Terakhir Update Initramfs
15. sudo update-initramfs -u -k all

Petunjuk diatas juga dapat digunakan bila akan merebuild ulang swap yang hilang atau rusak. Untuk lebih jelas dan detail dari program yang saya berikan di postingan ini, dapat langsung di baca di github https://github.com/ekojs/matikan.

Lha terus, dimana penyelesaian dari bug yang ditimbulkan ? tenang bro kita sampai kesana nanti. Sekarang mari cermati bugnya terlebih dahulu di link bug ubuntu 14.04. Bila teman-teman pembaca juga memiliki masalah yang sama dengan bug tersebut, silahkan cek link ini dan vote yes agar bug ini bisa menjadi perhatian bagi temen-temen developer.

Oke, sudah dibaca link bugnya ? sampai selesai kan ? Oke, menurut Albert Pool bug tersebut menyebabkan UUID pada swap partition menjadi tidak terbaca, kemudia setelah dia melakukan testing dia menemukan solusi bahwa menambahkan “offset=8” dapat menyelesaikan bug tersebut. Kemudian dibeberapa komentar ada yang memberikan solusi agak lengkap yang berkenaan juga dengan “offset=8” oleh wetware.

Merasa kurang dari pembahasan bug tersebut teman-teman pembaca dapat membaca  link bug berikut yang lebih mengena dalam permasalahan bahwa swap tidak otomatis termounted saat booting. Dari pembahasan inilah akhirnya saya dapat membuat program kecil yang sesuai dengan permasalahan saya dan juga tools yang saya gunakan untuk mengenkripsi swap. Ternyata setelah dites penggunaan “offset=8” bisa menyelesaikan bug tersebut, meski beberapa ada yang mengatakan penggunaan “offset=1024” begitu juga dengan offset kelipatan 512 juga berhasil, namun itu semua perlu disesuaikan.

matikanBerikut adalah tampilan help pada program kecil yang saya buat, program tersebut dibuat untuk dapat melakukan swapon/off secara manual, soft poweroff/reboot dan rebuild Encrypted Swap yang hilang atau rusak. Begitu juga solusi dari pembahasan bug diatas sudah saya terapkan pada program kecil ini.

Akhir kata, semoga artikel kali ini dapat bermanfaat bagi teman-teman pembaca. Bila ada yang perlu didiskusikan, silahkan email ataupun koment. 😀