詳解centos7基於luks對磁碟進行加密
下面由centos基礎教學欄位為大家介紹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
以上是詳解centos7基於luks對磁碟進行加密的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

載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

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

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

出於安全考慮設定密碼規則設定密碼到期的天數。使用者必須在天內更改密碼。此設定僅影響建立用戶,而不會影響現有用戶。如果設定為現有用戶,請執行指令「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:

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

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

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
