我正在寻找一种方法来实现一种更安全的异地备份方式,这种方式还可以保护我的数据免受恶意黑客获得对我的服务器的 root 访问权限的情况。如果 SSH 和密码安全设置正确并且系统保持正确更新,即使发生这种情况的可能性比其他类型的风险小,但可以永久造成的损坏量确实很高,因此我想找到一个解决方案来限制它。
我已经尝试过两种异地备份方式:
一个简单的 root 可写 webdav 挂载(并在 fstab 中配置),备份数据被复制到其中。问题:不是真正的异地备份,因为对异地位置的连接 - 以及访问 - 一直作为文件系统中的文件夹打开。如果挂载具有有限的访问权限(只读 root 访问权限),这足以防止多种攻击,但不能防止具有 root 访问权限的恶意人员。
通过 SSH 进行 Borg 备份并使用密钥身份验证。问题:如果恶意用户对主机具有 root 访问权限,则可以使用存储在主机上的密钥连接到该异地服务器。
作为解决方案,我正在考虑这些潜在的方式,但我不知道如何以及用什么:
在我的情况下并不真正有趣的解决方案:
任何人都可以就如何为我的案例实施适当的异地备份提供建议吗?
我有一个管道,可以在 Linux 机器上运行一些计算密集型任务。启动这些的脚本会检查当前的平均负载——如果它高于某个阈值——等待直到负载低于它。这是在 Ubuntu 虚拟机上(运行在 Ubuntu 主机上,如果相关的话),它可以分配不同数量的内核。我们的开发和生产机器都是运行在同一台物理服务器上的虚拟机,我们根据需要手动为每个机器分配内核。
我注意到,即使虚拟机只有 20 个内核,大约 60 的负载也不会使机器瘫痪。我对Linux 平均负载如何工作的理解是,任何超过 CPU 数量的东西都表明存在问题,但显然事情并没有那么明确。
我正在考虑将阈值设置在$(grep -c processor /proc/cpuinfo) x Nwhere 之类的地方N>=1。是否有任何聪明的方法来确定N应该采取的价值,以便最大限度地提高性能并最大限度地减少滞后?
换句话说,在性能开始下降之前,我怎么知道一台机器可以支持的最大平均负载是多少?我天真地认为这是 CPU 的数量(所以,N=1),但这似乎站不住脚。由于内核的数量可能会有所不同,因此测试可能的组合既复杂又耗时,而且由于这是一台供不同人使用的机器,因此不切实际。
那么,如何根据可用内核的数量确定可接受的最大平均负载阈值?