iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >Tang+luks实现磁盘自动加解密
  • 567
分享到

Tang+luks实现磁盘自动加解密

运维linuxcentosluks 2023-09-10 09:09:52 567人浏览 安东尼
摘要

文章目录 1、描述2、Tang服务器安装3、客户端3.1、依赖安装3.2、创建加密磁盘分区3.3、luks加密3.4、打开luks加密盘3.5、操作和配置luks加密盘 4、开机自动


文章目录


1、描述

Tang 是一个将数据绑定到网络状态的服务器。当系统绑定到某个安全网络时,它会使包含数据的系统变得可用。Tang 是无状态的,不需要 TLS 或身份验证。与基于 escrow 的解决方案不同,服务器存储所有加密密钥并了解以前使用的每个密钥,Tang 从不与任何客户端密钥进行交互,因此不会从客户端获得任何识别信息。

Clevis 是一个自动化解密的可插拔框架。在 NBDE 中,Clevis 提供 LUKS 卷的自动解。clevis 软件包提供了该功能的客户端。

Clevis pin 是 Clevis 框架的一个插件。其中一个 pins 是实现与 NBDE 服务器进行交互的插件 - Tang。

Clevis 和 Tang 是通用的客户端和服务器组件,提供网络绑定加密。在 RHEL 中,它们与 LUKS 一起使用,以加密和解密 root 和非 root 存储卷,以完成网络绑定磁盘加密。

客户端和服务器端组件都使用 José 库来执行加密和解密操作。

当您开始调配 NBDE 时,Tang 服务器的 Clevis pin 将获得 Tang 服务器发布的非对称密钥的列表。或者,由于密钥是非对称的,因此 Tang 的公钥列表可以分发到带外,以便客户端能够在不访问 Tang 服务器的情况下进行操作。此模式称为 脱机调配。

Tang 的 Clevis pin 使用其中一个公钥来生成唯一的强加密的加密密钥。使用此密钥加密数据后,密钥将被丢弃。Clevis 客户端应将此调配操作生成的状态存储在方便的位置。这种加密数据的过程就是 调配步骤。

LUKS 版本 2(LUKS2)是 RHEL 中的默认磁盘加密格式,因此 NBDE 的调配状态作为令牌存储在 LUKS2 标头中。luksmeta 软件包对 NBDE 的调配状态的利用仅用于使用 LUKS1 加密的卷。

Tang 的 Clevis pin 支持 LUKS1 和 LUKS2,不需要规范。Clevis 可以加密纯文本文件,但您必须使用 cryptsetup 工具来加密块设备。如需更多信息,请参阅 使用 LUKS 加密块设备。

当客户端准备好访问其数据时,它会加载再调配步骤中生成的元数据,并响应恢复加密密钥。此过程是 恢复步骤。

在 NBDE 中,Clevis 使用 pin 绑定 LUKS 卷,以便能自动解锁它。成功完成绑定流程后,可以使用提供的 Dracut 解锁程序解锁磁盘

NBDE采用C/S架构,其中Tang 负责向 Clevis 客户端提供加密密钥,为密钥托管服务提供了一个安全、无状态、匿名的替代方案。我们可在本地网络中部署一个本地 Tang 服务器提供密钥服务。

Clevis 框架:可插拔的框架工具,自动解密和解锁 LUKS 卷
Tang 服务器:将加密密钥绑定到网络状态的服务


2、Tang服务器安装

安装 tang 软件包及其依赖项

$ yum install tang -y

tang服务器的默认端口为80,如有占用,请修改端口

选择一个未被占用的端口,例如== 7500/tcp==,并允许 tangd 服务绑定到该端口

一个端口一次只能由一个服务使用,因此尝试使用已占用的端口会出现 ValueError: Port already defined 错误消息

$ semanage port -a -t tangd_port_t -p tcp 7500

配置防火墙,开放7500端口

$ firewall-cmd --add-port=7500/tcp --perm$ firewall-cmd --runtime-to-permanent$ firewall-cmd --reload

启用tang服务

$ systemctl enable tangd.Socket

如有修改端口,请执行以下命令

## 创建覆盖文件$ systemctl edit tangd.socket## 修改配置文件$ vim /etc/systemd/system/tangd.socket.d/override.conf [Socket]ListenStream=## 修改的端口ListenStream=7500## 重新载入修改$ systemctl daemon-reload## 检查您的配置是否正常工作$ systemctl show tangd.socket -p Listen## 启动Tang服务$ systemctl restart tangd.socket

3、客户端


3.1、依赖安装

$ yum install cryptsetup -y$ yum install clevis clevis-luks clevis-dracut -y

3.2、创建加密磁盘分区

例如:我们现在对现有的 /home目录进行加密

执行lsblk ,我们可以看到home目录对应的磁盘是sda3,全路径即是:/dev/sda3

$ lsblk NAME     MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTsda        8:0    0   477G  0 disk  ├─sda1     8:1    0   600M  0 part  /boot/efi├─sda2     8:2    0     1G  0 part  /boot├─sda3     8:3    0 397.7G  0 part  /home├─sda4     8:4    0    70G  0 part  /└─sda5     8:5    0   7.7G  0 part  [SWAP]sdb        8:16   1   7.5G  0 disk  └─sdb1     8:17   1   7.5G  0 part

我们需要去umount home目录

umount 可能报错:目录繁忙。
解决方案:关闭正在执行的任务,任何执行目录、存储目录涉及到home的任务。

$ umount /home

再次执行lsblk ,我们可以看到磁盘sda3的挂载home没有了

$ lsblk NAME     MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTsda        8:0    0   477G  0 disk  ├─sda1     8:1    0   600M  0 part  /boot/efi├─sda2     8:2    0     1G  0 part  /boot├─sda3     8:3    0 397.7G  0 part  ├─sda4     8:4    0    70G  0 part  /└─sda5     8:5    0   7.7G  0 part  [SWAP]sdb        8:16   1   7.5G  0 disk  └─sdb1     8:17   1   7.5G  0 part

3.3、luks加密


安装加密软件,一般服务器自带

$ yum install cryptsetup -y
cryptsetup [其他参数] luksFORMat 需要加密的磁盘

常用参数:

参数名称描述
–cipher加密方式
–key-size密钥长度
–hash散列算法
–iter-time迭代时间,单位为毫秒。值越大,暴力破解越难,打开加密盘的时间也越久

我们这里使用默认值,执行的过程中,命令会警告你将会清除磁盘上的所有数据,并要求你输入两次密码

注意:下面的YES必须输入大写的

$ cryptsetup luksFormat /dev/sda3WARNING!========这将覆盖 /dev/sda3 上的数据,该动作不可取消。Are you sure? (Type 'yes' in capital letters): YES输入 /dev/sda3 的口令:确认密码:

3.4、打开luks加密盘

命令如下:

cryptsetup 加密类型Open 加密磁盘 映射名称

执行该命令后就会将 /dev/sda3 解密,并映射成 /dev/mapper/home

$ cryptsetup luksOpen /dev/sda3 home输入 /dev/sda3 的口令:

3.5、操作和配置luks加密盘

## 在加密的分区上创建一个 XFS 文件系统$ mkfs.xfs /dev/mapper/home## 锁定分区$ cryptsetup luksClose home

4、开机自动解密和挂载加密盘


设置开机自动解密 luks 分区:

$ vim /etc/crypttab#          home    /dev/sda3       none   _netdev

注释老的home自动挂载,设置新的 home 自动挂载点:

