cryptsetup
cryptsetup is a command-line utility used for managing disk encryption on Linux systems. It is primarily used with LUKS (Linux Unified Key Setup), a standard for disk encryption that provides support for encrypting entire block devices such as hard drives and partitions.
Key Features
LUKS Support: Provides support for LUKS, allowing for the secure encryption of disk volumes.
Volume Management: Facilitates the creation, opening, closing, and removal of encrypted volumes.
Multiple Encryption Methods: Supports a variety of encryption algorithms and modes.
Password Management: Manages passphrases for encrypted volumes and allows key slot management.
Basic Usage
The general syntax for cryptsetup is:
cryptsetup [command] [options] <device> [arguments][command]: The operation to perform (e.g.,luksFormat,open,close).[options]: Command-specific options.<device>: The block device or file to operate on (e.g.,/dev/sda1,/dev/mapper/my_volume).
Common Commands and Options
1. luksFormat
luksFormatFormats a device with LUKS encryption.
cryptsetup luksFormat /dev/sdX/dev/sdX: The block device to format.
Options:
--cipher <cipher>: Specifies the encryption cipher (e.g.,aes-xts-plain64).--hash <hash>: Specifies the hash function for key derivation (e.g.,sha256).--key-size <size>: Sets the size of the encryption key.
2. luksOpen
luksOpenOpens an encrypted device and maps it to a virtual device.
cryptsetup luksOpen /dev/sdX my_volume/dev/sdX: The encrypted block device.my_volume: The name for the mapped virtual device.
Options:
--key-file <file>: Specifies a file containing the passphrase.--key-slot <slot>: Selects a specific key slot for opening the volume.
3. luksClose
luksCloseCloses an open encrypted device.
cryptsetup luksClose my_volumemy_volume: The name of the mapped virtual device to close.
4. luksAddKey
luksAddKeyAdds a new passphrase to an existing encrypted device.
cryptsetup luksAddKey /dev/sdXPrompts for the existing passphrase and the new passphrase to add.
Options:
--key-file <file>: Specifies a file containing the new passphrase.
5. luksRemoveKey
luksRemoveKeyRemoves an existing passphrase from an encrypted device.
cryptsetup luksRemoveKey /dev/sdXPrompts for the passphrase to remove.
Options:
--key-file <file>: Specifies a file containing the passphrase to remove.
6. luksDump
luksDumpDisplays information about a LUKS-encrypted device.
cryptsetup luksDump /dev/sdX/dev/sdX: The encrypted block device.
Advanced Features
LUKS2 Support:
cryptsetupsupports LUKS2, an updated version of LUKS with additional features and improved security.Key Management: Manage multiple key slots, allowing different passphrases to access the same encrypted volume.
Device Mapper Integration: Works with the device mapper to provide transparent encryption.
Examples
Format a Device with LUKS
cryptsetup luksFormat --cipher aes-xts-plain64 --key-size 512 /dev/sdXFormats /dev/sdX with AES encryption using a 512-bit key.
Open an Encrypted Device
cryptsetup luksOpen /dev/sdX my_volumeMaps the encrypted device /dev/sdX to /dev/mapper/my_volume.
Close an Encrypted Device
cryptsetup luksClose my_volumeUnmaps /dev/mapper/my_volume and closes the encrypted device.
Summary
cryptsetup is a versatile and essential tool for managing disk encryption on Linux systems. It supports LUKS and various encryption options, making it suitable for securing data on both physical and virtual disks. By understanding its commands and options, users can effectively create, manage, and secure encrypted volumes.
Last updated