Linux 下有类似 windows 磁盘加密工具 bitlocker 吗?

2022-09-25 02:25:07 +08:00
 Cify

有几台服务器需要托管到 IDC,担心 IDC 人用单用户模式进去修改资料, 打算用类似 bitlocker 方式来加密磁盘, 请问有类似的工具吗?

4844 次点击
所在节点    程序员
47 条回复
eason1874
2022-09-25 02:59:36 +08:00
现在 Linux 发行版都自带全盘加密吧,安装时开启就可以,开启全盘加密后要给服务器另外安装远程控制卡,否则只是重启你都得跑去机房输入密码,不输入密码进不了系统。单独给某个硬盘或者文件系统加密可以用 dm-crypt

数据特别重要的话,还要给机箱安装个拆机检测硬件,忘了叫啥,拆了有电信号给到主板,然后系统就可以记录拆机行为,并且自动关机,防止被人偷接设备检测内存什么的
geekvcn
2022-09-25 02:59:54 +08:00
Cify
2022-09-25 03:02:09 +08:00
@eason1874 这个一般服务器都有远程 consolo 口, 单独买个 ip 接入即可. 还有个问题, 加密后启用了 syncthing 类似的同步, 同步到目的地文件是加密还是不加密的?
eason1874
2022-09-25 03:06:24 +08:00
@Cify 全盘加密,块级加密,跟 BitLocker 一样,属于透明加密,对 Syncthing 来说跟没加密的时候是一样的,所以同步过去是不加密的
Jirajine
2022-09-25 03:22:07 +08:00
@eason1874 也可以在 initrd 里配置启动时通过 ssh 输入密码解密磁盘,不需要控制卡和输入设备。
ryd994
2022-09-25 03:26:36 +08:00
@eason1874 可以只加密数据盘,系统盘会正常启动,然后你可以 ssh 上去输密码挂载数据盘

intrusion detector 。如果被开箱可以配置发邮件之类的。更高安全的系统是连到 BIOS 里。从原厂直接锁定 secure boot key 之类的配置。任何人开箱,系统自动报废 TPM 。硬件之后可以继续用,但无法再储存敏感信息。


@Cify 这些都是全盘加密。加密盘挂载时需要输密码。挂载后加密盘就正常用,写入 /读取文件会自动加密解密。所以如果你同步到其他电脑的非加密盘,那就没加密。传输过程也不加密。
Cify
2022-09-25 03:32:56 +08:00
@ryd994 可以只加密数据盘,系统盘会正常启动,然后你可以 ssh 上去输密码挂载数据盘.

这个好像是不错的低成本的方案, 请问有文档可以阅读吗?

这些都是全盘加密。加密盘挂载时需要输密码。挂载后加密盘就正常用,写入 /读取文件会自动加密解密。所以如果你同步到其他电脑的非加密盘,那就没加密。传输过程也不加密。

如果传输过程中不加密的话, 中间人攻击就可以截取数据了?
Cify
2022-09-25 03:38:32 +08:00
@ryd994 其实我正好想请教下如何我托管几台机器, 某些数据我想单向同步到我自己家中的 NAS 上, 所以打算想用 syncthing 这个方案, 如果传输数据有中间人攻击的话, 是否有更合适的低成本方案?
eason1874
2022-09-25 04:19:28 +08:00
@Jirajine #5 这么说 initrd 要好用些

@ryd994 #6
@Cify #7 系统盘不加密,只数据盘加密,不够安全的,因为能改你系统盘文件等于有你系统控制权,以前我们开发机器忘记 root 密码都是直接拆硬盘下来修改里面系统文件去重置密码的,同样的也可以在里面加个木马脚本偷数据。除非你的机箱有拆机检测,一被拆机就更换系统,但这样又太麻烦了。还是全盘加密靠谱好用,用 5 楼说的 initrd 方案远程解密足够方便了

@Cify 数据同步问题,现在 TLS 都是标配了,中间人攻击不了的,保护好密钥就行
Jirajine
2022-09-25 05:20:23 +08:00
@eason1874 其实 initrd 里 ssh 输入密码和只加密数据盘是一样的,也可以拆机替换 initramdisk 加个木马偷取密钥。
要抗 Evil Maid attack 的话,还得配合 secure boot 签名和 TPM 验证。不过如果有 TPM 的话,可以直接用 TPM 解密 luks 磁盘,也就没必要 ssh 输入了。当然,前提是信任厂商的 TPM 实现。
Cify
2022-09-25 05:51:20 +08:00
@Jirajine 能推荐一些加密,解密方面网站吗? 想提高下类似木马,加密解密安全方面的知识.
eason1874
2022-09-25 06:31:00 +08:00
@Jirajine #10 不一样吧,把 initrd ssh 编译进内核,你再改它签名不对,安全启动不了,改其他系统文件不影响启动。越说越复杂,还是直接用 TPM 吧,再信不过也比自己不懂瞎搞要可信 🤣

