Maison  >  Article  >  Opération et maintenance  >  Explication détaillée du chiffrement de disque centos7 basé sur luks

Explication détaillée du chiffrement de disque centos7 basé sur luks

藏色散人
藏色散人avant
2020-11-26 13:52:235022parcourir

La colonne suivante du Tutoriel de base centos vous présentera comment centos7 chiffre le disque en fonction de luks. J'espère que cela sera utile aux amis dans le besoin !

Explication détaillée du chiffrement de disque centos7 basé sur luks

centos7 crypte le disque en fonction de luks

LUKS (Linux Unified Key Setup) crypte le disque dur Linux Fournit une norme qui est non seulement universelle sur différentes distributions Linux, mais prend également en charge plusieurs utilisateurs/mots de passe. Parce que sa clé de cryptage est indépendante du mot de passe, si le mot de passe est perdu, nous pouvons rapidement changer le mot de passe sans recrypter l' disque dur entier. En fournissant un format standard sur disque, il facilite non seulement la compatibilité entre les distributions, mais offre également une gestion sécurisée des mots de passe de plusieurs utilisateurs. Le volume chiffré doit d'abord être déchiffré avant que le système de fichiers qu'il contient puisse être monté.

Outil : cryptsetup (installé par défaut)

[root@node1 ~]# cryptsetup --help
cryptsetup 1.7.4
用法: cryptsetup [选项…] <动作> <动作特定参数>
 --version 打印软件包版本
 -v, --verbose 显示更详细的错误信息
 --debug 显示调试信息
 -c, --cipher=STRING 用于加密磁盘的密文(参见 /proc/crypto)
 -h, --hash=STRING 用于从密码创建加密密钥的哈希值
 -y, --verify-passphrase 两次询问密码以进行验证
 -d, --key-file=STRING 从文件读取密钥。
 --master-key-file=STRING 从文件读取卷(主)密钥。
 --dump-master-key 转储卷(主)密钥而不是键槽信息。
 -s, --key-size=位 加密密钥大小
 -l, --keyfile-size=字节 限制从密钥文件读取
 --keyfile-offset=字节 要从密钥文件跳过的字节数
 --new-keyfile-size=字节 限制从新增密钥文件的读取
 --new-keyfile-offset=字节 要从新增密钥文件跳过的字节数
 -S, --key-slot=INT 新密钥的槽号(默认为第一个可用的)
 -b, --size=扇区 设备大小
 -o, --offset=扇区 后端设备的起始偏移量
 -p, --skip=扇区 从开头要跳过的加密数据扇区数量
 -r, --readonly 创建只读映射
 -i, --iter-time=毫秒 LUKS 默认 PBKDF2 迭代时间(毫秒)
 -q, --batch-mode 不要请求确认
 -t, --timeout=秒 交互式密码提示符超时长度(秒)
 -T, --tries=INT 输入密码的最大重试频率
 --align-payload=扇区 于 <n> 个扇区边界处对其载荷数据 - 供 luks 格式用
 --header-backup-file=STRING 带有 LUKS 数据头和密钥槽备份的文件。
 --use-random 使用 /dev/random 生成卷密钥。
 --use-urandom 使用 /dev/urandom 生成卷密钥。
 --shared 与另一个不重合的加密段共享设备。
 --uuid=STRING 设备使用的 UUID 已占用。
 --allow-discards 允许设备的 discard(或称 TRIM)请求。
 --header=STRING 带有分离 LUKS 数据头的设备或文件。
 --test-passphrase 不要激活设备,仅检查密码。
 --tcrypt-hidden 使用隐藏数据头(隐藏 TCRYPT 设备)
 --tcrypt-system 设备为系统 TCRYPT 驱动器(带有引导器)。
 --tcrypt-backup 使用备份(次级)TCRYPT 标头。
 --veracrypt 同时扫描 VeraCrypt 兼容的设备。
 -M, --type=STRING 设备元数据类型:luks, 纯粹 (plain), loopaes, tcrypt.
 --force-password 禁用密码质量检查 (如果已启用)。
 --perf-same_cpu_crypt 使用 dm-crypt same_cpu_crypt 性能兼容性选项。
 --perf-submit_from_crypt_cpus 使用 dm-crypt submit_from_crypt_cpus 性能兼容性选项。

