

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 审计文件访问
<a name="file-access-auditing"></a>

适用于 NetApp ONTAP 的 Amazon FSx 支持审计最终用户对虚拟存储机（SVM）中文件和目录的访问权限。

**Topics**
+ [文件访问审计概述](#auditing-overview)
+ [设置文件访问审计的任务概览](#auditing-tasks)

## 文件访问审计概述
<a name="auditing-overview"></a>

文件访问审计能让您根据您定义的审计策略记录最终用户对单个文件和目录的访问权限。文件访问审计可以帮助您提高系统的安全性，降低未经授权访问系统数据的风险。文件访问审计可帮助您的组织遵守数据保护要求，尽早发现潜在威胁，并降低数据泄露的风险。

在文件和目录访问中，Amazon FSx 支持记录成功的尝试（例如拥有足够权限的用户成功访问文件）、失败的尝试或两者兼而有之。您还可以随时关闭文件访问审计。

默认情况下，审计事件日志以 `EVTX` 文件格式存储，允许您使用 Microsoft 事件查看器进行查看。

### 可以审计的 SMB 访问事件
<a name="smb-audited-events"></a>

下表列出了可以审计的 SMB 文件和文件夹访问事件。


****  

| 事件 ID（EVT/EVTX） | 事件 | 描述 | 类别 | 
| --- | --- | --- | --- | 
|  560/4656  |  打开对象/创建对象  |  OBJECT ACCESS：打开对象（文件或目录）  |  文件访问  | 
|  563/4659  |  打开要删除的对象  |  OBJECT ACCESS：为了删除而请求对象（文件或目录）句柄  |  文件访问  | 
|  564/4660  |  删除对象  |  OBJECT ACCESS：删除对象（文件或目录） 当 Windows 客户端尝试删除对象（文件或目录）时，ONTAP 会生成此事件  |  文件访问  | 
|  567/4663  |  读取对象/写入对象/获取对象属性/设置对象属性  |  OBJECT ACCESS：对象访问尝试（读取、写入、获取属性、设置属性）。 对于此事件，ONTAP 仅审计对象上的第一个 SMB 读取和第一个 SMB 写入操作（成功或失败）。这样可以防止 ONTAP 在单个客户端打开对象并对同一对象执行多次连续读取或写入操作时创建过多的日志条目。  |  文件访问  | 
|  N/A/4664  |  硬链接  |  OBJECT ACCESS：尝试创建硬链接  |  文件访问  | 
|  N/A/N/A ONTAP 事件 ID 9999  |  重命名对象  |  OBJECT ACCESS：已重命名对象。这是一个 ONTAP 事件。Windows 目前不支持将其作为单一事件。  |  文件访问  | 
|  N/A/N/A ONTAP 事件 ID 9998  |  取消关联对象  |  OBJECT ACCESS：对象已取消关联。这是一个 ONTAP 事件。Windows 目前不支持将其作为单一事件。  |  文件访问  | 

### 可以审计的 NFS 访问事件
<a name="nfs-audited-events"></a>

以下 NFS 文件和文件夹访问事件可以审计。
+ READ
+ OPEN
+ CLOSE
+ READDIR
+ WRITE
+ SETATTR
+ CREATE
+ LINK
+ OPENATTR
+ REMOVE
+ GETATTR
+ VERIFY
+ NVERIFY
+ RENAME

## 设置文件访问审计的任务概览
<a name="auditing-tasks"></a>

设置 FSx for ONTAP 以进行文件访问审计涉及以下高级任务：

1. [熟悉](#auditing-requirements)文件访问审计要求和注意事项。

1. 在特定 SVM 上[创建审计配置](#create-audit-config)。

1. 在该 SVM 上[启用审计](#enable-auditing)。

1. 对您的文件和目录[配置审计策略](#file-audit-policies)。

1. 在 FSx for ONTAP 发出审计事件日志后[查看审计事件日志](#view-audit-logs)。

任务详细信息可见于以下过程。

对文件系统上要为其启用文件访问审计的任何其他 SVM 重复这些任务。

### 审计要求
<a name="auditing-requirements"></a>

在 SVM 上配置和启用审计之前，您应了解以下要求和注意事项。
+ NFS 审计支持指定为 `u` 类型的审计访问控制条目（ACE），尝试访问对象时，这些条目会生成审计日志条目。对于 NFS 审计，模式位和审计 ACE 之间无映射。将 ACL 转换为模式位时，会跳过审计 ACE。将模式位转换为 ACL 时，不会生成审计 ACE。
+ 审计取决于暂存卷中的可用空间。（暂存卷是由 ONTAP 创建的用于存储暂存文件的专用卷，这些文件是单个节点上的中间二进制文件，审计记录在转换为 EVTX 或 XML 文件格式之前存储在这些节点上。） 您必须确保在包含已审计卷的聚合中有足够的空间容纳暂存卷。
+ 审计取决于存储转换后审计事件日志的目录所在的卷中是否有可用空间。必须确保卷中有足够的空间用于存储事件日志。您可以在创建审计配置时使用 `-rotate-limit` 参数来指定要在审计目录中保留的审计日志数量，这有助于确保卷中有足够的可用空间存放审计日志。

### 在 SVM 上创建审计配置
<a name="create-audit-config"></a>

在开始审计文件和目录事件之前，必须先在存储虚拟机（SVM）上创建审计配置。创建审计配置之后，您必须在 SVM 上启用。

在使用 `vserver audit create` 命令创建审计配置之前，请确保已创建用作日志目标的目录，且该目录没有符号链接。您可以使用 `-destination` 参数指定目标目录。

您可以创建根据日志大小或计划轮换审计日志的审计配置，如下所示：
+ 要根据日志大小轮换审计日志，请使用以下命令：

  ```
  vserver audit create -vserver svm_name -destination path [-format {xml|evtx}] [-rotate-limit integer] [-rotate-size {integer[KB|MB|GB|TB|PB]}]
  ```

  以下示例为名为 `svm1` 的 SVM 创建审计配置，使用基于大小的轮换来审计文件操作以及 CIFS（SMB）登录和注销事件（默认）。日志格式为 `EVTX`（默认），日志存储在 `/audit_log` 目录中，每次只有一个日志文件（最大 200MB）。

  ```
  vserver audit create -vserver svm1 -destination /audit_log -rotate-size 200MB
  ```
+ 要根据计划轮换审计日志，请使用以下命令：

  ```
  vserver audit create -vserver svm_name -destination path [-format {xml|evtx}]
          [-rotate-limit integer] [-rotate-schedule-month chron_month]
          [-rotate-schedule-dayofweek chron_dayofweek] [-rotate-schedule-day chron_dayofmonth]
          [-rotate-schedule-hour chron_hour] [-rotate-schedule-minute chron_minute]
  ```

  如果您要配置基于时间的审计日志轮换，则需要 `-rotate-schedule-minute` 参数。

  以下示例使用基于时间的轮换为名为 `svm2` 的 SVM 创建审计配置。日志格式为 `EVTX`（默认），审计日志每月轮换，时间为每日中午 12:30。

  ```
  vserver audit create -vserver svm2 -destination /audit_log -rotate-size 200MB  -rotate-schedule-month all -rotate-schedule-dayofweek all -rotate-schedule-hour 12 -rotate-schedule-minute 30
  ```

您可以使用 `-format` 参数来指定审计日志是以转换后的 `EVTX` 格式（默认）还是以 `XML` 文件格式创建。`EVTX` 格式允许您使用 Microsoft 事件查看器查看日志文件。

默认情况下，要审计的事件类别包括文件访问事件（SMB 和 NFS）、CIFS（SMB）登录和注销事件以及授权策略更改事件。您可以通过 `-events` 参数更好地控制要记录哪些事件，其格式如下：

```
-events {file-ops|cifs-logon-logoff|cap-staging|file-share|audit-policy-change|user-account|authorization-policy-change|security-group}
```

例如，使用 `-events file-share` 可以对文件共享事件进行审计。

有关 `vserver audit create` 命令的更多信息，请参阅[创建审计配置](https://docs.netapp.com/ontap-9/topic/com.netapp.doc.dot-cm-cmpr-9101/vserver__audit__create.html)。

### 在 SVM 上启用审计
<a name="enable-auditing"></a>

设置审计配置之后，您必须在 SVM 上启用审计。为此，请使用以下命令：

```
vserver audit enable -vserver svm_name
```

例如，使用以下命令启用名为 `svm1` 的 SVM 的审计。

```
vserver audit enable -vserver svm1
```

您可以随时禁用访问审计。例如，使用以下命令禁用名为 `svm4` 的 SVM 的审计。

```
vserver audit disable -vserver svm4
```

禁用审计后，不会删除 SVM 上的审计配置，这意味着您可以随时在该 SVM 上重新启用审计。

### 配置文件和文件夹审计策略
<a name="file-audit-policies"></a>

您需要为要审计用户访问尝试的文件和文件夹配置审计策略。您可以配置审计策略来监控成功和失败的访问尝试。

SMB 和 NFS 两种审计策略均可配置。根据卷的安全样式，SMB 和 NFS 审计策略具有不同的配置要求和审计功能。

#### NTFS 安全样式文件和目录的审计策略
<a name="audit-policies-ntfs"></a>

您可以使用“Windows 安全”选项卡或 ONTAP CLI 配置 NTFS 审计策略。

##### 要配置 NTFS 审计策略（“Windows 安全”选项卡），请执行以下操作：
<a name="set-ntfs-audit-policy-windows"></a>

您可以通过向 NTFS SACL 中添加与 NTFS 安全描述符关联的条目来配置 NTFS 审计策略。然后将安全描述符应用于 NTFS 文件和目录。这些任务由 Windows GUI 自动处理。安全描述符可以包含用于应用文件和文件夹访问权限的自主访问控制列表（DACL）、用于文件和文件夹审计的 SACL，或者同时包含 SACL 和 DACL。

1. 从 Windows 资源管理器的**工具**菜单中，选择**映射网络驱动器**。

1. 填写**映射网络驱动程序**框：

   1. 选择**驱动器**号。

   1. 在**文件夹**框中，键入包含共享的 SMB（CIFS）服务器名称，其中包含要审计的数据和共享的名称。

   1. 选择**完成**。

   您选择的驱动器已安装并准备就绪，Windows 资源管理器窗口显示共享中包含的文件和文件夹。

1. 选择要为其启用审计访问的文件或目录。

1. 右键单击文件或目录，然后选择**属性**。

1. 选择**安全性**选项卡。

1. 单击**高级**。

1. 选择**审计**选项卡。

1. 执行所需的操作：    
[\[See the AWS documentation website for more details\]](http://docs.amazonaws.cn/fsx/latest/ONTAPGuide/file-access-auditing.html)

   如果要对用户或组设置审计，或者要更改对现有用户或组的审计，则打开***对象*的审计条目**框。

1. 在**应用于**框中，选择要如何应用此审计条目。

   如果要对单个文件设置审计，则**应用于**框处于非活动状态，因为它默认为“仅限此对象”。

1. 在**访问权限**框中，选择要审计的内容，以及是要审计成功的事件、失败的事件还是两者兼而有之。
   + 要审计成功的事件，请选择**成功**框。
   + 要审计失败的事件，请选择**失败**框。

   选择需要监控的操作以满足您的安全要求。有关这些可审计事件的更多信息，请参阅 Windows 文档。您可以审计以下事件：
   + 完全控制
   + 遍历文件夹/执行文件
   + 列出文件夹/读取数据
   + 读取属性
   + 读取扩展属性
   + 创建文件/写入数据
   + 创建文件夹/追加数据
   + 写入属性
   + 写入扩展属性
   + 删除子文件夹和文件
   + 删除
   + 读取权限
   + 更改权限
   + 获取所有权

1. 如果您不希望将审计设置传播到原始容器的后续文件和文件夹，请选择**仅将这些审计条目应用于此容器中的对象和/或容器**框。

1. 选择**应用**。

1. 添加、删除或编辑审计条目后，选择**确定**。

   ***对象*的审计条目**框关闭。

1. 在**审计**框中，选择此文件夹的继承设置。仅选择提供符合您安全要求的审计事件的最低级别。

   您可以选择以下任一种密钥：
   + 选择**包括此对象父项中可继承的审计条目**框。
   + 选择**用此对象中的可继承审计条目替换所有子代上的现有可继承审计条目**框。
   + 两个都选。
   + 两个都不选。

   如果您在单个文件上设置 SACL，则**审计**框中不会显示**用此对象中的可继承审计条目替换所有子代上的现有可继承审计条目**。

1. 选择**确定**。

##### 要配置 NTFS 审计策略（ONTAP CLI），请执行以下操作：
<a name="set-ntfs-audit-policy-cli"></a>

通过使用 ONTAP CLI，您可以配置 NTFS 审计策略，而无需在 Windows 客户端上使用 SMB 共享连接到数据。
+ 您可以使用 [vserver security file-directory ntfs sacl add](https://docs.netapp.com/us-en/ontap-cli-9101/vserver-security-file-directory-ntfs-sacl-add.html#description) 命令系列来配置 NTFS 审计策略。

例如，以下命令为名为 `vs0` 的 SVM创建名为 `p1` 的安全策略。

```
vserver security file-directory policy create -policy-name p1 -vserver vs0
```

然后，以下命令将 `p1` 安全策略应用于 `vs0` SVM。

```
vserver security file-directory apply -vserver vs0 -policy-name p1
```

#### UNIX 安全样式文件和目录的审计策略
<a name="audit-policies-unix"></a>

您可以通过向 NFS v4.x ACL（访问控制列表）中添加审计 ACE（访问控制表达式）来配置对 UNIX 安全样式文件和目录的审计。出于安全考虑，这允许您监控某些 NFS 文件和目录访问事件。

**注意**  
对于 NFS v4.x，自主 ACE 和系统 ACE 都存储在同一 ACL 中。因此，在向现有 ACL 中添加审计 ACE 时必须小心，以免覆盖和丢失现有 ACL。将审计 ACE 添加到现有 ACL 的顺序无关紧要。

##### 要配置 UNIX 审计策略，请执行以下操作：
<a name="set-unix-audit-policy"></a>

1. 使用 `nfs4_getfacl` 或等效命令检索文件或目录的现有 ACL。

1. 附加所需的审计 ACE。

1. 使用 `nfs4_setfacl` 或等效命令将更新后的 ACL 应用于文件或目录。

   此示例使用 `-a` 选项授予用户（名为 `testuser`）读取名为 `file1` 的文件的权限。

   ```
   nfs4_setfacl -a "A::testuser@example.com:R" file1
   ```

### 查看审计事件日志
<a name="view-audit-logs"></a>

您可以查看以 `EVTX` 或 `XML` 文件格式保存的审计事件日志。
+ `EVTX` 文件格式 – 您可以使用 Microsoft 事件查看器将转换后的 `EVTX` 审计事件日志作为保存的文件打开。

  使用事件查看器查看事件日志时，有两个选项可供选择：
  + **一般视图**：显示事件记录中所有事件的通用信息。不显示事件记录中特定于事件的数据。您可以使用详细视图来显示特定事件的数据。
  + **详细视图**：提供友好视图和 XML 视图。友好视图和 XML 视图既显示所有事件的通用信息，也显示事件记录中特定事件的数据。
+ `XML` 文件格式 – 您可以查看和处理支持 XML 文件格式的第三方应用程序上的 XML 审计事件日志。只要您具有 XML 架构和有关 XML 字段定义的信息，就可以使用 XML 查看工具来查看审计日志。