Lucrul cu partiții criptate in Linux
May 30, 2024, 9:39 a.m. Tech centos linux
LUKS - Lucrul cu partiții criptate in Linux
Vreau sa fac niște modificări pe un server și aveam partiții criptate (encrypted at rest), nu mai sunt sigur dacă am parola corectă sau nu, și sunt curios și care partiții sunt criptate și care nu.
- folosim
lsblk
ca sa afișăm partiții si volume de disc
[bla@server ~]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
#...
nvme0n2
├─nvme0n2p1 ext4 10561544-e0e2-436b-92cb-724391033dc1 /boot
# ...
└─nvme0n2p2
#...
├─cl-encrdata crypto_LUKS 45603b53-d383-4e5b-9f77-4e8107267dc7
│ └─luks-45603b53-d383-4e5b-9f77-4e8107267dc7 xfs 01b767ff-a150-4146-96e9-fd83c4a2ef55 /encrdata
#...
└─cl-var_www xfs 8c62677e-49eb-4cdd-ade1-a0eafd1bba0f /var/www
- avem o partiție criptată
/dev/cl/encrdata
identificată cucrypto_LUKS
- verificăm status cu
cryptsetup
- nu merge să folosim doar numele
encrdata
(trebuie calea completă):
[bla@server ~]# cryptsetup status encrdata
/dev/mapper/encrdata is inactive.
[bla@server ~]# cryptsetup status /dev/cl/encrdata
/dev/cl/encrdata is active and is in use.
type: n/a
- afișăm informațiile despre partiție, ne interesează locațiile unde sunt salvate parolele (în
Keyslots
):
[bla@server ~]# cryptsetup luksDump /dev/cl/encrdata
LUKS header information
Version: 2
Epoch: 6
Metadata area: 16384 [bytes]
Keyslots area: 16744448 [bytes]
Data segments:
0: crypt
offset: 16777216 [bytes]
length: (whole device)
cipher: aes-xts-plain64
sector: 512 [bytes]
#...
Keyslots:
0: luks2
Key: 512 bits
Priority: normal
Cipher: aes-xts-plain64
Cipher key: 512 bits
#...
Digest ID: 0
2: luks2
Key: 512 bits
Priority: normal
Cipher: aes-xts-plain64
Cipher key: 512 bits
#...
Digest ID: 0
- observăm două “parole” în locațiile
0
și2
(Keyslots:
)⤴️ - verificam parola folosind opțiunea
--test-passphrase
(si--verbose
pentru lizibilitate):
[bla@server ~]# cryptsetup --test-passphrase luksOpen /dev/cl/encrdata --verbose
Enter passphrase for /dev/cl/encrdata:
No key available with this passphrase.
Enter passphrase for /dev/cl/encrdata:
Key slot 0 unlocked.
- prima ⤴️ încercare a fost cu parolă incorectă, a doua a fost corectă și a corespuns locației
0
(Key slot 0 unlocked
) - dacă vrem mai multă precizie putem interoga direct locația folosind opțiunea
--key-slot 0
cryptsetup luksOpen --test-passphrase --key-slot 0 /dev/encrdata && echo correct
Enter passphrase for /dev/cl/encrdata:
No key available with this passphrase.
Enter passphrase for /dev/cl/encrdata:
No key available with this passphrase.
Enter passphrase for /dev/cl/encrdata:
correct
- aceeași comanda pentru o locație inexistentă
cryptsetup luksOpen --test-passphrase --key-slot 1 /dev/cl/encrdata && echo correct
Enter passphrase for /dev/cl/encrdata:
Keyslot open failed.
No usable keyslot is available.
Bibliografie:
Stack Exchange
https://unix.stackexchange.com/questions/185390/list-open-dm-crypt-luks-volumes
https://unix.stackexchange.com/questions/318382/detemine-which-luks-slot-a-passphrase-is-in
ChatGPT
- chiar și versiunea free produce un output de bun simț (testat cu chatgpt 3.5)
You are a linux expert and guru working for Redhat.
I am a linux administrator trying to understand the LUKS setup on my homeserver.
I am interested to know about the ways LUKS is configured, disk partitioning and testing the password I have for decrypting the disk.
Please guide me to how to use linux commands to gather more information and lets try to then create a summary of my setup.
- server-ul era un Centos, deși comenzile de mai sus sunt folosite pe toate distribuțiile
- unele sfaturi trebuie trecute prin "filtrul gândirii", întrucât aveau greșeli de sintaxă
- dacă ai niște minime cunoștințe de linux te va ajuta fără să cauți in documentație sau pe net