Persiapan
Dalam persiapan ini kita akan mebuat sebuah partisi ESP dengan format fat16 pada usb. Tipe partisi ESP dengan format FAT 16 ditujukan untuk menghindari paritisi secara otomatis terbaca saat di gunakan. Untuk operasi ini, kita membutuhkan akses root, oleh sebab itu kita mengganti terlebih dahulu roles menjadi root dengan perintah:
Selanjutnya kita mencari path dari usb yang akan kita gunakan dengan perintah:
Berikut contoh output dari perintah tersebut:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 1 7.3G 0 disk
├─sda1 8:1 1 1.9G 0 part
└─sda2 8:2 1 5.4G 0 part
└─luks-abc8e9f3-1186-4ef3-b2f0-3ed275e07365
253:5 0 5.4G 0 crypt /run/media/null/datums
nvme0n1 259:0 0 476.9G 0 disk
├─nvme0n1p1 259:1 0 260M 0 part /boot/efi
├─nvme0n1p2 259:2 0 16M 0 part
├─nvme0n1p3 259:3 0 250.9G 0 part
├─nvme0n1p4 259:4 0 1.1G 0 part
├─nvme0n1p5 259:5 0 1G 0 part /boot
└─nvme0n1p6 259:6 0 223.6G 0 part
└─luks-36ea0348-6860-4926-b799-9dca2f7244eb
253:0 0 223.6G 0 crypt
├─rhel_karim-root 253:1 0 30G 0 lvm /
├─rhel_karim-swap 253:2 0 7.7G 0 lvm [SWAP]
├─rhel_karim-home 253:3 0 115.9G 0 lvm /home
└─rhel_karim-var_lib_libvirt 253:4 0 70G 0 lvm /var/lib/libvirt
|
kita akan menggunakan sda1
sebagai paritisi yang berada didalam usb drive untuk diubah menjadi EPS dengan format FAT16, kita akan menggunakan cfdisk untuk menggati tipe partisi dengan perintah:
output dari perintah tersebut adalah:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| Disk: /dev/sda
Size: 7.26 GiB, 7798784000 bytes, 15232000 sectors
Label: gpt, identifier: B81DEE59-E012-4A1F-ADED-E8B1C110177D
Device Start End Sectors Size Type
>> /dev/sda1 2048 3909631 3907584 1.9G EFI System
/dev/sda2 3909632 15230975 11321344 5.4G unknown
┌───────────────────────────────────────────────────────────────────────────┐
│ Partition UUID: BD619216-97B6-4245-9E0B-0DD7E121F602 │
│ Partition type: EFI System (C12A7328-F81F-11D2-BA4B-00A0C93EC93B) │
│Filesystem UUID: 38CD-98E8 │
│ Filesystem: vfat │
└───────────────────────────────────────────────────────────────────────────┘
[ Delete ] [ Resize ] [ Quit ] [ Type ] [ Help ] [ Write ]
[ Dump ]
Quit program without writing changes
|
pilih drive dan kemudian ambil menu type
pada menu bagian bawah. selanjutnya pilih EFI System
seperti contoh dibawah ini:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| ┌ Select partition type ───────┐
│ EFI System │
│ MBR partition scheme │
│ Intel Fast Flash │
│ BIOS boot │
│ Sony boot partition │
│ Lenovo boot partition │
│ PowerPC PReP boot │
│ ONIE boot │
│ ONIE config │
│ Microsoft reserved │
│ Microsoft basic data │
│ Microsoft LDM metadata │
│ Microsoft LDM data │
│ Windows recovery environment │
│ IBM General Parallel Fs │
│ Microsoft Storage Spaces │
│ HP-UX data │
│ HP-UX service │
│ Linux swap │
└────────────────────────────↓─┘
C12A7328-F81F-11D2-BA4B-00A0C93EC93B
|
tekan tombol enter
untuk memilih, selanjutnya kita akan kembali ke menu utama, pada menu bagian bawah pilih menu [ Write ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| Disk: /dev/sda
Size: 7.26 GiB, 7798784000 bytes, 15232000 sectors
Label: gpt, identifier: B81DEE59-E012-4A1F-ADED-E8B1C110177D
Device Start End Sectors Size Type
>> /dev/sda1 2048 3909631 3907584 1.9G EFI System
/dev/sda2 3909632 15230975 11321344 5.4G unknown
┌───────────────────────────────────────────────────────────────────────────┐
│ Partition UUID: BD619216-97B6-4245-9E0B-0DD7E121F602 │
│ Partition type: EFI System (C12A7328-F81F-11D2-BA4B-00A0C93EC93B) │
│Filesystem UUID: 38CD-98E8 │
│ Filesystem: vfat │
└───────────────────────────────────────────────────────────────────────────┘
[ Delete ] [ Resize ] [ Quit ] [ Type ] [ Help ] [ Write ]
[ Dump ]
Changed type of partition 1.
|
selanjutnya pilih menu [ Quit ]
. Sampai pada tahap ini kita tinggal melakukan format terhadap paritisi /dev/sda1
dengan perintah.
ganti /dev/sda1
dengan path yang anda gunakan masing masing.
Menambahkan luks key kedalam usb
mount paritisi /dev/sda1
ke direktori mnt
dengan perintah:
selanjutnya generate random key
1
| dd if=/dev/urandom of=/mnt/karim.key bs=4096 count=1
|
ganti davinci.key
dengan nama yang anda inginkan. output dari perintah tersebut adalah:
1
2
3
4
| dd if=/dev/urandom of=/mnt/davinci.key bs=4096 count=1
1+0 records in
1+0 records out
4096 bytes (4.1 kB, 4.0 KiB) copied, 0.000481918 s, 8.5 MB/s
|
selanjutnya kita tambahkan key kedalam volume luks. sebelumnya kita cek terlebih dahulu dengan perintah :
output dari perintah tersebut
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 1 7.3G 0 disk
├─sda1 8:1 1 1.9G 0 part /mnt
└─sda2 8:2 1 5.4G 0 part
└─luks-abc8e9f3-1186-4ef3-b2f0-3ed275e07365
253:5 0 5.4G 0 crypt /run/media/null/datums
nvme0n1 259:0 0 476.9G 0 disk
├─nvme0n1p1 259:1 0 260M 0 part /boot/efi
├─nvme0n1p2 259:2 0 16M 0 part
├─nvme0n1p3 259:3 0 250.9G 0 part
├─nvme0n1p4 259:4 0 1.1G 0 part
├─nvme0n1p5 259:5 0 1G 0 part /boot
└─nvme0n1p6 259:6 0 223.6G 0 part
└─luks-36ea0348-6860-4926-b799-9dca2f7244eb
253:0 0 223.6G 0 crypt
├─rhel_davinci-root 253:1 0 30G 0 lvm /
├─rhel_davinci-swap 253:2 0 7.7G 0 lvm [SWAP]
├─rhel_davinci-home 253:3 0 115.9G 0 lvm /home
└─rhel_davinci-var_lib_libvirt
253:4 0 70G 0 lvm /var/lib/libvirt
|
dari informasi di atas kita mengetahui path paritisi yang terenkripsi dengan luks adalah partisi dengan nama nvme0n1p6
. sekarang kita menambahkan key ke partisi nvme0n1p6
dengan perintah:
1
| cryptsetup luksAddKey /dev/nvme0n1p6 /mnt/davinci.key
|
/mnt/davinci.key
adalah path dari paritisi usb yang kita mount sebelumnya dan /dev/nvme0n1p6
adalah paritisi yang di enkripsi menggunakan luks. anda akan diminta memasukan password luks yang telah tersimpan secara manual.
1
2
| cryptsetup luksAddKey /dev/nvme0n1p6 /mnt/davinci.key
Enter any existing passphrase:
|
selanjutnya kita akan mencoba membuka paritisi luks menggunakan kunci yang telah kita buat.
1
| cryptsetup luksOpen --key-file /mnt/davinci.key --test-passphrase /dev/nvme0n1p6 && echo "Key register." || echo "Key not found."
|
Jika output dari comment tersebut adalah key register
maka key telah berhasil ditanamkan ke partisi luks,
Rekonfigurasi Crypttab
pertama kita haru mengetahui terlebih dahulu UUID usb drive, untuk mengetahui UUID dari usb yang kita gunakan bisa menggunakan perintah:
1
| lsblk /dev/sda1 -o UUID
|
output dari perintah tersebut adalah:
Tambahkan syntax berikut pada file /etc/crypttab
dengan perintah:
outputnya adalah
1
| luks-36ea0348-6860-4926-b799-9dca2f7244eb UUID=36ea0348-6860-4926-b799-9dca2f7244eb none discard
|
ganti none
dengan format
dari tutorial ini maka valuenya adalah
1
| davinci.key:UUID=38CD-98E8
|
dan tambahkan ganti value discard
dengan
1
| discard,keyfile-timeout=5s
|
dari proses diatas maka yang pada awalnya output dari perintah vi /etc/crypttab
adalah :
1
| luks-36ea0348-6860-4926-b799-9dca2f7244eb UUID=36ea0348-6860-4926-b799-9dca2f7244eb none discard
|
berubah menjadi
1
| luks-36ea0348-6860-4926-b799-9dca2f7244eb UUID=36ea0348-6860-4926-b799-9dca2f7244eb davinci.key:UUID=38CD-98E8 discard,keyfile-timeout=5s
|
Rekonfigurasi GRUB2
edit default konfigurasi grub dengan perintah
berikut format syntax yang akan di tambahkan
1
| rd.luks.key=LUKS_DRIVE_UUID=keyfile:UUID=USB_DRIVE_UUID rd.luks.options=timeout=5s
|
berdasarkan keterangan sebelumnya maka kita akan menggunakan sintax berikut, jangan lupa disesuikan dengan informasi perangkat anda karena setiap perangkat akan berbeda beda.
1
| rd.luks.key=36ea0348-6860-4926-b799-9dca2f7244eb=davinci.key:UUID=38CD-98E8 rd.luks.options=timeout=5s
|
tambahkan systax diatas setelah property rd.luks.uuid
, berikut konfigurasi default dari file /etc/default/grub
1
2
3
4
5
6
7
8
9
| GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="resume=/dev/mapper/rhel_davinci-swap rd.luks.uuid=luks-36ea0348-6860-4926-b799-9dca2f7244eb rd.lvm.lv=rhel_davinci/root rd.lvm.lv=rhel_davinci/swap rhgb quiet splash fips=1 boot=UUID=47ab35c0-4102-41ee-a131-a5efa446e984"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true
GRUB_DISABLE_OS_PROBER=true
|
setelah ditambahkan maka berubah menjadi
1
2
3
4
5
6
7
8
9
| GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="resume=/dev/mapper/rhel_davinci-swap rd.luks.uuid=luks-36ea0348-6860-4926-b799-9dca2f7244eb rd.luks.key=36ea0348-6860-4926-b799-9dca2f7244eb=davinci.key:UUID=38CD-98E8 rd.luks.options=timeout=5s rd.lvm.lv=rhel_davinci/root rd.lvm.lv=rhel_davinci/swap rhgb quiet splash fips=1 boot=UUID=47ab35c0-4102-41ee-a131-a5efa446e984"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true
GRUB_DISABLE_OS_PROBER=true
|
update initramfs
selanjutnya generate GRUB2 config dengan format, sesuaikan dengan perangkat anda masing masing.
1
| grub2-mkconfig -o /boot/efi/EFI/[distro_name]/grub.cfg
|
contoh dari command di atas adalah:
1
| grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
|
lalu restart perangkat anda untuk uji coba.