我需要在 RHEL6 上配置加密磁盘,但密钥应该存储在网络服务器/数据库中,加密磁盘应该在启动期间或启动后使用此密钥解密,而无需询问任何密码。
答案1
您可以使用 crypttab 密钥脚本进行设置,例如 crypttab 条目:
# target,sourcedev,keyfile,options
cdisk3 /dev/sda3 none cipher=twofish,hash=ripemd160,size=256,keyscript=/path/to/script
该脚本将以密钥文件(在本例中为“无”)作为唯一参数执行,并且脚本的输出将用作密钥。
它将其余输入作为环境变量:
CRYPTTAB_NAME
The target name
CRYPTTAB_SOURCE
The source device
CRYPTTAB_KEY
The key file
CRYPTTAB_OPTIONS
A list of exported crypttab options
CRYPTTAB_OPTION_<option>
The value of the appropriate crypttab option, with value set to 'yes'
in case the option is merely a flag.
我从手册页 crypttab(5) 中获得了大部分内容,它写得比我能提供的要好。
当然,这样的设置很难保证安全,而且很大程度上取决于你在脚本中输入的内容。
答案2
恕我直言,您只能对非启动和非根磁盘执行此操作。要访问网络服务以获取凭据,Linux 必须:
- 启动系统
- 设置远程安装
- 检索凭证
- 装载磁盘
您可以为其编写一个 shell 脚本,并确保它在启动时启动。请记住,您必须在客户端系统上存储网络共享/数据库的凭据,这有点违背了目的 :)