JavaScript is required to for searching.
跳过导航链接
退出打印视图
系统管理指南:安全性服务     Oracle Solaris 10 8/11 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

第 1 部分安全性概述

1.  安全性服务(概述)

第 2 部分系统、文件和设备安全性

2.  管理计算机安全性(概述)

3.  控制对系统的访问(任务)

控制系统访问(任务列表)

保证登录和口令的安全(任务列表)

保证登录和口令的安全

如何显示用户的登录状态

如何显示没有口令的用户

如何临时禁止用户登录

如何监视失败的登录尝试

如何监视所有失败的登录尝试

如何创建拨号口令

如何临时禁止拨号登录

更改口令算法(任务列表)

更改口令加密的缺省算法

如何指定口令加密的算法

如何为 NIS 域指定新的口令算法

如何为 NIS+ 域指定新的口令算法

如何为 LDAP 域指定新的口令算法

如何安装第三方的口令加密模块

监视和限制超级用户(任务列表)

监视和限制超级用户

如何监视正在使用 su 命令的用户

如何限制和监视超级用户登录

SPARC: 控制对系统硬件的访问(任务列表)

控制对系统硬件的访问

如何要求提供用于访问硬件的口令

如何禁用系统的异常中止序列

4.  控制对设备的访问(任务)

5.  使用基本审计报告工具(任务)

6.  控制对文件的访问(任务)

7.  使用自动安全性增强工具(任务)

第 3 部分角色、权限配置文件和特权

8.  使用角色和特权(概述)

9.  使用基于角色的访问控制(任务)

10.  基于角色的访问控制(参考)

11.  特权(任务)

12.  特权(参考)

第 4 部分加密服务

13.  Oracle Solaris 加密框架(概述)

14.  Oracle Solaris 加密框架(任务)

15.  Oracle Solaris 密钥管理框架

第 5 部分验证服务和安全通信

16.  使用验证服务(任务)

17.  使用 PAM

18.  使用 SASL

19.  使用 Oracle Solaris 安全 Shell(任务)

20.  Oracle Solaris 安全 Shell(参考)

第 6 部分Kerberos 服务

21.  Kerberos 服务介绍

22.  规划 Kerberos 服务

23.  配置 Kerberos 服务(任务)

24.  Kerberos 错误消息和故障排除

25.  管理 Kerberos 主体和策略(任务)

26.  使用 Kerberos 应用程序(任务)

27.  Kerberos 服务(参考)

第 7 部分Oracle Solaris 审计

28.  Oracle Solaris 审计(概述)

29.  规划 Oracle Solaris 审计

30.  管理 Oracle Solaris 审计(任务)

31.  Oracle Solaris 审计(参考)

词汇表

索引

保证登录和口令的安全

您可以限制远程登录和要求用户具有口令,也可以监视失败的访问尝试以及临时禁止登录。

如何显示用户的登录状态

  1. 承担 Primary Administrator(主管理员)角色,或成为超级用户。

    Primary Administrator(主管理员)角色拥有 Primary Administrator(主管理员)配置文件。要创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 "使用 Solaris Management Console(任务)"

  2. 使用 logins 命令显示用户的登录状态。
    # logins -x -l username
    -x

    显示一组扩展的登录状态信息。

    -l username

    显示指定用户的登录状态。变量 username 是用户的登录名称。必须以逗号分隔的列表形式指定多个登录名称。

    logins 命令使用相应的口令数据库来获取用户的登录状态。该数据库可以是本地 /etc/passwd 文件,也可以是命名服务的口令数据库。有关更多信息,请参见 logins(1M) 手册页。

示例 3-1 显示用户的登录状态

在以下示例中,显示了用户 rimmer 的登录状态。

# logins -x -l rimmer
rimmer       500     staff           10   Annalee J. Rimmer
                     /export/home/rimmer
                     /bin/sh
                     PS 010103 10 7 -1
rimmer

标识用户的登录名称。

500

标识用户 ID (user ID, UID)。

staff

标识用户的主组。

10

标识组 ID (group ID, GID)。

Annalee J. Rimmer

标识注释。

/export/home/rimmer

标识用户的起始目录。

/bin/sh

标识登录 shell。

PS 010170 10 7 -1

指定口令生命期信息:

  • 上次更改口令的日期

  • 两次更改之间要求的天数

  • 在该天数后必须更改

  • 警告期

