在此过程中,您将配置一个远程系统,即审计远程服务器 (Audit Remote Server, ARS),以接收并存储来自一个或多个被审计系统的审计记录。然后,您将激活远程服务器上的审计守护进程。
配置分两部分。首先,您将配置底层安全机制以便安全地传输审计数据,也就是说,您将配置 KDC。其次,您将在被审计系统和 ARS 上配置审计服务。此过程阐明了一个包含一个被审计客户机和一个 ARS 的方案,其中,ARS 和 KDC 位于同一服务器上。对于更复杂的方案,可以按类似方式进行配置。前四步骤描述了 KDC 的配置,而最后一步描述了审计服务的配置。
开始之前
请确保您已完成以下操作。您必须承担 root 角色。
您已承担 root 角色。
您已安装了 Kerberos 软件包,如以流方式将审计记录传输到远程存储前如何执行准备工作中所述。
与配置了被审计系统的管理员协作,如如何向远程系统信息库发送审计文件中所述。
您需要在一个系统上配置一个 KDC,让被审计系统和 ARS 都能使用,需要有每个系统的主机主体,另外还要有一个 audit 服务主体。以下示例说明了 KDC 配置策略:
arstore # kdcmgr -a audr/admin -r EXAMPLE.COM create master
此命令使用 audr/admin 管理主体在 EXAMPLE.COM 领域中创建一个主 KDC 并将其启用,然后启动 Kerberos 服务。
有关更多信息,请参见 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)
您可以通过在 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
接收者和发送者都必须有密钥。
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
# 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;
要指定 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;
审计服务在刷新时将读取审计插件更改。
# audit -s
现在,被审计系统 enigma 与 ARS 之间的连接由 KDC 进行管理。
此示例扩展了上述过程中的示例。管理员通过创建两个连接组,在 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