$ vim /etc/fstab# # /etc/fstab# Created by anaconda on Tue Jun 20 10:39:43 2023## Accessible filesystems, by reference, are maintained under '/dev/disk/'.# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.## After editing this file, run 'systemctl daemon-reload' to update systemd# units generated from this file.#UUID=715d159b-2612-439d-8da9-4f003aebe3be /                       xfs     defaults        0 0UUID=fbbb9210-1b17-485b-b95d-5e550e3b7be8 /boot                   xfs     defaults        0 0UUID=D918-3920          /boot/efi               vfat    umask=0077,shortname=winnt 0 2# 注释掉老的home挂载信息# UUID=7ee7cabf-8627-46b0-b40c-2c329926e775 /home                   xfs     defaults        0 0UUID=de06acc9-4238-4de4-bc67-b754c2c0e993 none                    swap    defaults        0 0#配置新的home挂载信息/dev/mapper/home        /home   xfs    _netdev        1 2~             

运行以下 clevis 命令,连接Tang服务器,自动解密磁盘

$ clevis luks bind -d /dev/vdc1 tang '{"url":"Http://192.168.1.1"}'The advertisement contains the following signing keys:rwA2BAITfYLuyNiIeYUMBzkhk7MDo you wish to trust these keys? [ynYN] YEnter existing LUKS passWord:


参考:
红帽官网文档: https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/8/html/security_hardening/configuring-automated-unlocking-of-encrypted-volumes-using-policy-based-decryption_security-hardening

luks自动加密和挂载磁盘: https://zhaosongbin.blog.csdn.net/article/details/131450726

来源地址:https://blog.csdn.net/zhaosongbin/article/details/131637908

--结束END--

本文标题: Tang+luks实现磁盘自动加解密