如何显示没有口令的用户

  1. 承担 Primary Administrator(主管理员)角色,或成为超级用户。

    Primary Administrator(主管理员)角色拥有 Primary Administrator(主管理员)配置文件。要创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 "使用 Solaris Management Console(任务)"

  2. 使用 logins 命令显示所有没有口令的用户。
    # logins -p

    -p 选项用于显示没有口令的用户列表。除非启用了命名服务,否则 logins 命令将使用本地系统的口令数据库。

示例 3-2 显示没有口令的用户

在以下示例中,用户 pmorph 没有口令。

# logins -p
pmorph          501     other           1       Polly Morph
# 

如何临时禁止用户登录

在系统关闭或例行维护期间,可临时禁止用户登录。超级用户登录将不受影响。有关更多信息,请参见 nologin(4) 手册页。

  1. 承担 Primary Administrator(主管理员)角色,或成为超级用户。

    Primary Administrator(主管理员)角色拥有 Primary Administrator(主管理员)配置文件。要创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 "使用 Solaris Management Console(任务)"

  2. 在文本编辑器中创建 /etc/nologin 文件。
    # vi /etc/nologin
  3. 添加有关系统可用性的消息。
  4. 关闭并保存该文件。

示例 3-3 禁止用户登录

在此示例中,用户将收到系统不可用的通知。

# vi /etc/nologin
(Add system message here)
 
# cat /etc/nologin 
***No logins permitted.***

***The system will be unavailable until 12 noon.***

您也可以将系统引导至运行级 0(单用户模式)以禁止登录。有关将系统引导至单用户模式的信息,请参见《系统管理指南:基本管理》中的第 10  章 "关闭系统(任务)"

如何监视失败的登录尝试

此过程从终端窗口捕获失败的登录尝试。此过程不会从 CDE 或登录尝试中捕获失败的登录。

  1. 承担 Primary Administrator(主管理员)角色,或成为超级用户。

    Primary Administrator(主管理员)角色拥有 Primary Administrator(主管理员)配置文件。要创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 "使用 Solaris Management Console(任务)"

  2. /var/adm 目录中创建 loginlog 文件。
    # touch /var/adm/loginlog
  3. loginlog 文件中,为 root 用户设置读写权限。
    # chmod 600 /var/adm/loginlog
  4. loginlog 文件中,将组成员关系更改为 sys
    # chgrp sys /var/adm/loginlog
  5. 检验日志是否正常工作。

    例如,使用错误的口令五次登录系统。然后,显示 /var/adm/loginlog 文件。

    # more /var/adm/loginlog
    jdoe:/dev/pts/2:Tue Nov  4 10:21:10 2010
    jdoe:/dev/pts/2:Tue Nov  4 10:21:21 2010
    jdoe:/dev/pts/2:Tue Nov  4 10:21:30 2010
    jdoe:/dev/pts/2:Tue Nov  4 10:21:40 2010
    jdoe:/dev/pts/2:Tue Nov  4 10:21:49 2010
    #

    loginlog 文件中,每次失败的尝试都对应一项。每一项都包含用户的登录名称、tty 设备以及登录尝试失败的时间。如果用户登录尝试失败的次数少于五次,则不会记录任何失败的登录尝试。

    如果 loginlog 文件不断增大,则表明可能是存在侵入计算机系统的尝试。因此,应定期检查并清除该文件的内容。有关更多信息,请参见 loginlog(4) 手册页。

如何监视所有失败的登录尝试

此过程在 syslog 文件中捕获所有失败的登录尝试。

  1. 承担 Primary Administrator(主管理员)角色,或成为超级用户。

    Primary Administrator(主管理员)角色拥有 Primary Administrator(主管理员)配置文件。要创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 "使用 Solaris Management Console(任务)"

  2. 使用所需的 SYSLOGSYSLOG_FAILED_LOGINS 值设置 /etc/default/login 文件。

    编辑 /etc/default/login 文件以更改相应项。请确保取消对 SYSLOG=YES 的注释。

    # grep SYSLOG /etc/default/login
    # SYSLOG determines whether the syslog(3) LOG_AUTH facility 
    # should be used
    SYSLOG=YESSYSLOG_FAILED_LOGINS=0
    #
  3. 使用正确的权限创建文件以保存日志记录信息。
    1. /var/adm 目录中创建 authlog 文件。
      # touch /var/adm/authlog
    2. authlog 文件中,为 root 用户设置读写权限。
      # chmod 600 /var/adm/authlog
    3. authlog 文件中,将组成员关系更改为 sys
      # chgrp sys /var/adm/authlog
  4. 编辑 syslog.conf 文件以记录失败的口令尝试。

    这些失败记录应发送到 authlog 文件。

    1. syslog.conf 文件中键入以下项。

      使用制表符分隔 syslog.conf 中同一行上的字段。

      auth.notice <Press Tab>  /var/adm/authlog
    2. 刷新 syslog 守护进程的配置信息。
      # svcadm refresh system/system-log
  5. 检验日志是否正常工作。

    例如,使用错误的口令以普通用户的身份登录系统。然后,以 Primary Administrator(主管理员)角色或超级用户身份显示 /var/adm/authlog 文件。

    # more /var/adm/authlog
    Nov  4 14:46:11 example1 login: [ID 143248 auth.notice] 
     Login failure on /dev/pts/8 from example2, stacey
    #
  6. 定期监视 /var/adm/authlog 文件。

