系统管理指南:安全性服务

监视和限制超级用户

另一种使用超级用户帐户的方法是设置基于角色的访问控制。基于角色的访问控制称为 RBAC。有关 RBAC 的概述信息,请参见基于角色的访问控制(概述)。要设置 RBAC,请参见第 9 章,使用基于角色的访问控制(任务)

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

sulog 文件列出了 su 命令的每次使用情况,而不仅仅包括用于从用户切换到超级用户的 su 尝试。

    定期监视 /var/adm/sulog 文件的内容。


    # more /var/adm/sulog
    
    SU 12/20 16:26 + pts/0 stacey-root
    
    SU 12/21 10:59 + pts/0 stacey-root
    
    SU 01/12 11:11 + pts/0 root-rimmer
    
    SU 01/12 14:56 + pts/0 pmorph-root
    
    SU 01/12 14:57 + pts/0 pmorph-root

    这些项显示以下信息:

    • 输入命令的日期和时间。

    • 尝试是否成功。加号 (+) 表明尝试成功。减号 (-) 表明尝试失败。

    • 发出命令的端口。

    • 用户名称和切换身份的名称。

    缺省情况下,通过 /etc/default/su 文件中的以下项启用此文件中的 su 记录:


    SULOG=/var/adm/sulog

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

此方法可立即检测访问本地系统的超级用户尝试。

  1. 查看 /etc/default/login 文件中的 CONSOLE 项。


    CONSOLE=/dev/console

    缺省情况下,控制台设备设置为 /dev/console。使用此设置,root 可以登录到控制台。root 无法远程登录。

  2. 检验 root 是否可以远程登录。

    从远程系统,尝试以超级用户身份登录。


    mach2 % rlogin -l root mach1
    
    Password: <键入 mach1 的超级用户口令>
    
    Not on system console
    
    Connection closed.
  3. 监视成为超级用户的尝试。

    缺省情况下,会使用 SYSLOG 实用程序在控制台上列显成为超级用户的尝试。

    1. 在桌面上打开终端控制台。

    2. 在另一个窗口中,使用 su 命令成为超级用户。


      % su
      
      Password: <键入超级用户口令>
      
      #

      将在终端控制台上列显一条消息。


      Sep 7 13:22:57 mach1 su: 'su root' succeeded for jdoe on /dev/pts/6

示例 3–7 记录超级用户访问尝试

在此示例中,SYSLOG 不会记录超级用户尝试。因此,管理员将通过删除 /etc/default/su 文件中的 #CONSOLE=/dev/console 项的注释来记录这些尝试。


# CONSOLE determines whether attempts to su to root should be logged

# to the named device

#

CONSOLE=/dev/console

当用户尝试成为超级用户时,将在终端控制台上列显该尝试。


SU 09/07 16:38 + pts/8 jdoe-root

故障排除

要在 /etc/default/login 文件包含缺省 CONSOLE 项的情况下从远程系统成为超级用户,用户必须先使用其用户名登录。使用其用户名登录后,用户便可以使用 su 命令成为超级用户。

如果控制台显示类似于 Mar 16 16:20:36 mach1 login: ROOT LOGIN /dev/pts/14 FROM mach2.Example.COM 的项,则系统允许远程 root 登录。要禁止远程超级用户访问,请将 /etc/default/login 文件中的 #CONSOLE=/dev/console 项更改为 CONSOLE=/dev/console