GNU/Linux >> Belajar Linux >  >> Linux

Buka kunci disk terenkripsi di Linux secara otomatis

Dari sudut pandang keamanan, penting untuk mengenkripsi data sensitif Anda untuk melindunginya dari pengintai dan peretas. Linux Unified Key Setup (LUKS) adalah alat yang hebat dan standar umum untuk enkripsi disk Linux. Karena menyimpan semua informasi penyiapan terkait di header partisi, ini memudahkan migrasi data.

Untuk mengonfigurasi disk atau partisi terenkripsi dengan LUKS, Anda harus menggunakan utilitas cryptsetup. Sayangnya, salah satu kelemahan mengenkripsi disk Anda adalah Anda harus memberikan kata sandi secara manual setiap kali sistem di-boot ulang atau disk di-remount.

Lebih banyak sumber daya Linux

  • Lembar contekan perintah Linux
  • Lembar contekan perintah Linux tingkat lanjut
  • Kursus online gratis:Ikhtisar Teknis RHEL
  • Lembar contekan jaringan Linux
  • Lembar contekan SELinux
  • Lembar contekan perintah umum Linux
  • Apa itu container Linux?
  • Artikel Linux terbaru kami

Namun, Enkripsi Disk Terikat Jaringan (NBDE) dapat secara otomatis dan aman membuka kunci disk terenkripsi tanpa campur tangan pengguna. Ini tersedia di beberapa distribusi Linux, dimulai dengan Red Hat Enterprise Linux 7.4, CentOS 7.4, dan Fedora 24, dan di masing-masing versi yang lebih baru.

NBDE diimplementasikan dengan teknologi berikut:

  • Kerangka kerja Clevis: Alat kerangka kerja yang dapat dipasang yang secara otomatis mendekripsi dan membuka kunci volume LUKS
  • Server Tang: Layanan untuk mengikat kunci kriptografi ke keberadaan jaringan

Tang memberikan kunci enkripsi ke klien Clevis. Menurut pengembang Tang, ini memberikan alternatif anonim yang aman, tanpa kewarganegaraan, untuk layanan escrow utama.

Karena NBDE menggunakan arsitektur client-server, Anda harus mengkonfigurasi klien dan server. Anda dapat menggunakan mesin virtual di jaringan lokal untuk server Tang Anda.

Instalasi server

Instal Tang menggunakan sudo:

sudo yum install tang -y

Aktifkan server Tang:

sudo systemctl enable tangd.socket --now

Server Tang bekerja pada port 80 dan harus ditambahkan ke firewalld. Tambahkan aturan firewalld yang sesuai:

sudo  firewall-cmd --add-port=tcp/80 --perm
sudo firewall-cmd --reload

Server sekarang harus diinstal.

Penginstalan klien

Untuk contoh ini, anggap Anda telah menambahkan disk 1GB baru bernama /dev/vdc ke sistem Anda.

Buat partisi utama menggunakan fdisk atau parted:

sudo fdisk /dev/vdc

Selesaikan langkah-langkah berikut untuk menginstal klien.

Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x4a6812d4.

Command (m for help):

Masukkan n untuk membuat partisi baru:

Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended  
Select (default p):

Tekan tombol Enter kunci untuk memilih partisi utama:

Using default response p
Partition number (1-4, default 1):

Tekan tombol Enter tombol untuk memilih nomor partisi default:

First sector (2048-2097151, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-2097151, default 2097151):

Tekan tombol Enter kunci untuk memilih sektor terakhir:

Using default value 2097151
Partition 1 of type Linux and of size 1023 MiB is set

Command (m for help): wq

Ketik wq untuk menyimpan perubahan dan keluar dari fdisk:

The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

Jalankan partprobe untuk menginformasikan sistem perubahan tabel partisi:

sudo partprobe

Instal paket cryptsetup menggunakan sudo:

sudo yum install cryptsetup -y

Gunakan cryptsetup luksFormat perintah untuk mengenkripsi disk. Anda harus mengetik YA saat diminta dan juga pilih dan masukkan frasa sandi untuk mengenkripsi disk:

sudo cryptsetup luksFormat /dev/vdc1
WARNING!
========
This will overwrite data on /dev/vdc1 irrevocably.

Are you sure? (Type uppercase yes):

Enter passphrase for /dev/vdc1:
Verify passphrase:

Gunakan cryptsetup luksOpen perintah untuk memetakan partisi terenkripsi ke perangkat logis. Misalnya, gunakan encryptedvdc1 sebagai nama. Anda juga harus memasukkan kata sandi lagi:

sudo cryptsetup luksOpen /dev/vdc1 encryptedvdc1
Enter passphrase for /dev/vdc1:

Partisi terenkripsi sekarang tersedia di /dev/mapper/encryptedvdc1 .

Buat sistem file XFS pada partisi terenkripsi:

sudo mkfs.xfs /dev/mapper/encryptedvdc1

Buat direktori untuk memasang partisi terenkripsi:

sudo mkdir /encrypted

Gunakan cryptsetup luksClose perintah untuk mengunci partisi:

cryptsetup luksClose encryptedvdc1

Instal paket Clevis menggunakan sudo:

sudo yum install clevis clevis-luks clevis-dracut -y

Ubah /etc/crypttab untuk membuka volume terenkripsi saat boot:

sudo vim /etc/crypttab

Tambahkan baris berikut:

encryptedvdc1       /dev/vdc1  none   _netdev

Ubah /etc/fstab untuk secara otomatis memasang volume terenkripsi selama reboot atau saat boot:

sudo vim /etc/fstab

Tambahkan baris berikut:

/dev/mapper/encryptedvdc1   /encrypted       xfs    _netdev        1 2

Untuk contoh ini, anggap alamat IP server Tang adalah 192.168.1.20 . Anda juga dapat menggunakan nama host atau domain jika Anda mau.

Jalankan clevis berikut ini perintah:

sudo clevis bind luks -d /dev/vdc1 tang '{"url":"http://192.168.1.20"}'
The advertisement contains the following signing keys:

rwA2BAITfYLuyNiIeYUMBzkhk7M

Do you wish to trust these keys? [ynYN] Y
Enter existing LUKS password:

Ketik Y untuk menerima kunci untuk server Tang dan memberikan kata sandi LUKS yang ada untuk pengaturan awal.

Aktifkan clevis-luks-askpass.path melalui systemctl agar tidak dimintai frasa sandi untuk partisi non-root.

sudo systemctl enable clevis-luks-askpass.path

Klien diinstal. Sekarang, setiap kali Anda me-reboot server, disk terenkripsi akan secara otomatis didekripsi dan dipasang dengan mengambil kunci dari server Tang.

Jika server Tang tidak tersedia karena alasan apa pun, Anda harus memberikan frasa sandi secara manual untuk mendekripsi dan memasang partisi.


Linux
  1. Cara Mengelola Partisi Swap di Linux

  2. Pemulihan Windows Spanned Disks (LDM) dengan Linux?

  3. Bagaimana cara memindahkan partisi di GNU/Linux?

  1. Cara mempartisi disk di Linux

  2. Membuat Partisi Recovery di Embedded Linux?

  3. Menggunakan frasa sandi tunggal untuk membuka kunci banyak disk terenkripsi saat boot

  1. Siapkan disk data di Server Cloud Linux

  2. Ulangi perintah secara otomatis di Linux

  3. Enkripsi partisi yang ada di Linux sambil mempertahankan datanya