示例 3-4 在三次登录失败后记录访问尝试

按照上述过程进行操作,但在 /etc/default/login 文件中将 SYSLOG_FAILED_LOGINS 的值设置为 3

示例 3-5 在三次登录失败后关闭连接

/etc/default/login 文件中取消对 RETRIES 项的注释,然后将 RETRIES 的值设置为 3。所做编辑将立即生效。在一个会话中重试登录三次后,系统便会关闭连接。

如何创建拨号口令


注意

注意 - 首次建立拨号口令时,务必保持登录到至少一个端口。请在其他端口上测试该口令。如果注销以测试新口令,则可能无法重新登录。如果同时还登录到另一个端口,则可返回并修复相应错误。


  1. 承担 Primary Administrator(主管理员)角色,或成为超级用户。

    Primary Administrator(主管理员)角色拥有 Primary Administrator(主管理员)配置文件。要创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 "使用 Solaris Management Console(任务)"

  2. 创建一个包含串行设备列表的 /etc/dialups 文件。

    添加要使用拨号口令保护的所有端口。/etc/dialups 文件的显示应与以下内容类似:

    /dev/term/a
    /dev/term/b
    /dev/term/c
  3. 对于要求拥有拨号口令的登录程序,创建一个 /etc/d_passwd 文件,并在文件中添加这些程序。

    添加用户可在登录时运行的 shell 程序,例如 uucicoshkshcsh/etc/d_passwd 文件的显示应与以下内容类似:

    /usr/lib/uucp/uucico:encrypted-password:
    /usr/bin/csh:encrypted-password:
    /usr/bin/ksh:encrypted-password:
    /usr/bin/sh:encrypted-password:
    /usr/bin/bash:encrypted-password:

    在此过程的后续部分,将为每个登录程序添加加密口令。

  4. 在这两个文件中,将所有权设置为 root
    # chown root /etc/dialups /etc/d_passwd
  5. 在这两个文件中,将组所有权设置为 root
    # chgrp root /etc/dialups /etc/d_passwd
  6. 在这两个文件中,为 root 设置读写权限。
    # chmod 600 /etc/dialups /etc/d_passwd
  7. 创建加密口令。
    1. 创建临时用户。
      # useradd username
    2. 为临时用户创建口令。
      # passwd username
      New Password:  <Type password>
      Re-enter new Password:   <Retype password>
      passwd: password successfully changed for username
    3. 捕获加密口令。
      # grep username /etc/shadow > username.temp
    4. 编辑 username.temp 文件。

      删除除加密口令以外的所有字段。第二个字段保存加密口令。

      例如,在以下行中,加密口令为 U9gp9SyA/JlSk

      temp:U9gp9SyA/JlSk:7967:::::7988:
    5. 删除临时用户。
      # userdel username
  8. 将加密口令从 username.temp 文件复制到 /etc/d_passwd 文件。

    可为每个登录 shell 创建不同口令。或者,对每个登录 shell 使用相同口令。

  9. 将口令通知拨号用户。

    应确保在通知用户的过程中口令不会被篡改。

如何临时禁止拨号登录

  1. 承担 Primary Administrator(主管理员)角色,或成为超级用户。

    Primary Administrator(主管理员)角色拥有 Primary Administrator(主管理员)配置文件。要创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 "使用 Solaris Management Console(任务)"

  2. 将下面的项作为单独的一行放入 /etc/d_passwd 文件:
    /usr/bin/sh:*: