在 Oracle® Solaris 11.2 中管理审计

退出打印视图

更新时间: 2014 年 7 月
 
 

如何配置审计文件的远程系统信息库

在此过程中,您将配置一个远程系统,即审计远程服务器 (Audit Remote Server, ARS),以接收并存储来自一个或多个被审计系统的审计记录。然后,您将激活远程服务器上的审计守护进程。

配置分两部分。首先,您将配置底层安全机制以便安全地传输审计数据,也就是说,您将配置 KDC。其次,您将在被审计系统和 ARS 上配置审计服务。此过程阐明了一个包含一个被审计客户机和一个 ARS 的方案,其中,ARS 和 KDC 位于同一服务器上。对于更复杂的方案,可以按类似方式进行配置。前四步骤描述了 KDC 的配置,而最后一步描述了审计服务的配置。

开始之前

请确保您已完成以下操作。您必须承担 root 角色。

  1. 如果您的站点尚未配置 KDC,请配置一个 KDC。

    您需要在一个系统上配置一个 KDC,让被审计系统和 ARS 都能使用,需要有每个系统的主机主体,另外还要有一个 audit 服务主体。以下示例说明了 KDC 配置策略:

    arstore # kdcmgr -a audr/admin -r EXAMPLE.COM create master
    

    此命令使用 audr/admin 管理主体在 EXAMPLE.COM 领域中创建一个主 KDC 并将其启用,然后启动 Kerberos 服务。

  2. 验证 KDC 是否可用。

    有关更多信息,请参见 kdcmgr(1M) 手册页。

    # kdcmgr status
    
    KDC Status Information
    --------------------------------------------
    svc:/network/security/krb5kdc:default (Kerberos key distribution center)
    State: online since Wed Feb 29 01:59:27 2012
    See: man -M /usr/share/man -s 1M krb5kdc
    See: /var/svc/log/network-security-krb5kdc:default.log
    Impact: None.
    
    KDC Master Status Information
    --------------------------------------------
    svc:/network/security/kadmin:default (Kerberos administration daemon)
    State: online since Wed Feb 29 01:59:28 2012
    See: man -M /usr/share/man -s 1M kadmind
    See: /var/svc/log/network-security-kadmin:default.log
    Impact: None.
    
    Transaction Log Information
    --------------------------------------------
    
    Kerberos update log (/var/krb5/principal.ulog)
    Update log dump :
    Log version # : 1
    Log state : Stable
    Entry block size : 2048
    Number of entries : 13
    First serial # : 1
    Last serial # : 13
    First time stamp : Wed Feb 29 01:59:27 2012
    Last time stamp : Mon Mar 5 19:29:28 2012
    
    
    Kerberos Related File Information
    --------------------------------------------
    (Displays any missing files)
  3. audit 服务主体添加到 KDC 密钥表文件中。

    您可以通过在 KDC 系统上键入 kadmin.local 命令来添加主体。另外,也可以通过使用 kadmin 命令并提供口令来远程添加主体。在本示例中,arstore 系统在运行 KDC。

    # kadmin -p audr/admin
    
    kadmin: addprinc -randkey audit/arstore.example.com@EXAMPLE.COM
    
    kadmin: ktadd audit/arstore.example.com@EXAMPLE.COM
    
  4. 在每个被审计系统上添加密钥。

    接收者和发送者都必须有密钥。

    enigma # kclient
    
    .. Enter the Kerberos realm: 
    EXAMPLE.COM
    
    .. KDC hostname for the above realm: 
    arstore.example.com
    
    .. Will this client need service keys ? [y/n]: 
    y
    
  5. 在 ARS 上配置审计服务。
    • 要创建一个组以接收来自 Kerberos 领域中任何被审计系统的审计记录,请命名一个连接组。
      # auditconfig -setremote group create Bank_A
      

      Bank_A 是一个连接组。因为未定义 hosts 属性,所以此组将接受所有连接,这意味着它是一个通配符组。该 Kerberos 领域中已正确配置了 audit_remote 插件的任何被审计系统都可以访问此 ARS。

    • 要限制与此组的连接,请指定可以使用此系统信息库的被审计系统。
      # auditconfig -setremote group Bank_A "hosts=enigma.example.com"
      

      连接组 Bank_A 现在只接受来自 enigma 系统的连接。来自任何其他主机的连接将被拒绝。

    • 为防止此组中的审计文件增长得过大,请设置最大大小。
      # auditconfig -setremote group Bank_A "binfile_fsize=4GB"
      
      # auditconfig -getremote
      Audit Remote Server
      Attributes: listen_address=;login_grace_time=30;max_startups=10;listen_port=0;
      Connection group: Bank_A (inactive)
      Attributes: binfile_dir=/var/audit;binfile_fsize=4GB;binfile_minfree=1;
      hosts=enigma.example.com;
  6. 在被审计系统上配置审计服务。

    要指定 ARS,请使用 p_hosts 属性。

    enigma # auditconfig -setplugin audit_remote \
         active p_hosts=arstore.example.com
    
    enigma # auditconfig -getplugin audit_remote
    Plugin: audit_remote
    Attributes: p_retries=3;p_timeout=5;p_hosts=arstore.example.com;
  7. 刷新审计服务。

    审计服务在刷新时将读取审计插件更改。

    # audit -s

    现在,被审计系统 enigma 与 ARS 之间的连接由 KDC 进行管理。

