lotus domino

许多客户将Lotus Domino用于其Intranet或Internet站点。 在这些环境中保护Domino服务器对于确保数据的完整性和网站(尤其是Internet)的可用性非常重要。

在本文中,我们讨论如何使用Domino安全性功能在Web环境中强制实施安全性。 我们从对Domino安全性模型的快速概述开始。 然后,我们研究如何通过Web身份验证,服务器安全性和数据安全性保护Web服务器的安全。 本文假定您是经验丰富的Domino系统管理员。

Domino安全性模型

让我们从对多层Domino安全性模型的简要回顾开始。 (先前的developerWorks:Lotus文章更详细地讨论了Notes / Domino安全,例如,“ Notes / Domino安全概述”。但是,快速的概述将为我们稍后在本文中描述的某些概念奠定基础,尤其是有关Domino Web服务器安全性的问题。)

在Lotus Domino中,可以在几个不同的层中限制用户对数据和/或资源的访问。 在每一层中,都有一个用户授权挑战。 例如,要获得对Domino数据库的访问权,必须授权您访问该数据库所在的Domino服务器。 这些访问层可以分为五个更一般的类别:

  • 服务器访问
  • 数据库访问
  • 查看权限
  • 文件存取
  • 现场访问

以下各节分别介绍了这些组。

服务器访问

服务器访问包括:

  • 网络访问
    网络访问通常由防火墙或路由器控制。 防火墙或路由器可以阻止网络端口,从而限制对Domino服务器的访问。 例如,阻止端口1352的防火墙阻止Notes客户端访问。
  • 用户认证
    用户身份验证可验证用户名和密码是否正确。 这不同于由Domino服务器和Domino数据库执行的用户授权。
  • Domino服务器
    Domino服务器访问在Domino目录的“服务器”文档中定义。 如果用户在拒绝访问列表中列出或未在允许的访问列表中列出,则无法授予该用户对该服务器的访问权限。 在Lotus Domino 5中,“服务器”文档中的服务器访问设置不适用于使用Web浏览器访问服务器的用户。 但是,Lotus Domino 6允许Web用户强制执行服务器许可权(参见图1)。
图1.强制Web用户访问服务器

数据库访问

数据库访问由每个数据库的访问控制列表(ACL)控制。 ACL确定用户是否有权访问数据库以及他们被授予的权限级别。 也可以将角色分配给用户和用户组。 应用程序可以使用这些角色来授予用户更多特定级别的访问权限。 例如,您可以向用户作者授予对Domino目录的访问权限,但可以为他分配“组创建者”角色。 这使用户可以创建组,而无需编辑者访问数据库(参见图2)。

图2. Domino数据库访问控制列表

查看权限

视图访问由视图属性控制。 您可以定义哪些用户可以查看视图; 但是,用户可以访问显示相同文档的其他视图。 通常,视图访问提供用户界面管理,而不是真正的数据安全性(参见图3)。

图3.查看访问控制

文件存取

文档访问由一个或多个“读者”字段控制,这些字段在创建或修改时另存为文档的一部分。 该字段中列出了允许的阅读器,明确命名了可以阅读从表单创建的文档的用户和/或组。 没有读者对文档的访问权,用户将无法在视图或数据库中看到该文档。

现场访问

可以通过修改字段属性来隐藏或限制单个字段(请参见图4)。

图4.字段隐藏属性

请记住,当您使用字段隐藏属性时,可以通过其他机制访问数据项。 在这种情况下,字段隐藏提供了用户界面管理,而不是真正的数据安全性。 同样,可以使用私钥对字段进行加密。 没有密钥的任何用户都无法访问加密的数据。 与为接口管理目的隐藏字段相反,这为字段提供了安全性(请参见图5)。

图5.现场安全性选项

网络安全

现在让我们看一下使用所有五个安全级别的基于Web的示例。 一家定购和运输公司希望用户通过Internet下订单。 为了在DMZ中安全地设置其Domino服务器,他们执行以下操作:

  1. 将Internet访问限制为端口80(HTTP)和443(HTTPS)。
  2. 在检查数据库访问权限之前,要求所有用户向服务器验证身份并验证服务器访问权限。 在用户成功进行身份验证之前,不允许用户读取服务器上的任何网页。
  3. 通过将“允许HTTP客户端浏览数据库”设置为“否”来禁用服务器浏览。
  4. 修改应用程序数据库上的ACL,以仅向用户授予作者访问权限。 这使他们可以创建新订单并查看其过去的订单。
  5. 限制视图访问。 数据库中有几个视图,但是用户只能使用目录视图和订单视图。
  6. 添加一个计算的“读者”字段,该字段列出下订单的用户。 订单表单包含几个专用字段,仅供运输公司用来跟踪订单。 这些字段是使用隐藏/何时公式创建的,以对下订单的用户隐藏。

