2.2. 使用 Ansible 自动执行您的 IDPS 规则


要自动化您的 IDPS,请使用 ids_rule 角色创建和更改 Snort 规则。Snort 使用基于规则的语言来分析网络流量并将其与给定规则集进行比较。

以下实验环境演示了 Ansible 安全自动化集成的样子。名为"Attacker"的计算机在运行 IDPS 的目标计算机上模拟潜在的攻击模式。

请记住,现实世界的设置会包含其他供应商和技术。

Ansible 安全自动化集成示例

2.2.1. 创建新的 IDPS 规则

使用 ids_rule 角色管理您的规则和 IDPS 的签名。例如,您可以设置一条新规则,该规则将查找与防火墙上之前的攻击一致的特定模式。

注意

目前,ids_rule 角色只支持 Snort IDPS。

先决条件

  • 您需要 root 特权才能在 Snort 服务器上进行任何更改。

流程

  1. 使用 ansible-galaxy 命令安装 ids_rule 角色:

    $ ansible-galaxy install ansible_security.ids_rule
  2. 新建一个名为 add_snort_rule.yml 的 playbook 文件。设置以下参数:

    - name: Add Snort rule
      hosts: snort
  3. 添加 become 标志,以确保 Ansible 处理特权升级。

    - name: Add Snort rule
      hosts: snort
      become: true
  4. 通过添加以下变量来指定 IDPS 供应商的名称:

    - name: Add Snort rule
      hosts: snort
      become: true
    
      vars:
        ids_provider: snort
  5. 将以下任务和特定于任务的变量(如规则、Snort 规则文件以及规则 - present 或 absent 的状态)添加到 playbook 中:

    - name: Add Snort rule
      hosts: snort
      become: true
    
      vars:
        ids_provider: snort
    
      tasks:
        -  name: Add snort password attack rule
           include_role:
             name: "ansible_security.ids_rule"
           vars:
             ids_rule: 'alert tcp any any -> any any (msg:"Attempted /etc/passwd Attack"; uricontent:"/etc/passwd"; classtype:attempted-user; sid:99000004; priority:1; rev:1;)'
             ids_rules_file: '/etc/snort/rules/local.rules'
             ids_rule_state: present

    任务是在目标计算机上更改的组件。由于您使用定义这些任务的角色,include_role 是唯一需要的条目。

    ids_rules_file 变量指定 local.rules 文件的定义位置,而 ids_rule_state 变量则表示如果该规则不存在,则应创建该规则。

  6. 运行以下命令来运行 playbook:

    $ ansible-navigator run add_snort_rule.ym --mode stdout

    运行 playbook 后,除新创建的规则外,所有任务还将执行。您的 playbook 输出将确认您的 PLAY、TASK、RUNNING HANDLER 和 PLAY RECAP。

验证

要验证您的 IDPS 规则是否已成功创建,通过 SSH 连接到 Snort 服务器并查看 /etc/snort/rules/local.rules 文件的内容。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.