本文链接: https://www.lsjlt.com/news/402162.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Tang+luks实现磁盘自动加解密
    文章目录 1、描述2、Tang服务器安装3、客户端3.1、依赖安装3.2、创建加密磁盘分区3.3、luks加密3.4、打开luks加密盘3.5、操作和配置luks加密盘 4、开机自动...
    99+
    2023-09-10
    运维 linux centos luks
  • 怎么自动解锁Linux上的加密磁盘
    这期内容当中小编将会给大家带来有关怎么自动解锁Linux上的加密磁盘,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。通过使用网络绑定磁盘加密(NBDE),无需手动输入密码即可打开加密磁盘。从安全的角度来看,...
    99+
    2023-06-28
  • 如何自动解锁Linux上的加密磁盘
    这篇文章给大家分享的是有关如何自动解锁Linux上的加密磁盘的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。通过使用网络绑定磁盘加密(NBDE),无需手动输入密码即可打开加密磁盘。从安全的角度来看,对敏感数据进行加...
    99+
    2023-06-15
  • 如何自动解锁Linux上的加密磁盘怎样
    如何自动解锁Linux上的加密磁盘怎样,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。通过使用网络绑定磁盘加密(NBDE),无需手动输入密码即可打开加密磁盘。对于系统安全来说,防...
    99+
    2023-06-28
  • Linux自动解锁加密磁盘的方法是什么
    本篇文章为大家展示了Linux自动解锁加密磁盘的方法是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。通过使用网络绑定磁盘加密(NBDE),无需手动输入密码即可打开加密磁盘。从安全的角度来看,对敏...
    99+
    2023-06-28
  • MyBatis-Plus如何实现自动加密解密
    目录MyBatis-Plus 自动加密解密实现TypeHandler添加注解查询加密字段MyBatis-Plus 敏感数据的加密写加密解密的工具类继承BaseTypeHandler ...
    99+
    2024-04-02
  • Windows Server之使用Bitlocker驱动器加密实现保护磁盘数据
    Windows BitLocker驱动器加密通过加密Windows操作系统卷上存储的所有数据可以更好地保护计算机中的数据。BitLocker使用TPM(受信任的平台模块)帮助保护Wi...
    99+
    2023-05-17
    Bitlocker加密磁盘保护数据
  • 怎么用电脑自带Bitlocker来为电脑磁盘加密
    这篇文章主要介绍了怎么用电脑自带Bitlocker来为电脑磁盘加密,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。开始菜单找到并打开“控制面板”,进入之后,点右上角的查看方式选...
    99+
    2023-06-27
  • 解析Zabbix 5.0磁盘自动发现和读写监控的问题
    自动发现磁盘 配置键值 注意:此键值仅支持Linux平台。 此发现键值返回两个宏 : {#DEVNAME} :设备名 {#DEVTYPE} :设备类型 例如: ...
    99+
    2024-04-02
  • Java实现加密(一)AES加解密
    目录 1.背景知识2.AES简介3.AES的加密过程(AES处理单位:字节)4.Java实现4.1 生成密钥和偏移量4.2 AESUtil.java 源码4.3 执行结果4.4 线上验证 1.背景知识 在密码学中,加...
    99+
    2023-08-18
    java
  • SpringBoot实现RAS+AES自动接口解密
    目录一、讲个事故二、RSA和AES基础知识1、非对称加密和对称加密2、RSA基础知识3、AES基础知识三、加密策略1、主要思路:2、涉及工具类:3、加密策略4、交互方式四、服务器自动...
    99+
    2023-03-19
    SpringBoot RAS+AES自动接口解密 SpringBoot 自动接口解密
  • jquery实现aes加密解密
    随着互联网技术的发展,网络安全问题变得越来越突出。许多网站都要求用户输入敏感信息,如密码等。这些信息往往需要进行加密处理,以保证安全性。AES(Advanced Encryption Standard)是一种流行的加密算法,具有高效、安全、...
    99+
    2023-05-24
  • nodejs 实现3des加密解密
    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它非常适合构建高性能的网络应用程序。3DES(Triple Data Encryption Standard)是一种常用的对称加密算法,在数据传输和存储...
    99+
    2023-05-16
  • Python实现RSA加密解密
    目录前言一、安装模块二、生成密钥对三、加密四、解密五、完整代码前言 加密技术在数据安全存储,数据传输中发挥着重要作用,能够保护用户隐私数据安全,防止信息窃取。RSA是一种非对称加密技...
    99+
    2024-04-02
  • JAVA实现AES加密,解密
    java提供了加解密工具,可以将字节转成加密字节. 因此在加解密前需要对内容进行转换. 一般情况我们希望以字符串的形式展示加密串 可以将byte[] 转换为base64字符串 也可以转换为16进制字符串 这里提供两个工具类 加密串为base...
    99+
    2023-08-24
    java 数据库 mysql
  • PHP实现RSA加密解密
    目录 安装phpseclib  代码编写 1.依赖引用 2.创建密钥 3.公钥加密 4.私钥解密 总结   安装phpseclib PHP安全通信库phpseclib,可以使用它来操作OpenSSL、GMP、libnaid或mcrypt...
    99+
    2023-09-08
    RSA phpseclib php 非对称加密
  • AES加密解密python实现
    1.前言         关于现代密码学算法,可以查看以下博客全面了解 CISSP考试要求里的“应用密码学”内容辅助记忆趣味串讲_晓翔仔的博客-CSDN博客         AES的细节知识,可以查阅 AES加密算法的详细介绍与实现_Tim...
    99+
    2023-09-20
    python 开发语言 密码学 非对称加密 AES
  • SpringSecurity基于散列加密方案实现自动登录
    目录前言一. 自动登录简介1. 为什么要自动登录2. 自动登录的实现方案二. 基于散列加密方案实现自动登录1. 配置加密令牌的key2. 配置SecurityConfig类3. 添加...
    99+
    2024-04-02
  • C#实现加密与解密详解
    目录一、Hash加密,使用HashAlgorithm哈希算法类的派生类(MD5、SHA1等)1、使用抽象类HashAlgorithm2、使用抽象类MD53、使用MD5CryptoSe...
    99+
    2024-04-02
  • JavaScript实现加密与解密详解
    目前原生JS貌似并没有提供MD5计算相关的函数方法,只能自己实现或者使用前辈大神写好的。 一、使用crypto.js库进行加密 GitHub的 https://github...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作