这可能是一个非常愚蠢的问题,但无论如何,我还是想问一下。
我刚买了几台服务器。我已经在一台服务器上安装了带加密 LVM 的 Ubuntu,我打算在另一台服务器上也安装。这意味着每次启动这些机器时,我都必须输入密码。而且我每天早上都必须这样做,因为出于安全原因,我每晚都会关闭每台机器。
问题是:我没有这些服务器的显示器或键盘。我觉得我有两个选择:
- 以某种方式远程输入密码
- 购买KVM切换器
我怀疑 #1 是不是一个选项,但我想在购买 KVM 之前确保它不是。是否可以远程输入密码?这是个好主意吗?
答案1
一种可能的选择是重做,以便基础系统(/ /usr /etc /lib
以及所有 Linux 系统上相同的东西)不加密,而实际数据则保存在单独的加密 LV 中。然后,系统应该能够启动到您可以远程登录并挂载加密分区并在当时提供密码的状态。
这是我在数据库服务器上采用的选项,其中仅包含数据库的加密分区,该分区设置为在启动时不启动,因此我可以登录并挂载分区并启动数据库。
答案2
如果您的服务器支持 IPMI 2.0 SOL(Serial-over-LAN),您可能能够使用 ipmiconsole 或类似的实用程序在您的机器上获取串行控制台。一旦您能够正常工作,将键盘输入发送到您的虚拟串行端口就不是什么难事了。您的操作系统可能需要一些额外的配置才能使用串行控制台。
至于这是否是个好主意,嗯,这个问题没有一个一劳永逸的答案。这取决于你想要保护什么以及你通过这样做想要实现什么。在我见过的几乎所有情况下,服务器的全盘加密都是完全过度的,因为它除了物理入侵之外,无法保护你免受任何伤害。出于显而易见的原因,大多数入侵/黑客攻击都发生在开机的服务器上,而不是关机的服务器上。
答案3
也许你想使用 USB 令牌来实现这个目的?当然,这会将安全性从网络转移到物理。我相信你知道你无法实现完全的安全,但你必须妥协。
一条建议:习惯会导致放松警惕,从而更容易失误和犯小错误,进而走向阴暗面,最终导致依赖虚假的安全感。
我强烈建议不要依赖一个庞大的万能安全系统,而是依赖小型模块化插件,这样可以为您提供更细粒度的控制。例如:加密的 LVM 是可以的,但使用 USB 令牌作为启动系统的密钥。然后只挂载您真正需要的分区(并使用不同的密钥加密它们),甚至可以远程输入密钥或(更好的!)让读卡器使用您随身携带的东西来验证您的身份并防止回复攻击。依赖良好的补丁和冗余安全系统,而不是单一防火墙或单一“解决方案”(即在不同的机器上安装两个冗余防火墙,并通过透明桥接使其中一个不可见)。保持一个系统离线并随机间隔(天、周、小时等)比较校验和。等等。
如果您想要快速而简单的安全性,请忘记“安全性”部分。
答案4
当最初提出这个问题时这可能是不可能的,但现在可以设置你的 initrd 以让你通过 ssh 输入密码。
根据本 Ubuntu 指南 -http://blog.nguyenvq.com/2011/09/13/remote-unlocking-luks-encrypted-lvm-using-dropbear-ssh-in-ubuntu/- 我能够设置我的几个 Debian 服务器,以便我可以远程解锁它们。