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
―――――――――――――