帮助选项:
 -?, --help 显示此帮助
 --usage 显示简短用法

<动作> 为其中之一:
 open <设备> [--type <类型>] [<名称>] - 以映射 <名称> 打开设备
 close <名称> - 关闭设备(移除映射)
 resize <名称> - 改变活动设备大小。
 status <名称> - 显示设备状态
 benchmark [--cipher <cipher>] - 测试密文
 repair <设备> - 尝试修复磁盘上的元数据
 erase <设备> - 清空所有密钥槽(移除加密密钥)
 luksFormat <设备> [<新密钥文件>] - 格式化一个 LUKS 设备
 luksAddKey <设备> [<新密钥文件>] - 向 LUKS 设备添加密钥
 luksRemoveKey <设备> [<密钥文件>] - 移除 LUKS 设备中指定的密钥或密钥文件
 luksChangeKey <设备> [<密钥文件>] - 更改 LUKS 设备中指定的密钥或密钥文件
 luksKillSlot <设备> <密钥槽> - 从 LUKS 设备清理标号为 <key slot> 的密钥
 luksUUID <设备> - 输出 LUKS 设备的 UUID(唯一标识符)
 isLuks <设备> - 从 <device> 探测 LUKS 分区标头
 luksDump <设备> - 调出 LUKS 分区信息
 tcryptDump <设备> - 调出 TCRYPT 设备信息
 luksSuspend <设备> - 挂起 LUKS 设备并清除密钥(冻结所有 IO 操作)。
 luksResume <设备> - 恢复已暂停的 LUKS 设备。
 luksHeaderBackup <设备> - 备份 LUKS 设备标头和密钥槽
 luksHeaderRestore <设备> - 恢复 LUKS 设备标头和密钥槽

你亦可使用老的 <动作> 语法别名:
 open: create (plainOpen), luksOpen, loopaesOpen, tcryptOpen
 close: remove (plainClose), luksClose, loopaesClose, tcryptClose

<name> 为要在 /dev/mapper 创建的设备
<device> 为加密设备
<key slot> 为需要更改的 LUKS 密钥槽
<key file> 提供给 luksAddKey 动作的密钥文件

默认集成的密钥和密码参数:
 密钥文件的最大大小:8192kB, 交互式密码的最大长度:512 (字符)
LUKS 的默认 PBKDF2 迭代时间:2000 (毫秒)

默认集成的设备密文参数:
 loop-AES:aes, 256 位密钥
 plain:aes-cbc-essiv:sha256, 密钥:256 位, 密码哈希:ripemd160
 LUKS1:aes-xts-plain64, 密钥:256 bits, LUKS 数据头哈希:sha256, RNG:/dev/urandom

1. Environnement


    OS : centos
  • 7
  • Noyau : 3.10.0-693.el
  • 7.x86_64
  • outils : cryptsetup.x86_64 0:1.
  • 7.4-4.el7
2. Créez la partition

chiffrée


Tout d'abord, nous ajoutons un disque dur /dev /sdb À des fins de test, c'est comme suit :

[root@node1 ~]# fdisk -l
磁盘 /dev/sdb:8589 MB, 8589934592 字节,16777216 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘 /dev/sda:8589 MB, 8589934592 字节,16777216 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000bfe7f

设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 16777215 7339008 8e Linux LVM

磁盘 /dev/mapper/centos-root:6652 MB, 6652166144 字节,12992512 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘 /dev/mapper/centos-swap:859 MB, 859832320 字节,1679360 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

Ensuite, nous formatons la partition

cryptée

[root@node1 ~]# cryptsetup luksFormat /dev/sdb

