Sun ONE 徽标     上一章      目录      索引      下一章     
Sun ONE Directory Server 5.2 安装和调整指南



第 5 章   调整操作系统

默认的系统和网络设置不适合于高性能的目录服务。为达到最佳的 Directory Server 性能而对系统进行的调整至少包括检查建议的最新增补程序是否安装在系统上、强制实施基本的安全措施,以及更改某些系统和网络设置。本章将讨论这些调整问题。

产品中提供的 idsktune 公用程序(Solaris 封装版本中的 /usr/sbin/directoryserver idsktune)可能会有助于诊断基本的系统配置缺点。为获得高性能的目录服务支持,该公用程序提供了系统调整建议。该公用程序不实际实施所提出的任何建议。调整建议应由合格的系统管理员实施。

检查平台支持

表 1-1 指定了此版本支持的平台以及相关硬件体系结构。请参阅产品发行说明,以获得受支持的平台的更新列表。

安装 Windows 系统时,应指定计算机是独立的服务器,而不是任何现有域或工作组的成员,以减小对网络安全性服务的依赖。

安装系统增补程序

为了保持系统整体安全性,并确保 Sun ONE Directory Server 5.2 的正确安装和操作,应安装最新推荐的系统增补程序、Service Pack 或修补程序。表 5-1 提供了所需增补程序的位置。

表 5-1    获取增补程序的位置(针对不同平台) 

平台

浏览...

Sun Solaris™ 操作环境

http://sunsolve.sun.com/

Hewlett Packard HP-UX

http://www.hp.com/support/

IBM AIX

http://www.ibm.com/support/

Microsoft Windows

http://support.microsoft.com/

Red Hat Linux

http://www.redhat.com/

强制实施基本的安全措施

本节提出的建议并不能消除所有风险。相反,它们只作为简短的核对清单,以帮助您限制某些最显而易见的安全风险。

隔离系统

如果有可能,应使用网络防火墙将运行 Directory Server 的系统与公用 Internet 隔离开。当在必须防止基于 IP 攻击的 Windows 平台上运行 Directory Server 时,隔离系统尤为重要。

不进行双重引导

不要在运行 Directory Server 的系统上进行双引导或运行其他操作系统。其他系统可能允许访问可被限制的文件。

强口令

使用超级用户或管理员口令至少应有 8 个字符长,包括标点符号或其他非字母字符。在 Windows 平台上运行 Directory Server 时,使用强口令尤为重要。

如果选择使用较长的操作系统口令,则可能需要配置系统处理口令的方式。有关说明,请参阅操作系统文档。

(Windows) 本地安全策略

对 Windows 服务器实施本地安全策略,以便在登录尝试失败后将用户锁定。激活和配置事件日志记录,以管理部署的适当大小的日志。还要激活审核日志记录以进行登录尝试。应考虑重命名管理员帐户,使其难以猜测。

详细信息,请参阅 Windows 帮助。

(UNIX 平台)用户和组

出于安全方面的考虑,建议不要以超级用户特权运行 Directory Server 或 Administration Server。例如,可以创建一个没有登录权限的用户和组,然后以此用户和组的身份来安装和运行服务器。如果您将用户和组添加到本地文件,则 /etc/passwd 条目为,例如:

server:x:61001:Server User:/dev/null:/dev/null

对应的 /etc/group 条目为,例如:

servers::61001:

为便于调试,可以在 Solaris 系统上使用诸如 coreadm(1M) 的公用程序,选择允许以此用户和组身份运行的进程转储核心。

如果特定的部署要求与诸如消息服务器的其他服务器共享 Directory Server 文件,则应考虑使用同一用户和组运行这些服务器。

如果必须作为超级用户运行 Administration Server,则应考虑停止不使用的服务。

禁用不必要的服务

为获得最佳性能并减少风险,应将系统专用于 Directory Server。运行其他服务(特别是网络服务)会对服务器性能和可伸缩性造成负面影响,而且可能增加安全风险。

应尽可能多地禁用网络服务。Directory Server 只使用 TCP/IP,而不需要文件共享和其他服务。应禁用一些服务,例如 IP 路由、Mail、NetBIOS、NFS、RAS、Web 发布,以及 Windows 网络客户服务。特别是在 Windows 上,应该停止和禁用除下面服务之外的所有服务:事件日志、即插即用、受保护存储、安全帐户管理器、Sun ONE Administration Server、Sun ONE Directory Server、远程过程调用 (RPC) 和 SNMP。应考虑禁用 telnetftp

与许多网络服务一样,telnetftp 会带来安全风险。这两种服务尤其危险,因为它们在网络上以明文传输用户口令。通过使用诸如 Secure Shell (ssh) 和 Secure FTP (sftp) 之类的客户机,可以避免使用 telnetftp

如果 Directory Server 实例本身不为网络提供命名服务,则应考虑启用系统的命名服务。诸如 Sun ONE Server Console 的远程管理工具需要命名服务才能完成某些操作,如 IP 地址和主机名之间的转换。

有关禁用网络服务的详细信息,请参阅操作系统文档。