现在,我们已经对Domino安全性进行了概述,下面我们来讨论覆盖这种多层方法的安全性问题。 可从Internet访问的Web服务器容易受到潜在威胁。 这些威胁特定于可通过Internet访问的服务器的性质。 因此,应解决三个主要的安全主题:

  • Web认证
  • 服务器安全性
  • 数据安全

现在,我们将注意力转向这些主题,相关的威胁以及如何消除威胁。

Web认证

Web身份验证是用户向Web服务器标识自己的过程。 这通常是通过用户名和密码对话框提示。 假设您建立了一个网站,并强迫所有用户进行身份验证。 黑客确定了一个用户名,并不断使用各种密码访问您的网站,直到找到正确的密码,从而获得对您网站的访问权限。 这称为字典攻击。 防止此类攻击的最佳方法是强制执行使密码难以猜测的策略。 密码策略应包括安全措施,例如密码尝试失败后的帐户锁定,最小密码长度或“强度”,密码老化以及密码历史记录。 例如,您的密码策略可能类似于以下内容:

  • 密码尝试失败三次后,该帐户将被锁定15分钟。 这使得难以使用登录例程快速循环浏览数百个不同的密码,直到输入正确的密码为止。
  • 密码的最小长度为八个字符。
  • 密码必须包含数字和符号。
  • 密码必须每60天更改一次。
  • 用户不能使用他或她先前的10个密码之一。

尽管Lotus Domino 7提供了在指定的时间长度后强制执行Internet密码更改的功能,但是Lotus Domino并未提供具有Web身份验证功能的密码策略功能。 在当前版本的Lotus Domino中,可以通过定制登录表单来执行密码更改。 Lotus Domino 7还允许您锁定用户帐户并在下次认证时强制更改密码。

要实施更强大的Internet密码策略,您可以开发自定义身份验证DSAPI过滤器,也可以针对LDAP目录进行身份验证。 大多数LDAP目录都提供了实施适当的密码策略的功能。

认证类型

身份验证分为三种,每种都有自己独特的安全性考虑。 基本身份验证是简单的用户名和密码身份验证。 提示用户输入用户名和密码。 还有基于表单或基于令牌的密码。 提示用户输入用户名和密码,并提供会话cookie或会话标题。 然后,此cookie或标头将传递到该系统(有时是其他几个系统),并且不再提示用户进行身份验证。 此会话cookie或标头被赋予超时值。 超过超时值后,将再次提示用户输入用户名和密码。 如果令牌生成机制或标头生成机制很容易被伪造,则可能导致一些安全问题。 黑客所需要做的就是传递正确的令牌或标头,并且不会要求黑客进行身份验证。

第三种身份验证机制是基于证书的。 这可以通过用户向网站提供x.509证书来完成。 该证书是特定于该个人的,并且不要求用户进行身份验证。 如果用户丢失证书或证书被盗,则黑客可以访问此信息而无需进行身份验证。 可以使用x.509证书接受用户名,但仍提示用户输入PIN或密码。

Domino服务器可以允许Web用户使用用户名的许多变体进行身份验证。 Domino Server文档中有一个设置,用于控制可用于标识身份验证用户的信息。 默认设置为“更少的名称变体和更高的安全性”。 此设置允许用户使用以下任意项进行身份验证:完整的层次结构名称,通用名称,“个人”文档的用户名字段中的任何别名,Internet地址和uid(请参见图6)。

图6.使用更少名称和更高安全性的Internet认证

另一个设置是“更多名称变体而安全性较低”。 此设置允许用户使用以下身份验证:仅姓氏,仅名字,短名,通用名,完整的层次结构名称,用户名字段中的任何别名,Internet地址和uid。

用户针对Web服务器进行身份验证的方式数量直接影响安全性。 允许的名称变体越多,则该网站越容易受到字典攻击。 例如,如果姓氏是有效的用户名,则在一家大公司中,找到“史密斯”或“亚当斯”会相当容易。 黑客可以轻松地尝试使用任意数量的常用姓氏来访问该站点。

