我的计划是:
关闭对所有套接字的监听,并通过以下命令启动X:(
Xorg -nolisten tcp -nolisten inet -nolisten inet6 -nolisten unix -nolisten local :0 -seat seat0 vt7 -novtswitch
尽管我不知道如何在没有此配置的情况下完全阻止X运行)无根运行 Xorg - 考虑到我不想使用 GNOME 或 GDM,这比看起来要困难得多。目前我正在使用 LightDM 和 XFCE。我确实设法让无根 Xorg 在 SDDM 上工作,但它有很多问题。这种疯狂的行为再次让我感到困惑。
FireJail 主 X 服务器,仅允许通过特定输入(键盘、鼠标、屏幕、Xephyr)进行通信。因此,为此我会阻止除这些应用程序/设备之外的任何直接与 X 服务器对话的内容,从而强制 GUI 应用程序使用 Xephyr 的代理。它还应该将所有内容都放在沙箱中,以期防止可能的零日攻击。
在应用程序和 X 服务器上通过 FireJail 使用 seccomp 命名空间来尝试进一步隔离所有内容
然而,实施这些措施的现实比我想象的要困难得多,正如我所看到的 FireJail 和 Xephyr 仍然无法阻止键盘记录。我应该在上面的列表中添加什么内容吗?如果我们能够在此线程中编制一个所有可能修复的列表,以帮助其他可能也遇到同样问题的人,那就太好了。
你们采取了哪些保护措施来防止 X11 和 Xorg 上的键盘记录(和其他问题)?这是一个巨大的问题,几乎影响每台运行 Linux 的 GUI 计算机,所以我绝对不能也不相信有什么办法可以阻止这个问题,因为这是一个臭名昭著的问题。
真的很想听听大家的想法。
答案1
一般来说,不运行“恶意软件”可以保护您免受此类问题的影响。如果您必须运行 Xorg 并且非常关心该特定问题,您可能需要考虑在不同的TTY
服务器上简单地运行多个服务器(不适用于登录)。
我还没有尝试过这个,但应该可以startxfce4
在多个上运行TTY
。Systemd 目前不支持每个用户多个会话。
所以你可以在没有 systemd 的情况下生成这些会话。此外,您将需要单独的文件,例如.Xauthority
.这是我能想到的唯一未经测试的解决方案。有了这个,你应该获取多个桌面会话不应该能够互相沟通。
但是,对于多个用户(每个会话 1 个用户),您仍然可以使用 systemd,只需进行最小的更改。它也不是最佳的,但也应该有效。
请记住,让您的 DE 不使用 systemd 和常规配置可能需要一些工作,并且可能需要非 systemd 系统。
但是,当您想要运行“恶意软件”时,这将不是唯一/最不关心的问题,您可能希望在硬件方面隔离系统。