保持准确时间

确保系统时钟合理地与其他系统的系统时钟保持同步,以便于系统之间的日志文件中的日期和时间戳复制和相互关联。考虑使用网络时间协议 (NTP) 客户机来设置正确的系统时间,特别是在 Windows 系统上。

在系统故障之后重新启动

如果可能,请按 Sun ONE Directory Server 管理指南 中所述停止 Directory Server。如果在系统关机期间突然停止,而不是正确地关闭,则数据库损坏可能会导致 Directory Server 启动缓慢。恢复数据库可能需要一些时间。.

(Solaris 软件包) 作为安装和配置过程的组成部分,可以使用适当的脚本在启动时间进行重新启动。

(Windows) 配置 Windows 以使其在系统故障之后自动重新启动。详细信息,请参阅 Windows 帮助。

对于其他平台,请参阅操作系统文档以了解有关在启动时间启动服务的详细信息。

生成基本的调整建议

使用 idsktune 公用程序 /usr/sbin/directoryserver idsktune(对于 Solaris 封装版本)或 idsktune(对于包含产品二进制文件的目录中存在的其他版本)在 Windows 之外的平台上生成基本的调整建议。

在以超级用户身份运行公用程序时,它会搜集有关系统的信息。显示通知、警告和错误,并提出建议的纠正措施。例如,公用程序检查:

  • 此版本是否支持操作系统和内核版本。
  • 可用内存和磁盘空间是否满足通常用途的最低要求。
  • 系统资源限制是否满足通常用途的最低要求。
  • 是否安装了所需的增补程序或 Service Pack。


  • 注意

    在计划用于生产目的的系统上安装 Directory Server 软件之前,至少应修复所有 ERROR 状况。



个别的部署要求可能会超出最低要求。可选择提供的资源比 idsktune 公用程序识别为最低系统要求的资源更多。

有关该公用程序的详细信息,请参阅 Sun ONE Directory Server Resource Kit 文档。可以按“下载 Directory Server 工具”中所述获得 Sun ONE Directory Server Resource Kit。

调整系统设置

可以使用 idsktune 工具读取当前系统设置,并提供更改建议。总的来说,实施这些建议可以优化专门运行 Directory Server 的系统以及运行其他应用程序的系统的性能。

在实施特定的建议之前,应考虑本地网络情况和其他应用程序。有关其他网络调整的技巧,请参阅操作系统文档。

表 5-2    在部署之前要检查的配置文件 

平台

文件

注释

Solaris 操作环境

/etc/init.d/inetinit

添加 ndd 语句以进行调整

/etc/system

检查系统限制

/etc/vfstab

确保文件是本地文件

HP-UX

/etc/rc.config.d/nddconf

添加 ndd 语句以进行调整

也可以使用 sam(1M)。

Red Hat Linux

/etc/fstab

确保文件是本地文件

/etc/security/limits.conf

添加 nofile 硬限制指令

/etc/sysctl.conf

检查,设置内核参数

/proc/sys/fs/file-max

检查文件描述符限制

(Windows) 延缓进程调用

在多处理器系统中,Windows 默认的延缓进程调用 (DPC) 处理(用于处理传入网络通信的延期中断请求)可能会对性能产生负面影响。实际上,变成 DPC 的延期中断可能会从一个处理器重新调度到另一个处理器,从而产生大量的开销。为避免这些 DPC 开销问题,应将下列注册表项下的 ProcessorAffinityMask 的值设置为 0

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NDIS\Parameters

文件描述符

Directory Server 在处理并发客户机连接时使用文件描述符。如果将系统中可用的或某个进程可用的文件描述符的最大数量设置为比较低的值,则可以限制并发连接的数量。因此,有关文件描述符数量的建议涉及 Directory Server 能够在系统上处理的并发连接的数量。

在 Solaris 系统上,如 /usr/sbin/directoryserver idsktune(封装版本)或 idsktune(无软件包)的输出中所述,可用的文件描述符的数量可以使用 rlim_fd_max 参数进行配置。有关修改可用的文件描述符数量的进一步说明,请参阅操作系统文档。

修改了系统上的可用文件描述符的最大数量之后,请参阅表 9-2 以了解有关配置 Directory Server 以使用可用的文件描述符的信息。

(HP-UX) 大文件支持

在某些 HP-UX 系统上,默认情况下不支持大文件。有关在计划安装 Directory Server 的文件系统上启用大文件支持的说明,请参阅 HP-UX 产品文档。idsktune 公用程序的输出中也提供了有关说明。

(HP-UX) 线程挂起超时

正如 idsktune 公用程序所指出的,在某些 HP-UX 系统上,挂起超时的最大线程数可能设置不当。有关增大挂起超时的最大线程数的说明,请参阅 HP-UX 文档。idsktune 公用程序的输出中也提供了有关说明。

(HP-UX) 每个进程的线程数

正如 idsktune 公用程序所指出的,在某些 HP-UX 系统上,每个进程的最大线程数可能太低。有关增大每个进程的最大线程数的说明,请参阅 HP-UX 文档。idsktune 公用程序的输出中也提供了有关说明。

