1.2.1 定义SOE
让我们从一个更实际的角度来快速看一下。我们已经说过,SOE是一个概念,而不是绝对的。在最简单的层次上,它是一个通用的服务器映像或构建标准,部署在整个公司的大量服务器上。在这里,所有必需的任务都是以已知的、文档化的方式完成的。
首先是基本操作系统,正如我们所讨论的,有数百种Linux发行版可供选择。从系统管理的角度来看,有些非常相似(例如,Debian和Ubuntu),而有些则明显不同(例如,Fedora和Manjaro)。举个简单的例子,假设你想在Ubuntu 18.04 LTS上安装Apache Web服务器,可以输入以下命令:
现在,如果你想在CentOS 7上执行相同的操作,可以输入以下命令:
如你所见,这些命令之间没有任何共同之处,甚至连软件包的名称都不同,尽管这两种情况的最终结果都是安装了Apache。在小规模时,这不是一个问题,但是当服务器数量众多并且随着服务器数量的增加,管理这样一个环境的复杂性也会增加。
基本操作系统只是一个开始。上面的例子是安装Apache,也可以安装nginx甚至lighttpd。毕竟,它们也是Web服务器。
然后是配置。你希望用户能够通过SSH以root身份登录吗?出于审计或调试的目的,你需要一定级别的日志记录吗?你需要本机身份验证还是集中式身份验证?这份清单是无穷无尽的,如你所见,如果任其发展,可能会成为一个巨大的问题。
这就是SOE的用武之地。它实际上是一个规范,在较宏观的层次上,它可能会规定:
·标准基本操作系统是Ubuntu 18.04 LTS。
·标准Web服务器将是Apache 2.4。
·SSH登录已启用,但仅适用于具有SSH密钥的用户而不是root用户。
·所有用户登录都必须记录并存档,以便进行审核。
·除少数本机应急(break glass)账户外,所有账户都必须集中管理(例如,通过LDAP或Active Directory)。
·公司监控解决方案必须集成(例如,必须安装并配置Nagios NCPA代理,以便与Nagios服务器通信)。
·所有系统日志必须发送到公司中央日志管理系统。
·必须对系统应用安全加固。
以上只是一些例子,并不是完整的。但是,它应该开始让你了解SOE在宏观层次上的样子。本章我们将深入探讨这个问题,并给出更多的例子来建立一个明确的定义。