针对我家的人强化 Linux 台式机

信息安全 linux 隐私 物理访问
2021-08-31 23:46:34

我希望在我的家庭桌面上全新安装 Debian 系统。澄清一下,我正在从 Windows 切换并希望将其用作我的日常家庭操作系统 - 我不会运行任何服务器或类似的东西。

我也有理由相信我的一些家庭成员(可以物理访问我的机器)会尝试访问它,并查看我的数据,甚至可能安装键盘记录器。

出于这个问题的目的,请忽略社交方面,除了我不能公开对抗的事实,因此例如锁定我的房间以防止任何人访问我的电脑不是一种选择。

我要保护的人具有技术素养;即使他们可能缺乏很多经验,他们也知道他们在 linux 上的方式,如果可以通过一些谷歌搜索找到一些东西并且可能需要一两个小时的时间,那么它很可能会被尝试。也就是说,我很确定他们不会为获取专业设备而烦恼,这意味着我不必担心大多数硬件攻击,例如键盘键盘记录器或我的主板 / RAM 嗅探器 / 上的错误。

另一件事是我有一个 Windows 7 系统,他们有管理员访问权限(因此可以认为它受到了损害)。这是我改用 Linux 的原因之一;但是,我想保留一个双引导系统,而不是直接删除 Windows。我知道这将允许攻击者彻底破坏我的 Linux 分区,这是我愿意承担的风险。

我不关心保护我的 Windows 系统。我知道它受到了损害,并不真正关心它会发生什么。正如我所提到的,其他人在我的 Windows 系统上拥有帐户并偶尔使用它(出于正当理由!)。我当然希望保护我的 Linux 安装,但阻止对 Windows 的访问是没有意义的,除非它有助于我机器的 Linux 部分的安全。事实上,如果可能的话,我宁愿避免限制对 Windows 的访问,因为我不想显得偏执或在家庭中制造冲突。

全盘加密将阻止任何人从我的 Linux 安装本身之外实际访问我的数据,这应该同时照顾 Windows 系统,甚至使从 USB 驱动器启动几乎无用(我很确定有问题的人会这样做没有资源或动机来解密加密良好的驱动器)。当然,我还需要对单用户模式进行密码保护。

我还需要做哪些其他事情来保护我的系统?我对命令行很方便,并且愿意亲自动手,但是我的 Linux 经验有限,对计算机安全的了解也很零碎。Debian 的选择在很大程度上是任意的,如果在我的情况下会更好,我会尝试使用不同的发行版。如果有什么我遗漏的,或者如果您对我提到的事情有提示(例如磁盘加密的最佳实践?),那么我会很高兴听到它们。

我不认为这个问题是重复的,因为我在本网站上发现的有关保护 Linux 的所有其他问题都与远程攻击者以及针对病毒和漏洞的防护有关。他们当然有很好的答案,但这不是我在这里寻找的信息。
当我的帖子被标记为重复时,另一个问题引起了我的注意。但是,一般来说,当其他人可以物理访问他们的机器时,他们会问他们的机器是否安全;它的答案通常归结为“物理访问=游戏结束”并提​​供一些技巧来减轻各种攻击(包括显示器上的后视镜等东西)。其中许多技巧在这里并不适用,因为我知道无限制的物理访问意味着理论上机器不再是我的,因此我在适合我个人情况的威胁模型中为攻击者提供了一些限制。

4个回答
  1. 为 root 用户使用强而难的密码。其次,始终从没有管理权限(以及强密码)的其他用户登录和工作。

  2. 启用 BIOS 密码选项。每次打开计算机电源时,BIOS 本身都会在启动之前要求您输入密码。它还将阻止每个人对 BIOS 设置应用更改。

  3. 加密硬盘的每个分区(检查 Debian 的 cryptsetup - 如果它也不能加密您的 Windows 分区,请使用 TrueCrypt(从 Windows 为您的 Windows))

  4. 注意连接在您的 PC 上的外部硬件设备(如 USB 记忆棒或集线器),您以前没有使用过这些设备。可能有人插入了键盘记录器或其他东西。

  5. 当您不在时,请务必锁定或关闭机器。

  6. 软件加固:

    安装gufw(预安装的 iptables 防火墙的 GUI)并阻止传入流量。还要安装rkhunter并不时检查您的系统是否存在已知的 rootkit 和其他威胁。

这就是我现在能想到的。如果您有任何问题,请随时在下面发表评论。

我讨厌成为这样的人,但是

第 3 条

如果坏人可以不受限制地物理访问您的计算机,那么它就不再是您的计算机了。

您在问如何最好地锁定胶合板门。人们在锁方面给了你很好的建议,但它们都不重要,因为你的系统在物理上是脆弱的,而且你的攻击者是有能力的。他们只会使用斧头(或者在您的情况下,使用螺丝刀)。

根据您需要的性能和您愿意花费的金钱,考虑到您的“独特性”,可移动的“Live USB”或USB“硬盘驱动器”上完全可启动的普通系统(小型固态硬盘会很好用)可能是理想的解决方案对本地攻击者需要高安全性的限制。它将允许您将受损的 Windows 系统留在原处,并在可随身携带的可移动设备上创建 Linux 系统。以最低的成本,您可以使用非常便宜的拇指驱动器。在快速拇指驱动器或更强大的 USB SSD 上多花一点钱,就可以为大多数应用程序实现合理的性能。加密它是一个好主意,以防您与它分离,但鉴于它始终与您同在并且它构成了整个操作系统,因此它可以免受本地攻击。

有些事情需要考虑与之前给出的所有答案不同:您要寻找的是隐私,而不是安全

虽然它们看起来非常相似,但它们的目标不同,实现的方式也不同。如果您希望实施安全性,您将删除其他用户的管理员访问权限,锁定每个用户的帐户,并设置保护措施以防止滥用。当然,这是以可用性为代价的。

现在是隐私解决方案。由于您只着眼于保护您的信息,同时保持其他人完好无损,因此有 3 个主要的攻击媒介需要解决(假设您按计划迁移到 Linux):

  1. 静态数据(在硬盘上)
  2. 动态数据(在网络上)
  3. 设备开启时的保护(防火墙)

对于静态数据:您将需要使用某种加密。这将防止没有密钥/密码的任何人查看您保存的任何数据。还有很多其他答案涵盖了这个主题,因此请参考它们以了解具体的实现细节。

对于动态数据:我建议购买 VPN 服务(如果有资源,也可以在外部设置)。这将加密和保护所有进出盒子的流量。它不仅保护流量,还保护基于连接信息的流量推断。例如,SSL 加密您和您访问的网站之间的所有流量;但是,如果有人嗅探您的流量并在初始请求中看到了 facebook.com,虽然他们不知道您向 Facebook 发送了什么,但他们知道您正在 Facebook 上做某事。VPN 会在发送到 Internet 之前通过其服务器隧道传输所有流量,从而有效地消除这种泄漏。

设备开启时的保护:假设所有硬件攻击都不在画面中(例如键盘记录器或摄像头),机器暴露的唯一区域是以太网。如果打开的服务存在漏洞,则有可能从网络攻击该服务并获得对您机器的控制(在您假设的谷歌搜索的几个小时内)。为了防止这种情况,您需要设置防火墙在 Debian 上,iptables应该做得很好。在任何传入流量上,您都需要阻止所有不是RELATEDESTABLISHED的内容。为了进一步限制,您可以阻止所有不是来自或来自您的 VPN 的流量。通过这种方式,它几乎完全消除了任何攻击面,并且需要比你的室友更专注的攻击者来破解。

以下是与 iptables 一起使用以设置限制的选项示例:

# iptables -P INPUT DROP
# iptables -P FORWARD DROP
# iptables -P OUTPUT DROP
# iptables -A INPUT -s [VPN IP] -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# iptables -A OUTPUT -d [VPN IP] -j ACCEPT

以及每个人在做什么:

  1. 丢弃所有进入机器的数据包
  2. 丢弃所有通过机器路由的数据包
  3. 丢弃从机器发送的所有包裹
  4. 允许处理从已经存在的连接(您对 VPN 建立的连接)创建的来自 VPN IP 的数据包
  5. 允许任何数据包从您的机器发送到 VPN

您也可以只允许 VPN 使用的特定端口来进一步限制攻击向量。请务必注意,除非通过 VPN,否则您将无法访问 Internet,因此请确保在应用这些更改之前已设置并正常工作。

一旦应用了所有这些,无论是在您使用它时,还是在您离开时,试图查看您数据的人都几乎不可能闯入该盒子。

免责声明:这假设您的基础设施受到攻击。社会工程和类似的攻击更难以预防。