传输控制协议 (TCP) 设置

特定网络设置取决于平台。在某些系统上,可以通过修改 TCP 设置来提高 Directory Server 性能。本节讨论了 idsktune 有关 TCP 设置的建议背后的推理。

TIME-WAIT 状态中已关闭的连接

某些系统允许配置 TCP 连接在关闭后可保留在内核表中的时间长度。在保持连接期间,仍可以再次将其快速打开。当设置得太高时,系统可能会在比较长的时间间隔内跟踪内核表中的大量连接,从而减少 Directory Server 可用的连接数量。对于大多数部署,将此参数设置为 30 秒(30,000 毫秒)以允许 Directory Server 有更多的并发连接。

在 Solaris 系统上,如 /usr/sbin/directoryserver idsktune(封装版本)或 idsktune(无软件包)的输出中所描述的,此时间间隔可以使用 tcp_time_wait_interval 参数进行配置。

连接挂起接受

某些系统允许配置 TCP 监听程序(例如,Directory Server)接受挂起的 TCP 连接的数量。当设置得太低时,会限制 Directory Server 可以接受的挂起连接的数量。对于大多数部署,将此参数至少设置为 1024,以允许 Directory Server 处理更多的并发连接请求。

在 Solaris 系统上,如 /usr/sbin/directoryserver idsktune(封装版本)或 idsktune(无软件包)的输出中所描述的,所允许的挂起的连接数量可以使用 tcp_conn_req_max_q 参数进行配置。考虑将 tcp_conn_req_max_q0 增加到 2048。

延迟确认

对于未直接连接到系统的主机,某些系统允许配置延迟 TCP 确认的时间长度。不直接配置延迟时间,而如表 9-2 中描述的位于 cn=confignsslapd-nagle 设置为 off

不活动的连接

某些系统允许配置“保持连接”的数据包传输之间的时间间隔。此设置可确定当 TCP 连接处于不活动且潜在为断开的状态下保持该连接的时间长度。当设置得太高时,“保持连接”时间间隔可能会导致系统使用不必要的资源来为客户机保持连接,而此时客户机却已经断开了连接。对于大多数部署,将此参数设置为 600 秒(600,000 毫秒 = 10 分钟)以允许 Directory Server 有更多的并发连接。

在 Solaris 系统上,如 /usr/sbin/directoryserver idsktune(封装版本)或 idsktune(无软件包)的输出中所描述的,此时间间隔可以使用 tcp_keepalive_interval 参数进行配置。

传入连接

某些系统允许配置系统等待传入连接不发送确认的时间长度。当设置得太高时,这可能会导致在检测连接故障时出现长时间的延迟。对于快速而可靠的网络上的内部网部署,将此参数设置为 600 秒(600,000 毫秒 = 10 分钟)可能会提高性能。

在 Solaris 系统上,如 /usr/sbin/directoryserver idsktune(封装版本)或 idsktune(无软件包)的输出中所描述的,此时间间隔可以使用 tcp_ip_abort_interval 参数进行配置。

传出连接

某些系统允许配置系统等待建立传出连接的时间长度。当设置得太高时,与目标服务器(例如不能快速响应的副本)建立传出连接会产生长时间的延迟。对于快速而可靠的网络上的内部网部署,将此参数设置为 10 秒可能会提高性能。

在 Solaris 系统上,如 /usr/sbin/directoryserver idsktune(封装版本)或 idsktune(无软件包)的输出中所描述的,此时间间隔可以使用 tcp_ip_abort_cinterval 参数进行配置。

重新传输超时

某些系统允许配置重新传输数据包之间的初始时间间隔。此设置会影响重新传输未确认的数据包之前的等待时间。当设置得太高时,客户机可能会持续等待已丢失的数据包。对于快速而可靠的网络上的内部网部署,将此参数设置为 500 毫秒可能会提高性能。

在 Solaris 系统上,如 /usr/sbin/directoryserver idsktune(封装版本)或 idsktune(无软件包)的输出中所描述的,此时间间隔可以使用 tcp_rexmit_interval_initial 参数进行配置。

Windows 能够实现 Van Jacobson TCP 快速重新传输和恢复算法,以便在接收到 ACK 时快速重新传输缺少的段,而不必等待重新传输计时器到期。若要实现 Van Jacobson 算法,则请编辑注册表项:

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters

添加类型为 REG_DWORDTcpMaxDupAcks。将该值设置为 ACK 的数量。范围为 1-3,默认值为 2。

序列号

某些系统允许配置系统处理初始序列号生成的方式。对于外联网和 Internet 部署,设置此参数以确保基于 RFC 1948 生成初始序列号以防止序列号攻击。

在 Solaris 系统上,如 /usr/sbin/directoryserver idsktune(封装版本)或 idsktune(无软件包)的输出中所描述的,此行为可以使用 tcp_strong_iss 参数进行配置。


上一章      目录      索引      下一章     
版权所有 2003 Sun Microsystems, Inc. 保留所有权利。