WARNING!
========
这将覆盖 /dev/sdb 上的数据,该动作不可取消。
Are you sure? (Type uppercase yes): YES  # 注意这里必须是大写的YES
输入密码:
确认密码:

Utiliser le fichier de clé chiffrée

Partition

En plus du mot de passe, vous pouvez également choisir d'utiliser le fichier clé pour décrypter votre disque dur, ce qui équivaut à une clé de. Bien sûr, vous pouvez également utiliser le fichier de clé uniquement ou les deux. Utiliser le mot de passe et le fichier de clé

5.1 Générer un fichier de clé aléatoire

[root@node1 ~]# dd if=/dev/urandom of=/root/enc.key bs=1 count=4096
记录了4096+0 的读入
记录了4096+0 的写出
4096字节(4.1 kB)已复制,0.00967434 秒,423 kB/秒
[root@node1 ~]# ls
anaconda-ks.cfg enc.key kubernetes

5.2 Ajouter un fichier de clé comme l'un des mots de passe

[root@node1 ~]# cryptsetup luksAddKey /dev/sdb /root/enc.key 
输入任意已存在的密码:

6. Supprimer le mot de passe de décryptage

Supprimer les mots de passe normaux
[root@node1 ~]# cryptsetup luksRemoveKey /dev/sdb
输入要移除的密码:

Supprimer les mots de passe des fichiers clés

[root@node1 ~]# cryptsetup luksRemoveKey -d /root/enc.key /dev/sdb
WARNING!
========
这是最后一个密钥槽。设备在清空此密钥后将不可用。
Are you sure? (Type uppercase yes): YES

Remarque

: Ne supprimez jamais tous les mots de passe, au moins Un mot de passe est requis pour accéder à l'appareil, et l'opération de suppression est irréversible

7

PartitionMappage et montage.


7

.1 partitioncarte
[root@node1 ~]# cryptsetup luksOpen /dev/sdb data2
输入 /dev/sdb 的密码:


7

.2 fichier clépartitionmap

Vous pouvez également effectuer un mappage via un fichier clé
[root@node1 ~]# cryptsetup luksOpen -d /root/enc.key /dev/sdb data2

7

.3 Créer un système de fichiers

Avant le montage et en l'utilisant, nous devons encore créer des fichiers pour l'appareil. Le système peut être utilisé. Vous pouvez choisir n'importe quel système de fichiers que vous aimez, tel que btrfs, ext4, vfat, ntfs, etc.
[root@node1 ~]# mkfs.ext4 /dev/mapper/data2 
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
524288 inodes, 2096640 blocks
104832 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2147483648
64 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables: 完成 
正在写入inode表: 完成 
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

7.

.4 Monter

Nous pouvons maintenant monter notre
partition

cryptée comme une partition normale

[root@node1 ~]# mkdir /data2
[root@node1 ~]# mount /dev/mapper/data2 /data2
[root@node1 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 6.2G 1.8G 4.5G 28% /
devtmpfs 4.4G 0 4.4G 0% /dev
tmpfs 4.4G 0 4.4G 0% /dev/shm
tmpfs 4.4G 8.5M 4.4G 1% /run
tmpfs 4.4G 0 4.4G 0% /sys/fs/cgroup
/dev/sda1 1014M 143M 872M 15% /boot
tmpfs 883M 0 883M 0% /run/user/0
/dev/mapper/data2 7.8G 36M 7.3G 1% /data2

7.5 Désinstallez le support Chargez le point et désactivez le CryptagePartition


[root@node1 /]# umount /data2
[root@node1 /]# cryptsetup luksClose data2

8. 🎜>


Après avoir terminé toute l'étape, vous devez maintenant faire. La meilleure chose est de conserver votre stockage

crypté correctement. Vous pouvez utiliser la même méthode pour crypter. plusieurs appareils pour la sauvegarde, car personne ne peut garantir que cet appareil mobile sera perdu à tout moment.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer