NFS 根文件系统

NFS 根文件系统

我正在考虑创建一个包含一些linux 的liveCD。该发行版(我们称之为考试操作系统)旨在供学生在考试期间使用,并且至少应该不会被绕过。假设学生可以携带自己的笔记本电脑,并且他们收到 CD 上的可启动考试操作系统。

该发行版应具有以下特点:

  • 有限的网络访问(最好仅访问 Wolframalpha.com 和/或 Overlord 服务器 [验证用户]) - 无法与其他学生和外部网络进行通信
  • 有限的套餐(但另一方面,也有一些添加,例如 Maxima)

我认为第二点是最简单的一点。如果我想确保无论他们分析 CD 多长时间(他们可以将其保存在 HDD 上,对吧?),他们都无法绕过限制,那么第一个似乎会变得更困难。更重要的是,该系统应该易于验证(学生可能会制作..类似的系统,看起来就像我的一样)。我正在考虑登录并注册到霸主,以便您可以查看登录了多少台电脑以及它们注册的名称(我的意思是真实姓名)。服务器还可以向用户提供一些密钥,学生必须将这些密钥放在他的论文上(是的,事实上这都是文书工作,PC 应该只是提供帮助)。

我的问题是:

  • 我应该基于哪个发行版进行考试操作系统
  • 我应该如何应对学生的任何绕过尝试?

感谢您对此事的任何想法。

答案1

至少在没有伤害威胁的情况下,您无法强制学生启动您的考试操作系统。跳到水平规则,了解我将如何实现您的总体目标。这就是我欺骗你的系统的方法:

我会启动我的 Linux,在那里我将始终拥有 root 权限和我可能需要的一切。然后我会挂载 Exam OS 根文件系统。该文件系统位于您给我的 CD 上,我始终能够安装它。然后我会打开一个新终端,chroot进入 Exam OS 并在 chroot-jail 内启动 Exam OS。如果您的考试操作系统基于 Debian 或其衍生版本之一,我会

/etc/init.d/rc S
/etc/init.d/rc 2

实际上,我将拥有您的考试操作系统,这意味着我拥有您想要给我的一切,同时我也拥有自己的 Linux,用于您不想给我的一切。

也许我跑步有点过度了/etc/init.d/rc S,可能应该限制自己只跑步/etc/init.d/rc 2。每个发行版都有一个很容易找到的类似的魔法体现。

是的,你可以发动战争,让这花费我宝贵的考试时间,但你花费我的每一分钟,你都必须投入几个小时!另外,您必须让考试操作系统拒绝在虚拟机内启动,因为这是欺骗您的系统的另一种选择。


破坏性的部分就讲这么多,让我们谈谈建设性的部分。 :-)

如果你不希望学生做某事,就告诉他们,如果他们违反了规则,就让他们不及格。这已经有效了几个世纪了!我会分发考试操作系统 CD,并告诉他们在考试期间使用其他操作系统被视为作弊。现在我们已经解决了这个问题。我们现在需要做的就是抓住他们作弊(他们很可能不会再这样做了)。

为了创建考试操作系统,我会修改一些现有的 Live-CD。这几乎无关紧要,但是,如果它是一些“完整的”Linux,那将是最简单的,所以 Ubuntu 和 Fedora 是第一个想到的,这里是一个非常大的替代品清单。我会选择拥有关于如何创建/重建 live-cd 的最佳文档的那个!完成的考试操作系统必须满足以下要求:

  1. 学生可以快速访问我希望他们拥有的所有课程
  2. 桌面具有独特的设计/皮肤,因此我可以从远处以 80% 的确定性判断是否有人没有使用 Exam OS
  3. 默认不需要用户名密码认证
  4. 要以其他用户身份登录,su 或 sudo,您需要一个 USB 记忆棒(钥匙串上的那个)进行身份验证
  5. 有时髦的网络设置,以便限制互联网和本地通信以满足我的需求。
  6. 有一个定制的内核,它甚至不支持蓝牙、irda 或除以太网之外的任何其他可以实现通信的子系统。 USB也需要限制!

1 基本上意味着我将桌面快捷方式放在我希望他们能够使用的所有内容上。这样我就可以轻松测试一切是否正常。

为了实现 2,我会使用学校颜色和临时徽标来对桌面进行皮肤处理,以便我在看到考试操作系统桌面时能够识别它。在考试期间,当我看到奇怪的颜色或图片,甚至错过一些我知道应该存在的东西时,我可以更仔细地调查。

3 很简单,使考试操作系统变得简单,当我认为有人作弊时,我可以关闭笔记本电脑,将其翻转并打开。当我看到考试操作系统时,我会申请,如果我没有看到,甚至看到锁定的屏幕,我就会发现有人作弊。

