目錄
1. 環境
2. 建立加密分割區
5. 利用key file 加密#分區
5.1 產生隨機key file
5.2 新增key file 作為密碼之一
6. 移除解密密碼
7分割區對映與掛載
## 7.1 分割區對應
#7.2 key file分割區對應
7.4 掛載#現在可以像正常分割區一樣掛載我們的
分割區
首頁 運維 CentOS 詳解centos7基於luks對磁碟進行加密

詳解centos7基於luks對磁碟進行加密

Nov 26, 2020 pm 01:52 PM
centos7

下面由centos基礎教學欄位為大家介紹centos7基於luks對磁碟進行加密的方法,希望對需要的朋友有所幫助!

詳解centos7基於luks對磁碟進行加密

centos7基於luks對磁碟進行加密

LUKS(Linux Unified Key Setup)為Linux硬碟加密提供了一種標準,它不僅能通用於不同的Linux發行版本,還支援多用戶/口令。因為它的加密金鑰獨立於口令,所以如果口令失密,我們可以迅速改變口令而無需重新加密真個硬碟。透過提供一個標準的磁碟上的格式,它不僅方便之間分佈的兼容性,而且還提供了多個使用者密碼的安全管理。必須先對加密的磁碟區進行解密,才能掛載其中的檔案系統。

工具:cryptsetup(預設已經安裝)

