Ansible:FortiGate のログ設定を管理する

ネットワーク

Ansible を使用した FortiGate の各種ログ設定管理について記載します。

作業環境

■ Ansible 側

  • CentOS 8.0
  • Python 3.7.7
  • Ansible 2.9.6

■ FortiGate 側

  • 型番:FortiGate 60E
  • バージョン:v6.0.6 build0272 (GA)

イベントロギング設定

fortios_log_eventfilter モジュール

fortios_log_eventfilter モジュールを使用することで FortiGate のコンフィグにおける config log eventfilter (GUI だと以下画像)の各項目を設定することができます。

使用例

httpapi を使用してモジュールを実行する例です。

■ インベントリ:hosts

[forti]
10.1.10.100

[forti:vars]
ansible_user=admin
ansible_password=password
ansible_network_os=fortios
ansible_connection=httpapi
ansible_httpapi_use_ssl=yes
ansible_httpapi_validate_certs=no

10.1.10.100 は操作対象の FortiGate のIPアドレスです。
httpapi で使用する変数をグループ変数として定義しています。

■ Playbook:logEventfilter.yml

- hosts: all
  gather_facts: no
  tasks:
    - name: "fortios_log_eventfilter test"
      fortios_log_eventfilter:
        vdom: "root"
        log_eventfilter:
          event: "enable"
          system: "enable"
          vpn: "enable"
          user: "enable"
          router: "enable"
          wireless_activity: "disable"
          wan_opt: "disable"
          endpoint: "disable"
          ha: "disable"
          compliance_check: "disable"
          security_rating: "disable"

■ Playbook 実行

# ansible-playbook -i hosts logEventfilter.yml

PLAY [all] **********************************************************************************************************

TASK [fortios_log_eventfilter test] *********************************************************************************
changed: [10.1.10.100]

PLAY RECAP **********************************************************************************************************
10.1.10.100                : ok=1    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

■ 実行前の FortiGate のコンフィグ

FGT # show full-configuration log eventfilter
config log eventfilter
    set event enable
    set system enable
    set vpn enable
    set user enable
    set router enable
    set wireless-activity enable
    set wan-opt enable
    set endpoint enable
    set ha enable
    set compliance-check enable
    set security-rating enable
end

■ 実行後の FortiGate のコンフィグ

FGT # show full-configuration log eventfilter
config log eventfilter
    set event enable
    set system enable
    set vpn enable
    set user enable
    set router enable
    set wireless-activity disable
    set wan-opt disable
    set endpoint disable
    set ha disable
    set compliance-check disable
    set security-rating disable
end

ローカルトラフィックログ設定

fortios_log_setting モジュール

fortios_log_setting モジュールを使用することで FortiGate のコンフィグにおける config log setting の各項目を設定することができます。ローカルトラフィックログ設定(GUI だと以下画像)も config log setting に含まれるためこのモジュールを使用します。

使用例

httpapi を使用してモジュールを実行する例です。

■ インベントリ:hosts

内容はイベントロギング設定の使用例と同様とします。

■ Playbook:logSetting.yml

- hosts: all
  gather_facts: no
  tasks:
    - name: "fortios_log_setting test"
      fortios_log_setting:
        vdom: "root"
        log_setting:
          local_in_allow: "enable"
          local_in_deny_unicast: "enable"
          local_out: "enable"
          local_in_deny_broadcast: "disable"

■ Playbook 実行

# ansible-playbook -i hosts logSetting.yml

PLAY [all] **********************************************************************************************************

TASK [fortios_log_setting test] *************************************************************************************
changed: [10.1.10.100]

PLAY RECAP **********************************************************************************************************
10.1.10.100                : ok=1    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

■ 実行前の FortiGate のコンフィグ

FGT # show log setting
config log setting
    set local-in-allow enable
    set local-in-deny-unicast enable
    set local-in-deny-broadcast enable
    set local-out enable
end

■ 実行後の FortiGate のコンフィグ

# show log setting
config log setting
    set local-in-allow enable
    set local-in-deny-unicast enable
    set local-out enable
end

Playbook で指定した通り local-in-deny-broadcast が disable (デフォルト) になりました。

Syslog サーバ設定

fortios_log_syslogd_setting モジュール

fortios_log_syslogd_setting モジュールを使用することで FortiGate のコンフィグにおける config log syslogd setting の各項目を設定することができます。Syslog サーバの設定(GUI だと以下画像)はこのモジュールで実施します。

使用例

httpapi を使用してモジュールを実行する例です。

■ インベントリ:hosts

内容はイベントロギング設定の使用例と同様とします。

■ Playbook:logSyslogdSetting.yml

- hosts: all
  gather_facts: no
  tasks:
    - name: "fortios_log_syslogd_setting test"
      fortios_log_syslogd_setting:
        vdom: "root"
        log_syslogd_setting:
          status: "enable"
          server: "10.1.10.5"
          mode: "udp"
          port: "514"
          facility: "local7"
          source_ip: "0.0.0.0"
          format: "default"

■ Playbook 実行

# ansible-playbook -i hosts logSyslogdSetting.yml

PLAY [all] **********************************************************************************************************

TASK [fortios_log_syslogd_setting test] *****************************************************************************
changed: [10.1.10.100]

PLAY RECAP **********************************************************************************************************
10.1.10.100                : ok=1    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

■ 実行前の FortiGate のコンフィグ

# show log syslogd setting
config log syslogd setting
end

■ 実行後の FortiGate のコンフィグ

# show log syslogd setting
config log syslogd setting
    set status enable
    set server "10.1.10.5"
    set source-ip "0.0.0.0"
end

FGT # show full-configuration log syslogd setting
config log syslogd setting
    set status enable
    set server "10.1.10.5"
    set mode udp
    set port 514
    set facility local7
    set source-ip "0.0.0.0"
    set format default
end

fortios_log_syslogd_filter モジュール

fortios_log_syslogd_filter モジュールを使用することで FortiGate のコンフィグにおける config log syslogd filter の各項目を設定することができます。

  • Syslogサーバロギングの severity の設定
  • Syslogサーバロギングのログ種類別のフィルタリングの設定

などができます。

使用例

httpapi を使用してモジュールを実行する例です。

■ インベントリ:hosts

内容はイベントロギング設定の使用例と同様とします。

■ Playbook:logSylogdFilter.yml

- hosts: all
  gather_facts: no
  tasks:
    - name: "fortios_log_syslogd_filter test"
      fortios_log_syslogd_filter:
        vdom: "root"
        log_syslogd_filter:
          severity: "warning"
          multicast_traffic: "disable"
          voip: "disable"

■ Playbook 実行