4 意味着强化系统,这样你只有拥有我的 USB 密钥才能成为 root。有一个 pam 模块,因此 USB 记忆棒身份验证并不难做到(google pam_usb)。有了 Live CD 的基本操作系统以及可用于获取超级用户权限的任何服务的 pam 模块,即登录、su、sudo 以及可能的一些桌面管理器和 sshd,成为 root 应该足够困难。之后仍然要确保普通用户不能编辑重要的配置文件和目录!

5 表示没有名称服务器条目,但我希望用户能够访问的所有网站/etc/resolv.conf都有一些条目。/etc/hosts此外,还需要有一个限制性防火墙,它会丢弃所有传入和传出的数据包,并且对于每个主机,我希望学生能够通过必须定义的 IP 地址达到例外。

6就是这个意思。从您选择的 live-cd 的通用内核中获取配置,并删除所有您不需要的子系统。声音、Linux 视频、蓝牙,以及考试期间不需要的一切。撕掉除 usb-hid 和 usb-storage 以外的所有 USB 设备。关于 USB 棒非常重要:删除所有不需要的文件系统,只保留需要的文件系统。对于身份验证棒,我会选择一些奇怪的FS,不再有人了。甚至可能是一个不属于标准 Linux 一部分的实验性版本。

这只是一个粗略的指南,抱歉:D

答案2

让他们使用你的 CD 似乎相当具有侵略性。另外,有些上网本可能根本不包含 CD 驱动器...(更不用说没有自己设备的学生了!) 您有可用的计算机实验室吗?

看一下1:智者。它捆绑许多开源数学软件(例如 Maxima、GAP、SymPy、NumPy)在基于 Web(以笔记本为中心)的界面中。另外,人们一直在使用它进行计算机化考试在 sage-edu 邮件列表上分享他们的经验和设置想法。

在本地网络上拥有一台 Sage 服务器(具有锁定的工作表共享?不确定这是否可能),正确关闭,可以使您完全禁用互联网访问......

1: 我有不是彻底思考了这一点,但无论如何也许它是有帮助的。

答案3

一些让事情变得更加困难的建议。其中很多假设你是在学校的某个地方这样做,而不是你将 CD 寄回家(如果你是这样,放弃:学生可能会使用另一台电脑、手机、平板电脑等作弊)

NFS 根文件系统

不要将整个操作系统放在 CD 上,而只在上面放一个最小的系统。最好仅通过 initramfs。让它在您/学校控制的服务器上使用 NFS 根文件系统,并且只能在考试当天访问。

这样,考生检查系统就会变得更加困难;他/她必须在考试期间这样做。当然,测试者不应该拥有 root 访问权限,也不应该安装持久的、可写的介质,因此他/她将很难tar建立 rootfs 以便稍后检查。

也让您更容易更新。您不必每次都刻录 200 张 CD。

更进一步

如果所有机器都支持网络启动,请对其进行网络启动。根本不分发 CD。

让它看起来不一样

Linux 桌面环境是非常可定制的。您可以(取决于哪一个)更改窗口的颜色、标题栏、使用的字体、菜单和任务栏的外观、桌面背景等。不要做任何疯狂的事情(这会让系统太陌生了),但一定要使其成为非默认值。然后,您将能够快速浏览屏幕并发现看起来不正确的部分。

你也可以做一些更小的事情。例如,在桌面上放置一些图标,或者在菜单栏中放置一个模拟时钟。当您仔细观察屏幕时,您可以检查这些内容。

……每次考试

有人可能会复制您的造型并为下次考试做好准备。或者至少足够近,以至于你必须仔细观察。

如果您不必一直重新刻录图像,则可以轻松更改每次检查的外观。在开始考试之前,学生不会知道今天的 ExamOS 会是什么样子。

设置 VNC 服务器

您可以设置 VNC 以允许您查看桌面,这样您就可以在舒适的办公桌上查看人员的情况。从道德上讲,我认为你应该通知人们你可以这样做。

记录考试

如果您有文件服务器空间和带宽,请对整个考试进行屏幕录制。 (有几个屏幕录制程序)。仅在出现怀疑和/或随机样本时进行审查。从道德上讲,我认为你应该通知学生另一件事。

控制媒体

您应该在考试开始时分发 ExamOS CD,并在考试结束时领取。要求人们将它们归还。


网络控制

iptables

您可以使用 iptables 阻止除您想要的流量之外的所有传出流量。我建议您将 Web 浏览器配置为使用 HTTP 代理,并且您允许的唯一传出流量是该代理。如果需要连接到代理(但仅限于您的 DNS 服务器),还可以允许 DNS。

代理人

您可以使用允许和禁止的 URL 列表来配置squid、apache 等。您可以在您控制的服务器或每台本地计算机上运行它。

外部防火墙

如果所有考试机器都位于您控制的防火墙后面,也可以阻止那里的事物。如果不自带连接,学生将无法绕过它。

相关内容