可以进一步限制允许的用户名。 通过将NABWebLookupView参数添加到服务器的Notes.ini文件,可以限制使用哪个视图来标识用户。 例如,您可以在Domino目录中创建一个按全名排序的名为($ web)的自定义视图。 然后,可以在Notes.ini中设置NABWebLookupView =($ web)参数并重新启动HTTP任务。 启动任务后,只能通过全名访问该网站。 通过修改身份验证过滤器以仅列出允许的LDAP字段名称,LDAP服务器可以实现类似的功能。 默认的LDAP认证过滤器是(|(cn =%*)(|(&(sn =%a)(givenname =%z))(&&(sn =%z)(givenname =%a)))))。 该过滤器通常转换为全名身份验证(例如John Doe)。

Web服务器安全

安全性的重要方面是服务器的物理位置。 服务器应存放在安全的房间内。 该房间应限制使用电子胸卡控制的出入权限。 电子徽章有两个目的:提供一种实际锁定和解锁门的方法,并跟踪谁进入房间以及何时进入房间。 如果允许未授权用户对服务器进行物理访问,则有可能使他获得安全数据或对服务器造成严重破坏。 ISO 17799(或BS 7799)是详细的安全标准。 它分为十个主要部分; 这些部分之一是关于物理安全性的。

还应保护服务器免受网络访问。 这与物理访问一样重要。 服务器应位于能够阻止端口的防火墙或路由器后面。 服务器只能从Internet访问端口80和443。 内部用户只能在端口80 HTTP,443 HTTPS和1352 NRPC上访问服务器。 您可能还需要在基于Unix的系统上为SSH打开端口22,而对于Windows终端服务需要打开端口3389。 但是,不建议您打开这些端口。 而是直接在服务器上执行管理任务。 这两个协议都是加密的,并使用操作系统的身份验证方法。 这样可以防止大多数直接在操作系统上发生的攻击。 通过限制端口访问,它可以阻止对所有其他服务(例如文件共享)和FTP的攻击。

现在我们已经保护了服务器的安全,我们应该讨论服务器在网络拓扑中的放置。 可以将外部Web服务器放置在Extranet或DMZ中。 服务器的位置取决于服务器是否需要访问内部服务器以复制数据或验证用户身份。 为了获得最大的安全性,只能将服务器放在Extranet上。 如果黑客获得对服务器的访问权限,则他们将无法访问任何内部服务器。 如果服务器需要访问内部数据并可以从Internet访问,则建议将服务器放置在内部网络上,并使用反向代理。 反向代理保护服务器免受病毒攻击和大多数黑客攻击,因为反向代理服务器是唯一可以从Internet访问的服务器。 同样,使用反向代理可以使解决方案具有可扩展性和容错性。

操作系统应不断更新。 管理员应监视已发布的安全补丁程序以及它们是否适用于他们的系统。 安全修补程序的重要方面是,取决于操作系统,可能需要安排停机时间。 建议您每周有一次停机时间来应用安全补丁。 在Windows服务器上,此维护窗口是必需的,但是您可以在Domino服务器运行时将修补程序应用于大多数基于Unix的操作系统。 服务器运行时,唯一无法应用的补丁是更新内核或TCP / IP堆栈的补丁。 这些补丁需要重新启动Unix操作系统。

该服务器应包含操作系统和Domino病毒扫描功能。 这样可以确保发送或接收的所有电子邮件均不包含病毒。 服务器上存储的所有文件都不会包含病毒; 并且Domino数据库中存储的所有附件都不会包含病毒。 这非常重要,因为病毒可能具有破坏性,限制服务器的可用性并引起隐私问题。

数据安全

现在,我们已经保护了操作系统和服务器的安全,我们可以讨论保护Domino服务器上的数据库的安全了。 必须为具有适当访问权限的数据库设置ACL,这一点很重要。 应该列出管理员的管理员权限,所有用户都应具有编辑者权限或更低的权限。 下表显示了对可用数据库的访问级别。