@Cify 对了,你帖子里说的单用户模式是可以设置密码的
Jirajine
2022-09-25 07:07:50 +08:00
@eason1874 所以还是依赖 secure boot 和 TPM 进行签名验证。initramdisk 本身就是一个 mini rootfs ,和“系统盘”是同一种东西。没有 TPM 的情况下,修改替换内核 /initramdisk 并关闭 /修改安全启动的证书用户程序无法验证,和修改系统效果是一样的。
没有 TPM 这种硬件保护机制,什么方法都没法抗拒物理访问的侵入,有 TPM 则可以连同 boot 分区一并加密。

@Cify 从用户角度,对硬件访问的安全保护 可以从 https://wiki.archlinux.org/title/security#Physical_security 开始看
ryd994
2022-09-25 07:21:14 +08:00
@eason1874
“系统盘不加密,只数据盘加密,不够安全的” “同样的也可以在里面加个木马脚本偷数据”
你需要的是 secure boot 。你这个问题就算是 LUKS 加密系统盘一样会有问题,因为 LUKS 的原理就是 boot 分区 /initramfs 不加密,启动时先启动内核加载 LUKS ,输密码后再进一步解密系统盘。


@Cify 磁盘加密属于 encrypt at rest ,当然无法解决传输安全。BitLocker 也解决不了传输安全啊。
你用正确实现的 TLS 传输,正确验证证书签名,怎么会有事?如果这都有事那银行都别干了。
又或者,卸载加密盘。直接 dd 传磁盘镜像。缺点就是无法差分备份。

@Jirajine TPM 其实也无法从根本上解决这个问题。因为人家能偷到你的 pin 就能使用 tpm 来解密你的数据盘。能解密你的数据盘就能传输数据。根本问题还是本地计算环境不可信,那就无解。TPM 提供了一个有限的可信环境,所以 TPM 内执行加解密是安全的,或者说可以这么认为。
但是如果系统的其他部分不可信的话,那数据在被不可信的部分处理时,还是不安全的。

@eason1874 linux 的 secure boot 很有限,很多发行版只是 secure boot 到 bootloader ,也就是 grub 是签名的,但 grub 不验证内核签名。何况你自己编译的内核也无法获得官方签名,自己签名的话就需要自己维护一套 CA 和可信的编译流水线,于是又回到了我上面说的 “更高安全的系统是( intrusion detector )连到 BIOS 里。从原厂直接锁定 secure boot key 之类的配置。任何人开箱,系统自动报废 TPM 。”

冷知识:大部分系统预装的 secureboot key 是微软的 key 。
Jirajine
2022-09-25 07:37:22 +08:00
@ryd994 TPM 可信就可以构建 trust chain ,让整个系统都可信。BIOS 验证 bootloader ,bootloader 验证内核,内核验证 rootfs 。
一个最典型的例子是 Android ,Android 上的应用默认不会被 MITM (无需 ssl pinning ),这点可以由 TEE 保证。TEE 配合 bootloader 锁确保用户无法篡改 ROM ,而可信厂商(签名被信任)构建的 ROM 确保用户无法修改系统 SSL 证书。
ryd994
2022-09-25 07:43:27 +08:00
@Jirajine 确实可以可信但无法做到加密。
你说的是用 tpm 代替密码直接解密磁盘,这是没用的,如果可以偷硬盘,就可以连 TPM 一起偷。

TPM 不设 pin 等于没有。

可验证 /不可篡改 和 数据安全 /不可访问 是两回事
Jirajine
2022-09-25 08:03:04 +08:00
@ryd994 当然,这样只能保证设备本身被篡改(变更证书等)后不会释放 key 。如果要保证设备被偷了也不能解密,那肯定得从外部输入 key (键盘、ssh )。
即使这样也不能完全确保物理访问下的安全,要想不被物理 dump 内存,还是得连同硬件一起保护才行。
mokiki
2022-09-25 08:07:17 +08:00
数据分区加密用 luks 和 zfs 都可。至于预防植入木马,可以先记录非加密分区所有文件指纹,保存在自己的电脑上,每次开机 ssh 上去之后,先验证指纹,验证通过才手动挂载加密数据分区。

不过还是逃不过物理冷冻拔内存窃取内存中的密钥。
Cify
2022-09-25 08:27:12 +08:00
@eason1874 就是为了防止单用户模式进去修改密码, 所以想做到加密磁盘, 这样足够强悍的密码一般也很难破解了, 我这么理解对吗?
eason1874
2022-09-25 09:11:20 +08:00
@Cify 不是,两回事。“防止单用户模式进去修改密码” 只要给这个模式设置密码就行,那样别人想进这个模式就跟想正常进系统一样,要输入密码,没密码进不了。而磁盘加密是阻止别人越过系统直接读取硬盘里面的内容

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/882712

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX