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