第 II 部分 本地安全性 #
- 9 物理安全性
物理安全应予以最大限度的关注。Linux 生产服务器应安放于加锁的数据中心之内,只有通过安全检查的人员才能访问。您也可以考虑使用引导加载器口令,具体视环境和情况而定。
- 10 软件管理
要保护 Linux 系统,重要的一步是确定 Linux 服务器的主要功能或作用。否则,就很难了解需要保护哪些方面,并且对这些 Linux 系统的保护可能是无效的。因此,请务必查看默认的软件包列表,并去除任何与您定义的安全策略不符的不需要的软件包。
- 11 文件管理
服务器应该至少为
/
、/boot
、/usr
、/var
、/tmp
和/home
提供独立的文件系统。如此可避免一些问题,例如,避免/var
和/tmp
下的日志记录空间和临时空间填满根分区。第三方应用程序也应位于独立的文件系统,例如在/opt
下。- 12 加密分区和文件
加密文件、分区和整个磁盘可以防止有人未经授权访问您的数据,并保护您的机密文件和文档。
- 13 使用 cryptctl 对托管应用程序的存储区加密
数据库和类似的应用程序常常托管在由第三方工作人员管理的外部服务器上。某些数据中心维护任务需要第三方工作人员直接访问受影响的系统。在此类情况下,为了满足隐私要求,就必须进行磁盘加密。
- 14 用户管理
请务必锁定未用于登录的所有系统帐户和供应商帐户。要获取您系统中未锁定帐户的列表,可以在
/etc/shadow
文件中查看不含以!
或*
开头的已加密口令字符串的帐户。如果您使用passwd
-l
锁定某个帐户,此命令会在已加密口令的前面添加!!
符号,这实际上表示禁用该口令。如果您使用usermod
-L
锁定某个帐户,此命令会在已加密口令的前面添加!
符号。默认情况下,许多系统帐户和共享帐户的口令字段中包含*
或!!
符号(将已加密口令呈现为无效字符串),从而锁定了这些帐户。因此,要获取所有未锁定(可加密)帐户的列表,请运行以下命令:- 15 限制
cron
和at
本章介绍如何限制
cron
和at
守护程序的访问权限以提高系统的安全性。- 16 Spectre/Meltdown Checker
spectre-meltdown-checker
是一个外壳脚本,用于测试您的系统是否容易受到多种推测执行漏洞的影响,这些漏洞在过去 20 年制造的所有 CPU 中普遍存在。这是一种硬件缺陷,攻击者可能会利用它来读取系统上的所有数据。在云计算服务中,如果多个虚拟机位于一台物理主机上,攻击者可以获取对所有虚拟机的访问权限。修复这些漏洞需要重新设计并更换 CPU。在采取此措施之前,可以通过多个软件补丁来缓解这些漏洞。如果您经常在更新 SUSE 系统,应该已安装了所有这些补丁。spectre-meltdown-checker
会生成详细的报告。它不能为您的系统提供安全保证,但会显示采取了哪些缓解措施以及潜在的漏洞。- 17 使用 YaST 配置安全设置
YaST 的SUSE Linux Enterprise Server 的安全相关设置。使用该模块可以配置与安全相关的各个方面,例如,有关登录过程、口令创建、引导权限、用户创建或默认文件权限的设置。在 YaST 控制中心内选择 › 启动该模块。 对话框即会打开并显示 ,左侧和右侧窗格中会显示其他配置对话框。
模块提供了一个中心控制面板,用于配置- 18 Polkit 身份验证框架
Polkit 是 Linux 图形桌面环境中使用的身份验证框架,用于对系统中的访问权限进行精细管理。在传统上,Linux 上的
root
用户(获得完全授权的管理员帐户)与系统中所有其他帐户和组之间存在严格的特权分离。这些非管理员帐户可能拥有特定的附加特权,例如通过audio
组访问声音硬件。不过,这种特权是固定的,在特定的情况下或特定的时间内无法授予。Polkit 不是完全切换到
root
用户(使用sudo
之类的程序)来获取较高的特权,而是根据需要向用户或组授予特定的特权。此过程由配置文件控制,这些配置文件描述了需要在动态环境中授权的各个操作。- 19 Linux 中的访问控制列表
可以将 POSIX ACL(访问控制列表)作为文件系统对象的传统权限概念的扩展来使用。相较于采用传统权限概念,利用 ACL 可以更灵活地定义权限。
- 20 使用 AIDE 进行入侵检测
保护您的系统是任何一位任务关键型系统管理员必须完成的任务。由于无法始终保证系统的安全性不会受到损害,定期执行额外的检查(例如,使用
cron
进行检查)以确保系统仍受您的控制,就显得非常重要。这正是 AIDE(高级入侵检测环境)的用武之地。