访问权限 允许用户
经理 修改数据库ACL。
加密数据库。
修改复制设置。
删除数据库。
执行较低访问级别所允许的所有任务。
设计师 修改所有数据库设计元素。
创建全文搜索索引。
执行较低访问级别所允许的所有任务。
编辑 创建文件。
编辑所有文档,包括其他人创建的文档。
除非表单中没有“读者”字段,否则请阅读所有文档。 如果“读者”字段中未列出编辑器,则具有编辑器ACL访问权限的用户无法读取或编辑文档。
作者 如果用户或服务器还具有“创建文档”访问级别特权,则创建文档。 将作者访问权限分配给用户或服务器时,还必须指定“创建文档访问级别”特权。
编辑文档中有“作者”字段并且在“作者”字段中指定了用户的文档。
除非表单中没有“读者”字段,否则请阅读所有文档。
读者 阅读文档,该文档的格式中包含一个“读者”字段,并且在该字段中指定了用户名。
储户 创建文档,但是除了“读取公共文档”和“写入公共文档”的选项外,其他用户无权访问。 这些是设计师可以选择授予的特权。
不可访问 除了“读取公共文档”和“写入公共文档”的选项外,无权访问。 这些是设计师可以选择授予的特权。

也可以限制对系统数据库的访问。 您可以启用“不要打开URL”数据库属性(请参见图7)。 这样可以防止从Web打开数据库。 这是Lotus Domino 6中引入的功能。如果在Domino目录中启用了此功能,则用户仍可以进行身份​​验证。 当服务器上的注册用户需要对服务器的其他用户保持匿名时,这非常有用。

图7.不允许URL打开数据库属性

您还应该删除webadmin.ntf和webadmin.nsf数据库。 这消除了未经授权的Web管理访问的风险。 由卡尔·克里格(Carl Kriger)撰写的题为“构建安全的Domino Web应用程序:如何避免8个导致应用程序广泛打开的开发陷阱”的文章详细描述了数据库开发的最佳做法,该观点在2000年7月/八月出版。安全的Domino Web应用程序。

安全套接字层(SSL)

我们已经安全地访问了数据,但是当授予用户访问数据的权限,并且当数据包通过Internet发送时,黑客可以访问这些数据包时会发生什么? 为了解决这种可能性,重要的是通过安全套接字层(SSL)强制所有通信。 SSL是一种加密与最终用户和Web服务器之间的网络通信的协议。 这样可以进行安全的加密Web浏览,确保对用户和服务器之间发送的所有数据进行加密,从而防止黑客在传输过程中访问信息。

使用Lotus Domino,您可以创建自己的SSL证书,也可以购买第三方证书。 大多数第三方证书都附带保证密钥不会被破坏的权利,如果密钥被破坏,则要支付罚款。 SSL可能会对性能产生一定的影响,因为往返于服务器的每个数据都必须解密。 对于高流量的网站,应使用SSL加速卡或设备。

其他数据安全问题

应该监视服务器的黑客攻击企图。 配置事件监视并启用更改数据库ACL时生成的警告。 这将在进行更改时通知您,并且您应确认更改已得到授权和计划。 此外,启用Domino Web服务器日志。 这将跟踪对服务器的每个GET和POST请求。 记录记录输入的IP,请求的URL和引用URL。 还应监视服务器的CPU和内存使用率是否过高。 这可能表示拒绝服务类型的攻击或过度使用的Web服务器。

拒绝服务攻击既是安全威胁,也是稳定性威胁。 它们直接影响Web服务器的性能,因为过多的流量可能导致服务器崩溃。 有第三方产品可用于防止Domino Web服务器上的拒绝服务类型的攻击。 这些第三方产品记录访问服务器的每个IP。 如果特定IP反复生成失败的登录尝试,则服务器将停止处理该IP的HTTP请求。 这些产品中的大多数都允许在指定的时间段后对服务器进行IP访问。 阻止处理特定IP的HTTP请求可以防止暴力密码攻击。 如果IP尝试访问帐户并多次登录失败,则该用户IP将在服务器上被阻止。 这是保护密码安全的有效方法。

漏洞扫描有助于识别操作系统或Lotus Domino配置中的任何潜在安全漏洞。 如果服务器CPU和内存似乎运行得过高,则应检查Domino Web日志中是否存在拒绝服务类型的攻击。

结论

在本文中,我们概述了Domino安全性模型和一些特定设置,以使Domino Web服务器在单服务器环境中更加安全。 这些技巧将帮助确保Domino托管的网站尽可能地安全,同时仍为用户提供高性能,可靠性和易用性。


翻译自: https://www.ibm.com/developerworks/lotus/library/dominowebserver-security/index.html

lotus domino