示例 4-9  将审计记录以流方式传输到同一 ARS 上的不同文件位置

此示例扩展了上述过程中的示例。管理员通过创建两个连接组,在 ARS 上按主机对审计记录进行了划分。

来自 audsys1 的审计文件将以流方式传输到此 ARS 上的 Bank_A 连接组。

arstore # auditconfig -setremote group create Bank_A

arstore # auditconfig -setremote group active Bank_A "hosts=audsys1" \
   "hosts=audsys1;binfile_dir=/var/audit/audsys1;binfile_fsize=4M;"

来自 audsys2 的审计文件将以流方式传输到 Bank_B 连接组。

arstore # auditconfig -setremote group create Bank_B

arstore # auditconfig -setremote group active Bank_B \
"hosts=audsys2;binfile_dir=/var/audit/audsys2;binfile_fsize=4M;"

为了更加方便地进行维护,管理员以相同方式设置了其他属性值。

arstore # auditconfig -getremote
Audit Remote Server
Attributes: listen_address=;login_grace_time=30;max_startups=10;listen_port=0;

Connection group: Bank_A
Attributes: binfile_dir=/var/audit/audsys1;binfile_fsize=4M;binfile_minfree=1;
hosts=audsys1

Connection group: Bank_B
Attributes: binfile_dir=/var/audit/audsys2;binfile_fsize=4M;binfile_minfree=1;
hosts=audsys2
示例 4-10  将 ARS 置于与 KDC 不同的系统上

在本示例中,管理员将 ARS 置于与 KDC 不同的一个系统上。首先,管理员创建并配置主 KDC。

kserv # kdcmgr -a audr/admin -r EXAMPLE.COM create master

kserv # kadmin.local -p audr/admin

kadmin: addprinc -randkey \
audit/arstore.example.com@EXAMPLE.COM

kadmin: ktadd -t /tmp/krb5.keytab.audit \
     audit/arstore.example.com@EXAMPLE.COM

在将 /tmp/krb5.keytab.audit 文件安全地传输到 ARS arstore 后,管理员将该文件移动到了正确的位置。

arstore # chown root:root krb5.keytab.audit

arstore # chmod 600 krb5.keytab.audit

arstore # mv krb5.keytab.audit /etc/krb5/krb5.keytab

除了重写文件,管理员还可以选择在 ARS 上使用 ktutil 命令将 KDC krb5.keytab.audit 文件与 arstore/etc/krb5/krb5.keytab 文件中的现有密钥进行合并。

最后,管理员在被审计系统上生成密钥。

enigma # kclient

.. Enter the Kerberos realm: EXAMPLE.COM

.. KDC hostname for the above realm: kserv.example.com

.. Will this client need service keys ? [y/n]: y