lotus domino_保护IBM Lotus Domino Web服务器的安全:案例研究
许多客户在其Intranet或Internet网站中使用IBM Lotus Domino。 在这些环境中保护Domino服务器对于确保数据的完整性和网站(尤其是Internet)的可用性非常重要。 我们先前的developerWorks Lotus文章“ 保护Domino Web服务器的安全”讨论了Domino安全模型以及如何在Web认证,服务器安全和数据安全方面保护Web服务器的安全。 在本文中,您将使用最近的客户案例研究来学习实现这些功能的特定配置和设置。 本文假定您是经验丰富的Domino系统管理员。
本文分为以下几节:
- 系统管理和使用–如何将访问和管理分开
- 案例研究体系结构–我们单一Domino服务器环境的体系结构
- Domino服务器配置–确保服务器安全的特定配置和设置
- 应用程序配置–如何使用DSAPI筛选器提供更强大的身份验证和授权控制
- 系统监视–如何监视安全和访问事件
系统管理和使用
在本案例研究中,我们将用户分为两组。 一组包括Web应用程序用户,第二组包括服务器管理员。 Web应用程序组包含使用Web应用程序的内部和外部用户。 第二组包括内部管理员,他们同时管理服务器的操作系统和Lotus Domino服务器。 没有从Internet执行的服务器管理,并且为了进一步加强这一点,删除了webadmin.ntf和webadmin.nsf数据库。 因此,服务器的管理仅由Lotus Domino Administrator客户端和通过安全外壳实用程序(SSH)执行,SSH是Linux服务器的一种加密访问方法,仅内部管理员可用。
之所以选择Linux是因为两个主要原因。 Linux没有像其他操作系统那样受到相同级别的病毒攻击,它提供了一种安全的远程管理方法。 Linux还提供了禁用操作系统上所有不必要或未使用的服务的功能,从而通过减少服务器上运行的服务数量来限制潜在的安全风险。
我们还将管理组分为两个子组,一个子组管理操作系统,另一个子组管理Lotus Domino服务器。 操作系统管理组负责所有操作系统功能,例如升级,备份,操作系统用户,组管理和Lotus Domino安装。 Lotus Domino管理员负责用户和组管理,服务器配置以及服务器维护。
案例研究架构
我们的客户需要一个简单的外部网站来将研究信息发布为虚拟图书馆的一部分。 尽管内容是私有的,但所需的数据量和功能非常适合Lotus Domino环境,并且设计了单服务器解决方案来满足他们的需求。
此案例研究涉及位于网络非军事区(DMZ)中并运行SUSE Linux和Lotus Domino 7的单个Lotus Domino Web服务器。 但是,我们选择Linux而不是Microsoft Windows作为病毒和黑客攻击的目标。 我们使用SSH是因为它提供对远程Linux服务器的安全加密访问,该服务器提供对单个应用程序数据库的访问。 图1说明了案例研究体系结构。
图1.案例研究架构
通过仅从Internet访问端口80和443,我们可以防止服务器受到损害。 另外,您可以看到端口22、80、443和1352是可从内部网络(通常定义为受信任网络)访问的唯一端口。 这也限制了服务器对任何内部恶意活动的暴露。 表1中描述了这些端口。
表1.网络端口定义
端口号 | 端口说明 |
---|---|
22 | Secure Shell(SSH)是一个程序,可通过网络登录到另一台计算机上以在远程计算机上执行命令。 它通过不安全的通道提供强大的身份验证和安全通信。 它通常在UNIX或Linux操作系统上使用。 |
80 | 超文本传输协议(HTTP)是万维网使用的基础协议。 HTTP定义了消息的格式和传输方式,以及Web服务器和浏览器应如何响应各种命令。 |
443 | 安全套接字层(SSL)使用一种加密系统,该系统使用两个**来加密数据:每个人都知道的公共**和仅消息的接收者知道的私有或秘***。 SSL加密HTTP通信。 |
1352 | Notes远程过程调用(NRPC)是Notes客户机与Domino服务器之间或两个Domino服务器之间进行通信的基础。 建议启用端口加密。 |
注意:目标服务器位于两个防火墙之间。 此配置提供了基于来自受信任网络和不受信任Internet的访问来分配不同权限和访问级别的功能。
Domino服务器配置
本节讨论用于我们的案例研究的Domino服务器配置,包括与安全性最相关的Domino Server文档和Configuration文档设置。 让我们从查看Domino服务器文档开始。 Lotus Domino 7有两个新选项,它们不一定适用于Web服务器,但有助于管理外部域。 这些选项是“比较公共**”和“记录公共**不匹配”。
通常,组织的管理员与外部域交叉验证其ID。 这两个选项允许强制执行公钥匹配。 如果ID遭到破坏,则可以通过创建新ID来生成新的公共**,从而将旧ID锁定在系统之外。 这些具有最高安全级别的新设置如图2所示。
图2.公钥检查
与服务器的所有HTTP通信都被强制使用SSL协议。 如果将Domino Server文档配置为将所有HTTP请求重定向到SSL,它将强制所有HTTP连接使用SSL。 与服务器的所有匿名SSL连接也被阻止。 在用户进行身份验证之前,服务器不会向用户显示任何信息。 服务器文档设置如图3所示。
图3.服务器Web设置
SSL证书是按照developerWorks Lotus文章“ 信任自己:成为自己的证书颁发机构 ”中的过程生成的。
您可以使用Notes.ini NABWebLookupView参数强制执行更强大的Internet身份验证设置。 除了用于执行查找的视图的第一列中列出的用户名之外,该参数还锁定所有其他名称变体。 在我们的案例研究中,我们仅允许使用用户的通用名称(例如Matthew Milza)进行身份验证。 如果用户尝试使用其名称的任何其他变体(例如Internet电子邮件地址),则将不允许他访问系统。
现在,让我们在“服务器配置”文档中配置Notes.ini设置参数,并在Domino目录中创建一个名为“($ webaccess)”的视图,该视图仅按通用名称排序。 视图的示例如图4所示,Configuration文档的Notes.ini设置如图5所示。
图4. Web认证视图
图5. NABWebLookupView配置设置
应用配置
使用Lotus Domino,您可以创建和管理Lotus Notes密码的密码策略。 但是,Lotus Domino不能立即提供Web身份验证的相同密码策略功能。 Lotus Domino 7使您可以在指定的时间长度后强制更改Internet密码,并强制设置密码质量和长度,您可以通过安全策略对其进行配置。 Lotus Domino 7还允许您锁定用户帐户并在下次身份验证时强制更改密码。
要实施更强大的Internet密码策略,可以开发定制认证Domino安全性API(DSAPI)过滤器,或使用LDAP目录进行认证。 大多数LDAP目录可以强制实施适当的密码策略。
我们的解决方案需要一套更完整的ID管理功能,例如:
- 帐户过期和密码过期规则分开
- 密码质量,长度和特殊字符检查
- 先前使用的密码摘要
- 用户自助提供密码更改和密码重置功能
- 登录尝试锁定失败
- 可配置的Web用户界面形式,文本和图形
为了提供这些功能,我们开发了一个使用自定义身份验证DSAPI筛选器的应用程序。 此应用程序满足此案例研究所需的所有安全功能。
注: ISSL应用程序是Domino数据库的自定义集合和DSAPI过滤器,它提供了对Web密码管理的更多控制。 几个业务合作伙伴已开发出可提供类似功能的商业产品。
图6显示了Domino目录中用于控制密码管理系统功能的特定Configuration文档。
图6. Internet密码管理配置文档
扩展“个人”文档架构的子表单显示为每个用户添加的设置(请参见图7)。
图7. Person文档中的其他子表单
核心处理是通过为操作系统开发的DSAPI过滤器提供的,该过滤器位于Domino服务器的Program目录中。 要使Domino HTTP服务器能够使用此功能,必须配置授权扩展过滤器。 对于每个参与服务器,将已安装的授权扩展的DSAPI筛选器库名称(例如libipwext.so)添加到DSAPI筛选器文件名字段(请参见图8)。 可在“服务器”文档的“ Internet协议”选项卡-“ HTTP”子选项卡“ DSAPI”区域下找到该文件。 配置完成后,这些其他数据库和设置将使用户界面和密码控件能够实施增强的安全功能。
图8. DSAPI过滤器文件名
默认登录页面如图9所示。
图9.默认登录页面
作为一个示例方案,如果用户反复尝试访问该站点,但是无法使用正确的密码登录,则拒绝访问。 根据配置参数,失败的登录尝试会将用户锁定在系统之外,并显示在服务器控制台中(请参见图10)。
图10.登录失败和锁定的服务器日志
您还可以通过访问控制列表(ACL)设置和属性框“基本”选项卡上“ Web访问”部分中的“不允许打开URL”数据库属性来限制对系统数据库的访问。 这样可以防止从Web打开数据库,这是Lotus Domino 6的新功能。启用Domino目录(names.nsf)上的属性后,用户仍然可以进行身份验证,这在注册用户需要进行身份验证时非常有用。对服务器的其他用户保持匿名。
Domino域监控
Domino域监视器(DDM)是Lotus Domino 7的新增功能。DDM使用一组预先配置的探针来收集有关被监视服务器的状态/过程信息。 这些探针收集与应用程序,数据库,目录,消息传递,复制,安全性,操作系统,服务器和Web相关的数据。 特殊的过滤器使您能够选择探针记录的数据的类型和级别。 收集数据后,将其合并,组织和处理为易于阅读的摘要报告。 DDM带有三个现成的安全性探针,可以检查“服务器”文档,“服务器配置”文档和“个人”文档,以验证设置是否符合最佳实践。 它还可以报告对服务器的未经授权的访问尝试,因此是审核Lotus Domino服务器安全性的有用工具。
DDM结果会在事件解决中心(ERC)中自动收集。 处理并放置到ERC数据库中的每个事件都有一个文档链接,该链接返回到生成该事件的特定监视器。 每次探针检测到错误或超过特定阈值时,ERC都会使用状态文档进行更新。 通过查看ERC中记录的DDM事件,您可以识别(在某些情况下甚至可以预测)系统性Domino事件。 启动第一个服务器时,将自动创建ERC。 ERC数据库基于新模板ddm.ntf。 默认情况下,其文件名为ddm.nsf。 图11显示了如何在Events4.nsf数据库中启用“最佳实践”探针的示例。
图11.安全探针文档
“安全探针”文档中的“详细信息”选项卡提供了由该探针验证的服务器设置的列表,包括:
- 将Notes公钥与存储在目录中的公钥进行比较
- 确认密码
- 允许匿名Notes连接
- 要求的变更间隔
- 检查Notes标识上的密码
- 检查个人文档中是否存在ID文件
- 互联网认证
- 检查SSL设置的安全性
- 检查网络设置的安全性
- 检查Domino目录设置的安全性
- 检查邮件设置的安全性
- 检查DIIOP设置的安全性
- 检查远程调试管理器的安全性
- 使用更安全的Internet密码
- 我的配置文档中的安全设置
- 上网密码
- 验证所有服务器文档“安全性”选项卡部分:
- 管理员
- 程序
- 网页
- 安全设定
- 服务器访问
- 直通使用
下表说明了每个探针在ERC中显示的信息类型。 ERC数据库(文件名ddm.nsf)包含活动DDM探针生成的数据。 探针运行时,它会将发现的所有相关数据(如果有)记录在放置在ERC中的报告中。 该报告包含特定探针的结果,产生结果的可能原因,每个事件的建议解决方案,以及用于生成此事件的探针的链接。 然后,探针运行,并将找到的所有相关数据(如果有)记录到放置在ERC中的报告中。 该报告包含特定探针的结果,产生结果的可能原因,每个事件的建议解决方案,以及用于生成此事件的探针的链接。
注意:此示例未显示探针的全部结果。
安全最佳实践探针:服务器文档
结果:服务器文档已被分析,并且30%的配置与建议的最佳实践不匹配。
行政科
栏位名称 | 栏位值 | 建议 |
---|---|---|
通过浏览器管理服务器 | 空 | 验证此字段指定一个名称或名称组,并且不包含星号值。 |
可编程性限制部分
栏位名称 | 栏位值 | 建议 |
---|---|---|
本节中的所有字段均根据最佳做法进行配置 |
安全最佳实践探针:服务器配置文档
已分析服务器配置文档,并且5%的配置与建议的最佳实践不匹配。
配置部分
栏位名称 | 栏位值 | 建议 |
---|---|---|
DNS黑名单过滤器 | 残障人士 | 启用后,Domino将检查连接主机是否在指定站点的黑名单中列出。 |
验证DNS中的连接主机名 | 残障人士 | 启用后,Domino将通过执行反向DNS查找来验证连接主机的名称。 |
验证DNS中的发件人域 | 残障人士 | 启用后,Domino将在继续传递处理之前验证发件人的域是否存在。 |
验证Domino目录中是否存在本地域收件人 | 残障人士 | 启用后,Domino将在继续进行传递处理之前验证收件人是有效用户。 |
加密所有传递的邮件 | 残障人士 | 启用后,Domino将把邮件加密为本地邮件文件。 |
安全最佳实践探查:人员文档
在四份“个人”文件中发现了潜在的安全风险。 已向其中的“详细信息”选项卡报告了四个。 31%的配置与建议的最佳实践不匹配。
分析了Domino目录中的八个人文档。 潜在的安全风险数量报告如下。
栏位名称 | 栏位值 | 建议 |
---|---|---|
确认密码 | 不检查密码 | 建议将此字段设置为-检查密码。 |
要求的变更间隔 | 0 | 建议设置密码更改间隔。 |
宽限期 | 0 | 输入用户必须更改过期密码的时间长度(以天为单位)。 |
检查用户ID | 用户ID仍附加在个人文档中。 | 保存此用户标识并将其分离到数据目录中的id文件夹中。 |
在正式审核中发现的最大安全问题之一就是配置转换。 随着时间的流逝,服务器的配置可能会由于各种问题,修复程序和故障排除而发生变化。 归根结底,这可能是一个重大的安全问题。 应该使用变更控制来帮助管理Configuration Shift,但是它并不总是能够捕获Server文档中显示的不需要的变更。 您可以通过创建“安全配置”探针来使用DDM来检测此变化。 “ DDM安全配置”探针将比较一个Domino服务器文档和目标服务器文档,然后报告所有差异和/或差异。 这种类型的安全探针还具有可以配置的“ Specifics”选项卡,使您可以将一个服务器配置与要检测的服务器进行比较,并帮助您识别Configuration Shift。 探测选项包括以下内容(有关示例,请参见图12):
- 哪个服务器应该用作指导服务器?
- 应将哪些服务器设置与准则服务器的设置进行比较? 您有几种选择:
- 目录配置文件注释
- 服务器配置文档中的安全设置
- 服务器文档(所有部分)或单个部分,例如Admins,Program,Web等。
图12.安全配置探针
活动记录
活动记录按人员,数据库和访问协议记录用户活动。 它通常与“活动趋势”结合使用,后者会收集和存储活动统计信息作为当前观察值和历史趋势。 活动统计信息与服务器,数据库,用户以及用户与数据库的连接有关,并使管理员能够跟踪在系统上处于活动状态的用户。 应该每月检查一次数据,并且在过去90天内未处于活动状态的任何用户都应该被锁定在系统之外,该策略有助于防止未使用的帐户被访问。
图13显示了要为我们的实现记录的统计信息,其中对所有服务器代理,HTTP会话,SMTP会话,SMTP邮件,Notes数据库会话,Notes会话和Notes邮件启用了跟踪。
图13.活动日志配置
活动趋势提供信息,例如用户上次访问服务器的时间,您可以用来跟踪不活动的帐户(请参见图14)。 在此案例研究中,监视了60天不活动的帐户。 然后将该帐户锁定了系统30天,并且一旦跟踪到总共90天的不活动状态,便将其删除。
图14.用户活动跟踪
活动趋势还可以在Connections \ By User视图中跟踪用户正在访问哪些数据库。 这可以用来验证用户没有访问不合适的数据库,并且可以与下面讨论的Domino Web服务器日志一起使用,从而提供了更高级别的附加用户活动跟踪。 (HTTP请求的详细信息存储在Domino Web服务器日志数据库中。)
您可以将服务器活动和Web服务器请求记录到Domino Web服务器日志(DOMLOG.NSF)数据库中(请参见图15)。 如果要以不同方式创建视图和查看数据,则此选项是更可取的。 登录数据库比登录文本文件要慢一些,尤其是在繁忙的站点上,并且数据库的大小可能变大,因此维护成为一个问题。 但是,如果使用Domino Web服务器日志,则可以在使用内置功能来分析结果时,像对待其他Notes数据库一样对待此信息。
图15. Domino Web服务器日志示例
DOMLOG.NSF数据库记录所有Domino Web服务器活动,并跟踪有关每个HTTP请求的以下信息:
- 提出要求的日期和时间
- 用户的IP地址(如果在“服务器”文档中启用了DNS查找,则为DNS地址)
- 用户名(如果用户提供了用于访问服务器的名称和密码)
- 服务器返回到浏览器的状态代码,以指示其生成请求的成功或失败
- 从服务器发送到浏览器的信息长度(以字节为单位)
- 用户访问的数据类型,例如text / html或image / gif
- HTTP请求从浏览器发送到服务器
- 用于访问服务器的浏览器类型
- 内部和通用网关接口(CGI)程序错误
- 用户访问以访问此站点上的页面的URL
- 服务器的IP地址或DNS名称
- 处理请求的时间(以毫秒为单位)
- 浏览器发送的Cookies
- 转换的URL(实际服务器资源的完整路径,如果可用)
本案例研究的Domino Web服务器日志已配置为跟踪已访问Web服务器的IP地址。 如果存在不断探测站点的IP地址,则可以在防火墙处将其阻止。 从图15的示例中可以看到,将跟踪传入的IP地址,直到用户进行身份验证为止,之后,将使用该用户的名称跟踪所有会话。 这可以帮助防止拒绝服务攻击。
注意:有些第三方DSAPI筛选器可以自动执行此功能。
用于提供Internet密码管理的DSAPI筛选器还提供了一些可以监视的统计信息。 当由于超出失败登录尝试的阈值而将用户锁定在系统之外时,设置警报,如下所示:
IPWEXT.Login.Failed.Lock = Login attempts with invalid password resulting in account lockout
其他安全注意事项
端口探测是一个过程,涉及扫描服务器上Internet可以访问的所有可用端口。 服务器只能在数量有限的端口上访问。 上面详细介绍了为我们的服务器打开的端口。 黑客进行的端口探测通常是试图在服务器上执行恶意代码或通过查找易受攻击的端口来控制服务器的尝试。
应定期安装操作系统更新和补丁。 我们在案例研究中使用了Linux服务器,因为大多数补丁程序都可以安装而不会影响Domino服务器。 内核的修补程序需要重新启动,而TCP / IP协议的修补程序可能会影响Domino服务器。 应从服务器上删除所有不必要的软件包或软件。 由于Linux服务器上的更新很少影响Domino服务器,因此计划每周进行一次更新。
美国计算机应急准备小组 (USCERT)在操作系统,防火墙,网络或软件中发布了任何新漏洞。 该团队会发出紧急警告报告以及每周报告,应该对其进行审查以最大程度地减少潜在的漏洞。
您应该持续监视整个计算机基础结构。 您还应该每月查看一次Domino Web Server日志,活动趋势,DDM探测结果和USCERT报告,并查看日志以阻止黑客尝试。 如果您发现尝试访问服务器的IP地址范围相同,或者向服务器发送了格式错误的URL,则这些请求应被防火墙或Domino服务器阻止。 连续监视有助于防止未经授权访问Web服务器。
结论
本文研究了建议的特定设置,以使IBM Lotus Domino Web服务器在单服务器环境中更安全。 这些技巧可以帮助确保Domino托管的网站尽可能地安全,同时仍为用户提供高性能,可靠性和易用性。
翻译自: https://www.ibm.com/developerworks/lotus/library/dominowebserver-study/index.html