lotus domino_保护Lotus Domino Web服务器相关推荐

  1. lotus domino_保护IBM Lotus Domino Web服务器的安全:案例研究

    lotus domino 许多客户在其Intranet或Internet网站中使用IBM Lotus Domino. 在这些环境中保护Domino服务器对于确保数据的完整性和网站(尤其是Interne ...

  2. 使用ISA Server保护内部的web服务器

    使用ISA Server保护内部的web服务器 河北  王春海 现在许多网站经常遭受***:有的主页被改,有的网站所在的服务器被***:被添加管理员帐户.系统被植入***或***程序等.造成网站以及网 ...

  3. 保护你的Web服务器 iptables防火墙脚本全解读

    本文假设你已经对iptables有基本的了解,否则请先阅读iptables入门. 在我们的Web服务器上,系统的默认策略是INPUT为DROP,OUTPUT:FORWARD链为ACCEPT,DROP则 ...

  4. Forbidden Attack:7万台web服务器陷入被攻击的险境

    一些受VISA HTTPS保护的站点,因为存在漏洞容易受到Forbidden攻击,有将近70,000台服务器处于危险之中. 一种被称为"Forbidden攻击"的新攻击技术揭露许多 ...

  5. Forbidden Attack:7万台web服务器陷入被攻击的险境 1

    2019独角兽企业重金招聘Python工程师标准>>> 一些受VISA HTTPS保护的站点,因为存在漏洞容易受到Forbidden攻击,有将近70,000台服务器处于危险之中. 一 ...

  6. web 服务器安全维护,Web服务器安全攻击及防护机制详解

    Web安全分为两大类: · Web服务器的安全性(Web服务器本身安全和软件配置). · Web应用程序的安全性(在Web服务器上运行的Java. ActiveX.PHP.ASP代码的安全). Web ...

  7. 构建安全的apache+mysql+php的web服务器

    原贴:http://blog.chinaunix.net/u/13329/showart.php?id=99256 构建安全的apache+mysql+php的web服务器     * 作者:heiy ...

  8. php lotus notes,Lotus Notes 和 Domino Web Access 的比较

    Domino 邮件服务器为终端用户提供了很多灵活性,它们可以使用 Domino Web Access 或 Lotus Notes 客户机来连接自己的邮件.Domino Web Access 提供了一个 ...

  9. Lotus的JAVA与DOMINO通过LDAP集成方法

    Lotus的JAVA与DOMINO通过LDAP集成方法! JAVA, DOMINO, Lotus, LDAP 摘要:LDAP是标准轻量目录访问协议(Lightweight Directory Acce ...

最新文章

  1. 【Git学习笔记6】把当前工作现场“储藏”起来:stash操作
  2. 月入10万和月入5千的人关键区别是什么???
  3. 原创:MD5 32位加密软件
  4. javaScript学习笔记总结(一)
  5. (多线程)leetcode1114. 按序打印 认识AtomicInteger
  6. LeetCode 461. 汉明距离(异或^ 与)
  7. Docker 操作手册
  8. python中字典的索引_按索引访问Python字典的元素
  9. 为什么工具监测不出内存泄漏
  10. IIS+PHP本地开发环境配置
  11. python-网易云音乐搜索下载脚本
  12. RedHat8.4系统安装docker
  13. com.google.inject.ProvisionException: Guice provision errors问题解决
  14. win10系统更新后文件丢失的解决办法
  15. 名门正派的设计,与歪门邪道的产品
  16. GDOI2021赛后总结高一赛季总结
  17. 《UE4游戏开发》之 《画质控制》
  18. 至强服务器性能视频,至强E5 V4性能表现测试
  19. 推荐三款换装变脸软件给你
  20. 织梦cms模板下载:响应式机械螺丝设备网站模板

热门文章

  1. [全程建模]响应张恂之《青润,你的胡扯还不够吗?》第三篇及一个腾讯的岗位需求...
  2. php获取商品订单号,php根据订单号 跟踪物流
  3. 企业视频会议表决系统介绍
  4. 2020年数据中心IDC深度报告
  5. 天翼云 Java对接OBS对象存储
  6. 奇门排盘.net实现代码(C#)原创
  7. NXP(I.MX6uLL)DDR3实验——DDR发展历史
  8. android vlc 中文字幕,解决Android版vlc中文乱码问题
  9. python 网络教育-百度传课[9_百度传课客户端下载-百度传课appv4.4.6.9 安卓版 - 极光下载站...
  10. 2020研究生数学建模大赛F题思路代码实现