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