红帽linux-”的;“关闭”;加密检查

红帽linux-”的;“关闭”;加密检查,linux,encryption,redhat,Linux,Encryption,Redhat,我有一个Red Hat 6.5 Linux实现,它使用LUKS对系统进行加密,出于不相关的原因,我想在一段时间内“关闭”引导加密检查。它将在某个时候再次打开,因此即使有可能完全删除LUKS加密,这也不是我感兴趣的解决方案 我想要的是在启动时自动提供LUKS密码,这样就不需要手动输入密码——这样就可以在逻辑上“关闭”加密,即使实际上仍然启用了加密 现在,虽然这对于辅助设备来说很简单,即通过创建密钥文件、将密钥文件应用于加密设备并修改/etc/crypttab以引用密钥文件,但在引导时仍必须输入至少

我有一个Red Hat 6.5 Linux实现,它使用LUKS对系统进行加密,出于不相关的原因,我想在一段时间内“关闭”引导加密检查。它将在某个时候再次打开,因此即使有可能完全删除LUKS加密,这也不是我感兴趣的解决方案

我想要的是在启动时自动提供LUKS密码,这样就不需要手动输入密码——这样就可以在逻辑上“关闭”加密,即使实际上仍然启用了加密

现在,虽然这对于辅助设备来说很简单,即通过创建密钥文件、将密钥文件应用于加密设备并修改/etc/crypttab以引用密钥文件,但在引导时仍必须输入至少一个密码,因为如果主设备是LUKS加密的,然后必须先对其进行解密,然后才能访问/etc/crypttab

我见过一种方法,可以消除输入初始密码的要求,即:

  • 创建密钥文件
  • 将密钥文件应用于加密设备,即启用要解密的设备密钥
  • 将密钥文件复制到可移动的未加密设备(如闪存驱动器)
  • append rd.luks.key=密钥文件的绝对路径:可移动未加密设备到/boot/grub/grub.conf中的引导内核行
  • 在引导时,确保插入了可移动的未加密设备,并且引导过程可以引用该设备
  • 这一切看起来都很好,除了我不想要一个可移动的未加密的设备。我只是想让服务器像未加密一样启动

    我能看到的实现这一点的唯一方法是用普通的未加密设备替换可移动的未加密设备。在这种情况下,引导过程将读取正常的未加密设备,获取密钥并使用它来解密加密设备…嘿,presto加密被禁用

    在我的系统中,我能找到的唯一符合正常未加密设备标准的设备是/dev/sda1 ie./boot,因此我使用步骤3和步骤4执行了上述步骤,如下所示:

  • 如上
  • 如上
  • 将密钥文件复制到/boot/keyfile.key
  • 追加rd.luks.key=/boot/keyfile.key:/dev/sda1
  • 不适用
  • 不幸的是,我似乎无法让这个工作

    Red Hat启动,我不会被要求输入密码(正如预期的那样),但是在启动过程快结束时,它会失败,出现“内核死机-不同步:试图杀死init!”

    此行为与我使用的以下行为相同:

    • rd.luks.key=/boot/keyfile.key:/dev/sda1
    • rd.luks.key=/keyfile.key:/dev/sda1
    • rd.luks.key=/keyfile.key
    • rd.luks.key=/somekeyfilethat我不知道texist.key:/dev/sda1
    因此,我的问题如下:

  • 我想做的是可能的吗
  • 如果是,那么。。。
    • 我应该把密钥文件放在哪里
    • 我应该使用什么rd.luks.key值来引用密钥文件

  • 提前感谢您的帮助

    我从来都不需要这个,但肯定会想到它的用处。因此,您的帖子促使我回顾了如何做到这一点,我看到的唯一方法是将解锁脚本/细节放入initramfs中

    在基于debian的发行版中,这是一个容易得多的过程,因为可以通过initramfs工具将脚本注入initramfs。。在开机时动态。查看和

    基于RHEL的发行版需要使用dracut(在恢复模式下)来重建initramfs。因此,我认为可以通过重建initramfs并在其中注入解锁脚本来解决这个问题。。这样我们就可以确保在内核需要挂载它们之前,您的根/引导设备已经解锁。这提供了一种获取和修改initramfs内容的方法。至于在initramfs中注入解锁脚本的最佳方法,我不确定


    当我不那么忙的时候,我一定会尝试一下。这听起来确实是一件非常有用的事情,能够进行设置。

    经过大量的挖掘,我终于找到了答案(在CentOS 6.6和7上都可以使用)。特别感谢以下两种资源:

    我所做的如下(作为root用户):


    就这样。服务器在不请求密码的情况下重新启动。(通过cryptsetup命令从LUKS设备中删除/添加密钥文件,可以随意禁用/启用此功能)

    沉默令人伤心。来吧,保安们……一定有人对这件事有意见吧?这是一项功能极其强大的功能,有许多潜在的使用案例,其中一个是启用远程加密服务器重新启动,而无需“现场本地人员输入密码或插入持有密钥文件的可移动未加密设备”.I放弃:我已将/src/keys/文件添加到initramfs中,如下所示
    dracut--include/keys/src/keys/boot/initramfs new.img
    ,将/code>rd.luks.key=/keys/file:/dev/sda1附加到/boot/grub/grub.conf及其许多变体的内核行中。什么都不管用。查看dracut init.log,除了重复的
    没有找到/dev/sda2的键之外,我什么也没有得到。稍后再试。
    …以及随后的内核死机。谢谢Chux-下面是我希望能够在加密的linux设备上执行的操作:1。登录2。“逻辑上”禁用重新启动3的加密。重新启动4。重新启用加密此功能将允许对加密服务器进行全面的远程管理。(这对我来说目前是不可能的)你认为你上面的回答能满足这种情况吗?抱歉,我想把我上面评论的措辞改为:1。登录2。禁用启动3上的密码检查。重新启动。4.在启动时重新启用密码检查(这样,如果机器随后重新启动,将提示重新启动者正常输入密码)
    # insert a password into my chosen password file
    echo -n "anypassword" > /etc/mypasswdfile
    
    # instruct the LUKS device to take the password from my password file
    vi /etc/crypttab and replaced the 3rd parameter "none" with "/etc/mypasswdfile"
    
    # add my password file as a valid key for the luks device
    cryptsetup luksAddKey /dev/sda2 /etc/mypasswdfile
    
    # configure dracut to add the following 2 items to the initramfs (so accessible at boot)
    echo 'install_items="/etc/mypasswdfile /etc/crypttab"' > /etc/dracut.conf.d/99-mypwfile.conf
    
    # instruct dracut to apply the configuration
    dracut -f
    
    # reboot the server
    reboot