Come crittografare i dischi con Parted e SSM in Linux (Parte 8)
In questo articolo della serie RHCSA, discuteremo come impostare e configurare lo storage del sistema locale in Red Hat Enterprise Linux 9 utilizzando gli strumenti classici e introdurremo System Storage Manager ( noto anche come SSM) e il comando parted, che semplifica notevolmente questo compito.
Creazione e modifica delle partizioni in RHEL 9
In RHEL 9, parted è l'utilità predefinita per lavorare con le partizioni e ti consentirà di:
- Visualizza la tabella delle partizioni corrente.
- Manipolare (aumentare o diminuire la dimensione delle) partizioni esistenti.
- Crea partizioni utilizzando lo spazio libero o dispositivi di archiviazione fisici aggiuntivi.
Si consiglia prima di tentare la creazione di una nuova partizione o la modifica di una esistente, di assicurarsi che nessuna delle partizioni sul dispositivo sia in uso e, se si utilizza parte del dispositivo come swap devi disabilitarlo durante il processo.
umount /dev/partition
swapoff -v /dev/partition
Sostituisci /dev/partition
con il dispositivo di partizione effettivo con cui vuoi lavorare.
Il modo più semplice per farlo è avviare RHEL in modalità salvataggio utilizzando il seguente comando.
systemctl rescue
Ti verrà quindi presentato un prompt della shell.
Per creare una nuova partizione, è necessario collegare un nuovo disco. A scopo dimostrativo, ho creato 2 nuovi dischi rigidi virtuali da 8 GB ciascuno nella mia VM (Macchina Virtuale) utilizzando Virtualbox.
Per iniziare parted, digita semplicemente.
parted /dev/sdb
Dove /dev/sdb
è il dispositivo su cui creerai la nuova partizione; quindi digita stampa per visualizzare la tabella delle partizioni dell'unità corrente:
Come puoi vedere, in questo esempio stiamo utilizzando un'unità virtuale di 8 GB. Procederemo ora alla creazione di una partizione primaria da 7 GB e quindi alla formattazione con il filesystem xfs, che è quello predefinito in RHEL.
Puoi scegliere tra una varietà di file system. Dovrai creare manualmente la partizione con mkpart e poi formattarla con mkfs.fstype come al solito perché mkpart non supporta molti filesystem moderni della scatola.
Nell'esempio seguente, imposteremo un'etichetta per il dispositivo e quindi creeremo una partizione primaria (p)
su /dev/sdb
, che inizia da 0 % percentuale del dispositivo e termina a 7000 MB (7 GB):
Successivamente, formatteremo la partizione come xfs e stamperemo nuovamente la tabella delle partizioni per verificare che le modifiche siano state applicate:
mkfs.xfs /dev/sdb1
parted /dev/sdb print
Per i filesystem più vecchi, potresti usare il comando resize in parted per ridimensionare una partizione. Sfortunatamente questo vale solo per ext2, fat16, fat32, hfs, linux-swap e reiserfs (se è installato libreiserfs).
Pertanto, l'unico modo per ridimensionare una partizione è eliminarla e crearla di nuovo (quindi assicurati di avere un buon backup dei tuoi dati!). Non c'è da stupirsi che lo schema di partizionamento predefinito in RHEL sia basato su LVM.
Per rimuovere una partizione con parted:
parted /dev/sdb print
parted /dev/sdb rm 1
Il Gestore del Volume Logico (LVM)
Una volta partizionato un disco, può essere difficile o rischioso modificare le dimensioni della partizione. Per questo motivo, se pensiamo di ridimensionare le partizioni del nostro sistema, dovremmo considerare la possibilità di utilizzare LVM invece del classico sistema di partizionamento, dove più dispositivi fisici possono formare un gruppo di volumi che ospiterà un numero definito di volumi logici, che possono essere espansi o ridotti senza problemi.
In termini semplici, potresti trovare utile il seguente diagramma per ricordare l'architettura di base di LVM.
Segui questi passaggi per configurare LVM utilizzando i classici strumenti di gestione del volume. Poiché puoi espandere questo argomento leggendo la serie LVM su linux-console.net, descriverò solo i passaggi di base per configurare LVM e poi confrontarli con l'implementazione della stessa funzionalità con SSM.
Tieni presente che utilizzeremo gli interi dischi /dev/sdb
e /dev/sdc
come PV, ma dipende interamente da te se vuoi fare lo stesso.
Configurazione del gestore del volume logico
Per configurare LVM su due dischi, innanzitutto è necessario creare partizioni utilizzando il comando parted come spiegato sopra.
Creazione di partizioni per l'installazione di LVM
1. Crea partizioni /dev/sdb1
e /dev/sdc1
utilizzando il 100% dello spazio su disco disponibile in /dev/sdb e /dev/sdc:
parted /dev/sdb print
parted /dev/sdc print
Creazione di volumi fisici
2. Crea 2 volumi fisici sopra /dev/sdb1
e /dev/sdc1
, rispettivamente.
pvcreate /dev/sdb1
pvcreate /dev/sdc1
Ricorda che puoi utilizzare il seguente comando per mostrare informazioni sui Pvs appena creati.
pvdisplay /dev/sd{b,c}1
Creazione del gruppo di volumi
3. Crea un VG sopra il PV che hai creato nel passaggio precedente:
vgcreate tecmint_vg /dev/sd{b,c}1
Ricorda che puoi utilizzare il seguente comando per mostrare le informazioni sul VG appena creato.
vgdisplay tecmint_vg
Creazione di volumi logici
4. Crea tre volumi logici sopra VG tecmint_vg, come segue:
lvcreate -L 3G -n vol01_docs tecmint_vg [vol01_docs → 3 GB]
lvcreate -L 1G -n vol02_logs tecmint_vg [vol02_logs → 1 GB]
lvcreate -l 100%FREE -n vol03_homes tecmint_vg [vol03_homes → 9 GB]
Ricorda che puoi utilizzare il seguente comando per mostrare le informazioni sui LV appena creati sopra VG tecmint_vg.
lvdisplay tecmint_vg
Formattazione di volumi logici
5. Formatta ciascuno dei volumi logici con xfs (NON utilizzare xfs se prevedi di ridurre i volumi in un secondo momento!):
mkfs.xfs /dev/tecmint_vg/vol01_docs
mkfs.xfs /dev/tecmint_vg/vol02_logs
mkfs.xfs /dev/tecmint_vg/vol03_homes
Montaggio di volumi logici
6. Infine, montali:
mount /dev/tecmint_vg/vol01_docs /mnt/docs
mount /dev/tecmint_vg/vol02_logs /mnt/logs
mount /dev/tecmint_vg/vol03_homes /mnt/homes
Rimozione di volumi logici, gruppi di volumi e volumi fisici
7. Ora invertiremo l'implementazione LVM e rimuoveremo i LV, il VG e il PV:
lvremove /dev/tecmint_vg/vol01_docs
lvremove /dev/tecmint_vg/vol02_logs
lvremove /dev/tecmint_vg/vol03_homes
vgremove /dev/tecmint_vg
pvremove /dev/sd{b,c}1
Installa System Storage Manager (SSM)
8. Ora installiamo SSM e vedremo come eseguire quanto sopra in SOLO 1 PASSO!
dnf update && dnf install system-storage-manager
Utilizzeremo gli stessi nomi e dimensioni di prima:
ssm create -s 3G -n vol01_docs -p tecmint_vg --fstype ext4 /mnt/docs /dev/sd{b,c}1
ssm create -s 1G -n vol02_logs -p tecmint_vg --fstype ext4 /mnt/logs /dev/sd{b,c}1
ssm create -n vol03_homes -p tecmint_vg --fstype ext4 /mnt/homes /dev/sd{b,c}1
SÌ! SSM ti consentirà di:
- inizializzare i dispositivi a blocchi come volumi fisici
- creare un gruppo di volumi
- creare volumi logici
- formato LV e
- montarli utilizzando un solo comando
9. Ora possiamo visualizzare le informazioni su PV, VG o LV, rispettivamente, come segue:
ssm list dev
ssm list pool
ssm list vol
10. Come già sappiamo, una delle caratteristiche distintive di LVM è la possibilità di ridimensionare (espandere o diminuire) i volumi logici senza tempi di inattività.
Ridimensionamento dei volumi logici
Supponiamo che stiamo esaurendo lo spazio in vol02_logs ma che abbiamo molto spazio in vol03_homes. Ridimensioneremo vol03_homes a 4 GB ed espanderemo vol02_logs per utilizzare lo spazio rimanente:
ssm resize -s 4G /dev/tecmint_vg/vol03_homes
Esegui nuovamente il pool di elenchi ssm e prendi nota dello spazio libero in tecmint_vg:
ssm list
Quindi fa:
ssm resize -s+1.99 /dev/tecmint_vg/vol02_logs
Nota: che il segno più dopo il flag -s
indica che il valore specificato deve essere aggiunto al valore attuale.
Rimozione di volumi logici e gruppi di volumi
11. Anche la rimozione di volumi logici e gruppi di volumi è molto più semplice con ssm. Un semplice,
ssm remove tecmint_vg
restituirà una richiesta chiedendoti di confermare l'eliminazione del VG e dei LV in esso contenuti:
Gestione dei volumi crittografati
SSM fornisce inoltre agli amministratori di sistema la capacità di gestire la crittografia per volumi nuovi o esistenti. Avrai bisogno prima del pacchetto cryptsetup installato:
dnf update && dnf install cryptsetup
Quindi emetti il seguente comando per creare un volume crittografato. Ti verrà richiesto di inserire una passphrase per massimizzare la sicurezza:
ssm create -s 3G -n vol01_docs -p tecmint_vg --fstype ext4 --encrypt luks /mnt/docs /dev/sd{b,c}1
ssm create -s 1G -n vol02_logs -p tecmint_vg --fstype ext4 --encrypt luks /mnt/logs /dev/sd{b,c}1
ssm create -n vol03_homes -p tecmint_vg --fstype ext4 --encrypt luks /mnt/homes /dev/sd{b,c}1
Il nostro compito successivo consiste nell'aggiungere le voci corrispondenti in /etc/fstab affinché tali volumi logici siano disponibili all'avvio.
Invece di utilizzare l'identificatore del dispositivo (/dev/something). Utilizzeremo ogni UUID di LV (in modo che i nostri dispositivi saranno comunque identificati in modo univoco se aggiungiamo altri volumi o dispositivi logici), che possiamo scoprire con l'utilità blkid:
blkid -o value UUID /dev/tecmint_vg/vol01_docs
blkid -o value UUID /dev/tecmint_vg/vol02_logs
blkid -o value UUID /dev/tecmint_vg/vol03_homes
Nel nostro caso:
Successivamente, crea il file /etc/crypttab con i seguenti contenuti (cambia gli UUID con quelli che si applicano alla tua configurazione):
docs UUID=ba77d113-f849-4ddf-8048-13860399fca8 none
logs UUID=58f89c5a-f694-4443-83d6-2e83878e30e4 none
homes UUID=92245af6-3f38-4e07-8dd8-787f4690d7ac none
Inserisci le seguenti voci in /etc/fstab. Tieni presente che device_name (/dev/mapper/device_name) è l'identificatore del mapper che appare nella prima colonna di /etc/crypttab.
Logical volume vol01_docs:
/dev/mapper/docs /mnt/docs ext4 defaults 0 2
Logical volume vol02_logs
/dev/mapper/logs /mnt/logs ext4 defaults 0 2
Logical volume vol03_homes
/dev/mapper/homes /mnt/homes ext4 defaults 0 2
Ora riavvia (systemctl reboot) e ti verrà richiesto di inserire la passphrase per ogni LV. Successivamente, puoi confermare che l'operazione di montaggio è andata a buon fine controllando i punti di montaggio corrispondenti:
Conclusione
In questo tutorial, abbiamo iniziato a esplorare come impostare e configurare l'archiviazione del sistema utilizzando i classici strumenti di gestione dei volumi e SSM, che integra anche funzionalità di file system e crittografia in un unico pacchetto. Ciò rende SSM uno strumento prezioso per qualsiasi amministratore di sistema.
Fateci sapere se avete domande o commenti: non esitate a utilizzare il modulo sottostante per mettervi in contatto con noi!