[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. 環境


  • OS: centos7
  • #Kernel: 3.10.0-693.el7.x86_64
  • tools: cryptsetup.x86_64 0:1.7.4-4.el7

2. 建立加密分割區


首先,我們加入一塊硬碟/dev/sdb作為測試用,如下:

[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 字节
登入後複製

下來我們格式化加密分區

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

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

5. 利用key file 加密#分區


除了密碼之外,還可以選擇使用key file 解密你的硬碟,也就是相當於一個金鑰,當然可以也可以只用key file 或同時使用密碼與key file

5.1 產生隨機key file


[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 新增key file 作為密碼之一


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

6. 移除解密密碼


移除普通密碼

[root@node1 ~]# cryptsetup luksRemoveKey /dev/sdb
输入要移除的密码:
登入後複製

移除key file 密碼

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

注意:千萬不要移除所有密碼,至少需要留有密碼存取設備,移除操作不可撤銷

7分割區對映與掛載


## 7.1 分割區對應

[root@node1 ~]# cryptsetup luksOpen /dev/sdb data2
输入 /dev/sdb 的密码:
登入後複製

#7.2 key file分割區對應



##也可以透過key file做映射
[root@node1 ~]# cryptsetup luksOpen -d /root/enc.key /dev/sdb data2
登入後複製

7.3 建立檔案系統在掛載使用之前,我們仍然需要對裝置建立文件系統才可以使用,可以選擇任何你喜歡的檔案系統,例如btrfs,ext4,vfat,ntfs等

[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 掛載#現在可以像正常分割區一樣掛載我們的

加密

分割區

裝置了
[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 卸載掛載點並關閉加密

分割區#########
[root@node1 /]# umount /data2
[root@node1 /]# cryptsetup luksClose data2
登入後複製
###8. 總結#########在完成整個步驟以後,您現在需要做的就是妥善保管您的###加密###存儲,可採用同樣的方式###加密###多個設備進行備份,因為誰也不能保證這移動設備會不會在什麼時候丟掉。 ###

以上是詳解centos7基於luks對磁碟進行加密的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1666
14
CakePHP 教程
1425
52
Laravel 教程
1325
25
PHP教程
1272
29
C# 教程
1252
24
CentOS7各版本鏡像下載地址及版本說明(包括Everything版) CentOS7各版本鏡像下載地址及版本說明(包括Everything版) Feb 29, 2024 am 09:20 AM

載CentOS-7.0-1406的時候,有很多可選則的版本,對於普通用戶來說,不知道選擇哪個好,下面做一下簡單介紹:(1)CentOS-xxxx-LiveCD.ios和CentOS-xxxx- bin-DVD.iso有什麼差別?前者只有700M,後者有3.8G。其差異不僅在大小上,其更本質的差異是,CentOS-xxxx-LiveCD.ios只能載入到記憶體裡運行,不能安裝。 CentOS-xxx-bin-DVD1.iso才可以安裝到硬碟上。 (2)CentOS-xxx-bin-DVD1.iso,Ce

CentOS 7 緊急修復模式的進入步驟 CentOS 7 緊急修復模式的進入步驟 Jan 13, 2024 am 09:36 AM

打開centos7頁面出現:welcometoemergencymode! afterloggingin,type“journalctl-xb”toviewsystemlogs,“systemctlreboot”toreboot,“systemctldefault”totryagaintobootintodefaultmode。 giverootpasswordformaintenance(??Control-D???):解決方法:執行r

如何在CentOS 7中存取並清理/tmp目錄中的垃圾檔案? 如何在CentOS 7中存取並清理/tmp目錄中的垃圾檔案? Dec 27, 2023 pm 09:10 PM

centos7系統中tmp目錄下有很多垃圾,想要清除垃圾,該怎麼清除呢?下面我們就來看看詳細的教學。查看tmp檔案目錄下檔案列表,執行指令cdtmp/切換到tmp目前檔案目錄,執行ll指令,查看目前目錄下檔列表。如下圖所示。使用rm刪除檔案指令,需要注意的是rm指令是將檔案永遠從系統中刪除,因此建議在使用rm指令時,最好是在刪除檔案前給予提示。使用指令rm-i檔名,等用戶確認刪除(y)或跳過刪除(n),系統進行對應的操作。如下圖所示。

centos7如何設定密碼規則?centos7設定密碼規則的方法 centos7如何設定密碼規則?centos7設定密碼規則的方法 Jan 07, 2024 pm 01:17 PM

出於安全考慮設定密碼規則設定密碼到期的天數。使用者必須在天內更改密碼。此設定僅影響建立用戶,而不會影響現有用戶。如果設定為現有用戶,請執行指令「chage-M(days)(user)」。 PASS_MAX_DAYS60#密碼到期時間PASS_MIN_DAYS3#初始密碼更改時間PASS_MIN_LEN8#密碼最小長度PASS_WARN_AGE7#密碼過期提示時間重複密碼限制使用[root@linuxprobe~]#vi/etc/pam.d/system-auth#nearline15:

centos7下解壓縮檔案指令(zip)詳解 centos7下解壓縮檔案指令(zip)詳解 Jan 07, 2024 pm 06:30 PM

1.壓縮資料夾為zip檔[root@cgls]#zip-rmydata.zipmydata2.把mydata.zip解壓縮到mydatabak目錄裡面[root@cgls]#unzipmydata.zip-dmydatabak3.mydata01資料夾和mydata02.txt mydata.zip[root@cgls]#zipmydata.zipmydata01mydata02.txt4.直接解壓縮mydata.zipmydata.zipmydata01mydata02.txt4.直接解壓縮mydata.zip檔[root@cgls]#unzipmydata.zip5.查看myd

CENTOS7下如何安裝mbstring擴充? CENTOS7下如何安裝mbstring擴充? Jan 06, 2024 pm 09:59 PM

1.UncaughtError:Calltoundefinedfunctionmb_strlen();出現如上錯誤時,說明我們沒裝上mbstring擴展;2.進入PHP安裝目錄cd/temp001/php-7.1.0/ext/mbstring3.啟動phpize(/usr/local/bin /phpize或/usr/local/php7-abel001/bin/phpize)指令來安裝php擴充4../configure--with-php-config=/usr/local/php7-abel

CentOS7怎麼安裝Mysql並設定開機自啟動 CentOS7怎麼安裝Mysql並設定開機自啟動 Jun 02, 2023 pm 08:36 PM

centos7不帶mysql資料庫了,預設的資料庫是mariadb(mysql的一個分支)。可以依照以下步驟手動安裝mysql資料庫。 1.下載rpm安裝檔wgethttp://repo.mysql.com/mysql-community-release-el7.rpm2.執行rpm安裝rpm-ivhmysql-community-release-el7.rpm依賴解析完成後,出現下列選項:dependenciesresolved ===================================

CentOS7如何安裝Nginx並設定自動啟動 CentOS7如何安裝Nginx並設定自動啟動 May 14, 2023 pm 03:01 PM

1.官網下載安裝包選擇適合linux的版本,這裡選擇最新的版本,下載到本地後上傳到伺服器或centos下直接wget指令下載。切換到/usr/local目錄,下載軟體包#cd/usr/local#wgethttp://nginx.org/download/nginx-1.11.5.tar.gz2、安裝nginx先執行以下指令,安裝nginx依賴函式庫,如果缺少依賴函式庫,可能會安裝失敗,具體可以參考文章後面的錯誤提示資訊。 #yuminstallgcc-c++#yuminstallpcre#yumins

See all articles