在学校,我们有一台计算机,仅供学生登录并进行与计算机科学相关的活动,例如为课程编写C和C程序.它运行了一些模糊的
linux风格,在我接手之前已经使用了许多年.我最近在其上安装了Ubuntu Server,使其更易于维护和安全.目前,我们根据需要设置用户帐户.学生为课程ssh登录和完成作业,每个用户将他们的工作和游戏存储在他们的主文件夹中.教师将让学生将他们的工作留在某个文件夹中进行提交或类似的事情.
我担心的是一个过于探索和探索的用户,或者有人恶意破坏它并破坏某些东西,从而导致其他人无法完成任何工作,并导致教师向我抱怨并使我看起来像一个糟糕的系统管理员因为没有阻止这个. (我仍然是本科生和他们的怜悯)
学生目前在自己的小组中,只能看到自己的主文件夹/无法浏览其他学生的文件夹.教师拥有更高级的帐户,但不是管理员帐户.我不愿意开始更改重要系统文件夹的权限,担心我可能会破坏某些东西(再次像我之前所做的那样).
我可以采取哪些安全措施来确保系统的功能,同时确保系统安全,以便每个人都可以享受和使用它?
解决方法
我在大学期间运行了一个大致相似的项目(我们有多台服务器,并且对任何人都没有真正负责任的计算机服务,但我们是学生的linux盒子).在安全性方面,主要是关于保持绝对最新的补丁.如有必要,请关闭登录,如果存在本地根漏洞,并且尚未修补.您还想设置ulimits.这些是多少取决于你的机器有多强大,或者我们最不强大的机器使用它们:
–
t: cpu time (seconds) 18000 -f: file size (blocks) 307200 -d: data seg size (kbytes) 51200 -s: stack size (kbytes) 8192 -c: core file size (blocks) 0 -m: resident set size (kbytes) 51200 -u: processes 75 -n: file descriptors 300 -l: locked-in-memory size (kb) 175000 -v: address space (kb) 400000 -x: file locks unlimited -i: pending signals 61440 -q: bytes in POSIX msg queues 819200 -e: max nice 0 -r: max rt priority 0
除此之外,您还需要为教师和学生帐户设置配额.它们的大小取决于您的磁盘,但我们目前默认设置1GB配额.我相信我的继任者照顾这些机器通常很乐意为那些有正当理由的人提供帮助.
除此之外,如果可能的话,我会请求/借用/窃取第二台机器来备份您的配置/用户数据.理想情况下,您应该备份所有/ etc /,已安装软件包的列表以及所有用户数据(如果您有自己组装的任何软件包,则应备份完整的.debs).如果你有空间,我也会备份/ var,(/ var / tmp除外).
/ root的权限默认为755.你会想要改变它们,因为你会在某些时候意外地将敏感文件留在那里.此外,wall和su(至少)应该更改其权限,因此只有root / root组才能使用它们(可以随意更改只有您所在的其他组的根组).
最后,我将所有内容系统记录到远程服务器,没有用户登录(即使这不是由您控制的计算机).我在你的机器上安装了史努比,所以当有人入侵时你会有一些审计日志.
我们的大多数系统的文档都是here.如果你只运行一台机器,它们中的大多数可能不适用于你,但它们可能值得探讨一些.