# ansible-playbook -i hosts logSyslogdFilter.yml
^[[A^[[A^[[B^[[B^[[B^[[B^[[B
PLAY [all] **********************************************************************************************************

TASK [fortios_log_syslogd_filter test] ******************************************************************************
changed: [10.1.10.100]

PLAY RECAP **********************************************************************************************************
10.1.10.100                : ok=1    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

■ 実行前の FortiGate のコンフィグ

FGT # show full-configuration log syslogd filter
config log syslogd filter
    set severity information
    set forward-traffic enable
    set local-traffic enable
    set multicast-traffic enable
    set sniffer-traffic enable
    set anomaly enable
    set voip enable
    set dns enable
    set ssh enable
    set filter ''
    set filter-type include
end

■ 実行後の FortiGate のコンフィグ

FGT # show full-configuration log syslogd filter
config log syslogd filter
    set severity warning
    set forward-traffic enable
    set local-traffic enable
    set multicast-traffic disable
    set sniffer-traffic enable
    set anomaly enable
    set voip disable
    set dns enable
    set ssh enable
    set filter ''
    set filter-type include
end

メモリロギング設定

fortios_log_memory_setting モジュール

fortios_log_memory_setting モジュールを使用することで FortiGate のコンフィグにおける config log memory setting の各項目を設定することができます。メモリロギングの有効/無効設定(GUI だと以下画像)はこのモジュールで実施できます。

使用例

httpapi を使用してモジュールを実行する例です。

■ インベントリ:hosts

内容はイベントロギング設定の使用例と同様とします。

■ Playbook:logMemorySetting.yml

- hosts: all
  gather_facts: no
  tasks:
    - name: "fortios_log_memory_setting test"
      fortios_log_memory_setting:
        vdom: "root"
        log_memory_setting:
          status: "enable"

■ Playbook 実行

# ansible-playbook -i hosts logMemorySetting.yml

PLAY [all] **********************************************************************************************************

TASK [fortios_log_memory_setting test] ******************************************************************************
changed: [10.1.10.100]

PLAY RECAP **********************************************************************************************************
10.1.10.100                : ok=1    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

■ 実行前の FortiGate のコンフィグ

# show full-configuration log memory setting
config log memory setting
    set status disable
    set diskfull overwrite
end

■ 実行後の FortiGate のコンフィグ

FGT # show full-configuration log memory setting
config log memory setting
    set status enable
    set diskfull overwrite
end

fortios_log_memory_filter モジュール

fortios_log_memory_filter モジュールを使用することで FortiGate のコンフィグにおける config log memory filter の各項目を設定することができます。

  • メモリロギングの severity の設定
  • メモリロギングのログ種類別のフィルタリングの設定

などができます。

使用例

httpapi を使用してモジュールを実行する例です。

■ インベントリ:hosts

内容はイベントロギング設定の使用例と同様とします。

■ Playbook:logMemoryFilter.yml

- hosts: all
  gather_facts: no
  tasks:
    - name: "fortios_log_memory_filter test"
      fortios_log_memory_filter:
        vdom: "root"
        log_memory_filter:
          severity: "information"
          local_traffic: "enable"
          voip: "disable"

■ Playbook 実行

# ansible-playbook -i hosts logMemoryFilter.yml

PLAY [all] **********************************************************************************************************

TASK [fortios_log_memory_filter test] *******************************************************************************
changed: [10.1.10.100]

PLAY RECAP **********************************************************************************************************
10.1.10.100                : ok=1    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

■ 実行前の FortiGate のコンフィグ

FGT # show full-configuration log memory filter
config log memory filter
    set severity warning
    set forward-traffic enable
    set local-traffic disable
    set multicast-traffic enable
    set sniffer-traffic enable
    set anomaly enable
    set voip enable
    set dns enable
    set ssh enable
    set filter ''
    set filter-type include
end

■ 実行後の FortiGate のコンフィグ

FGT # show full-configuration log memory filter
config log memory filter
    set severity information
    set forward-traffic enable
    set local-traffic enable
    set multicast-traffic enable
    set sniffer-traffic enable
    set anomaly enable
    set voip disable
    set dns enable
    set ssh enable
    set filter ''
    set filter-type include
end

参考ページ

fortios_log_eventfilter – Configure log event filters in Fortinet’s FortiOS and FortiGate — Ansible Documentation
fortios_log_setting – Configure general log settings in Fortinet’s FortiOS and FortiGate — Ansible Documentation
fortios_log_syslogd_setting – Global settings for remote syslog server in Fortinet’s FortiOS and FortiGate — Ansible Documentation
fortios_log_syslogd_filter – Filters for remote system server in Fortinet’s FortiOS and FortiGate — Ansible Documentation
fortios_log_memory_setting – Settings for memory buffer in Fortinet’s FortiOS and FortiGate — Ansible Documentation
fortios_log_memory_filter – Filters for memory buffer in Fortinet’s FortiOS and FortiGate — Ansible Documentation

―――――――――――――

タイトルとURLをコピーしました