From 9aa09dfced1ec11e2f125b335baadb101b3eeb94 Mon Sep 17 00:00:00 2001 From: "th.l" <thl-cmk@outlook.com> Date: Thu, 20 Jan 2022 06:46:54 +0100 Subject: [PATCH] update project --- agent_based/cisco_vpn_tunnel.py | 39 +++++++++++++++++++++++++++----- cisco_vpn_tunnel.mkp | Bin 5923 -> 6243 bytes packages/cisco_vpn_tunnel | 2 +- 3 files changed, 34 insertions(+), 7 deletions(-) diff --git a/agent_based/cisco_vpn_tunnel.py b/agent_based/cisco_vpn_tunnel.py index b38d875..285815b 100644 --- a/agent_based/cisco_vpn_tunnel.py +++ b/agent_based/cisco_vpn_tunnel.py @@ -16,13 +16,16 @@ # 2018-07-11: added parameter for missing IPSec SA, changed 'parsed' to use peer ip as index # 2021-08-03: rewritten for CMK 2.0 # 2021-11-03: fix negative vpn active tine +# 2022-01-19: added workaround for not matching IKE_OID_end and cipSecTunIkeTunnelIndexfor not matching +# IKE_OID_end and cipSecTunIkeTunnelIndex, try to match IPSec nad IKE sa by remote address # + # snmpwalk sample # # import time from dataclasses import dataclass -from typing import List, Dict +from typing import List, Dict, Optional from cmk.base.plugins.agent_based.agent_based_api.v1 import ( register, @@ -60,6 +63,7 @@ class IpsecSa: hc_out_octets: int out_pkts: int out_drop_pkts: int + tun_remote_addr: str @dataclass @@ -119,6 +123,25 @@ def _cisco_vpn_tunnel_render_ipv4_address(bytestring): return '.'.join([f'{ord(m)}' for m in bytestring]) +def _get_ipsec_sa_by_remote_address(ike_remote_address: str, ipsec_sa_summary: Dict[str, IpsecSa]) -> Optional[IpsecSa]: + found_ipsec_sa = False + ipsec_sa = IpsecSa(0, 0, 0, 0, 0, 0, 0, 0, 0, '') + for ipsec_sa_to_check in ipsec_sa_summary.values(): + if ipsec_sa_to_check.tun_remote_addr == ike_remote_address: + found_ipsec_sa = True + ipsec_sa.sa_count += 1 + ipsec_sa.hc_in_octets += ipsec_sa_to_check.hc_in_octets + ipsec_sa.in_pkts += ipsec_sa_to_check.in_pkts + ipsec_sa.in_drop_pkts += ipsec_sa_to_check.in_drop_pkts + ipsec_sa.hc_out_octets += ipsec_sa_to_check.hc_out_octets + ipsec_sa.out_pkts += ipsec_sa_to_check.out_pkts + ipsec_sa.out_drop_pkts += ipsec_sa_to_check.out_drop_pkts + if ipsec_sa_to_check.active_time > ipsec_sa.active_time: + ipsec_sa.active_time = ipsec_sa_to_check.active_time + if found_ipsec_sa: + return ipsec_sa + + ########################################################################### # # DATA Parser function @@ -132,13 +155,13 @@ def parse_cisco_vpn_tunnel(string_table: List[StringTable]) -> Dict[str, IkeSa]: ike_tunnel_entry, ipsec_tunnel_entry = string_table # summarize IPSec SAs, ASSUMPTION: except for counters all SA attributes are identical per IKE index - for ike_tunnel_index, ike_tunnel_alive, active_time, hc_in_octets, in_pkts, in_drop_pkts, hc_out_octets, \ - out_pkts, out_drop_pkts in ipsec_tunnel_entry: + for ike_tunnel_index, ike_tunnel_alive, tun_remote_addr, active_time, hc_in_octets, in_pkts, in_drop_pkts, \ + hc_out_octets, out_pkts, out_drop_pkts in ipsec_tunnel_entry: if ike_tunnel_index.isdigit(): ipsec_sa = ipsec_sa_summary.setdefault( ike_tunnel_index, - IpsecSa(0, 0, 0, 0, 0, 0, 0, 0, 0) + IpsecSa(0, 0, 0, 0, 0, 0, 0, 0, 0, tun_remote_addr) ) ipsec_sa.sa_count += 1 ipsec_sa.hc_in_octets += int(hc_in_octets) @@ -156,6 +179,7 @@ def parse_cisco_vpn_tunnel(string_table: List[StringTable]) -> Dict[str, IkeSa]: nego_mode in ike_tunnel_entry: if index.isdigit(): + save_remote_addr = remote_addr remote_addr = _cisco_vpn_tunnel_render_ipv4_address(remote_addr) if remote_addr.split('.') != 4: remote_addr = remote_value @@ -178,7 +202,9 @@ def parse_cisco_vpn_tunnel(string_table: List[StringTable]) -> Dict[str, IkeSa]: out_drop_pkts=int(out_droppkts), status=int(status), nego_mode=int(nego_mode), - ipsec_summary=ipsec_sa_summary.get(index) + # if/else is workaround for not matching IKE_OID_end and cipSecTunIkeTunnelIndex + # try to match IPSec sa by remote address + ipsec_summary=ipsec_sa_summary.get(index) if ipsec_sa_summary.get(index) is not None else _get_ipsec_sa_by_remote_address(save_remote_addr, ipsec_sa_summary) ) vpntunnel.update({remote_addr: ike_sa}) @@ -352,8 +378,9 @@ register.snmp_section( SNMPTree( base='.1.3.6.1.4.1.9.9.171.1.3.2.1', # CISCO-IPSEC-FLOW-MONITOR-MIB::cipSecTunnelEntry oids=[ - '2', # ike tunnel index + '2', # cipSecTunIkeTunnelIndex/ ike tunnel index '3', # cipSecTunIkeTunnelAlive + '5', # cipSecTunRemoteAddr (needed as workaround if if cipSecTunIkeTunnelIndex and IKE OID don't match) '10', # cipSecTunActiveTime '27', # cipSecTunHcInOctets '32', # cipSecTunInPkts diff --git a/cisco_vpn_tunnel.mkp b/cisco_vpn_tunnel.mkp index 93fbe7991a96d9fbcd3e8279071b102f33f51103..e57f997e1c32bae79b1de31a50f7e90f252e02b0 100644 GIT binary patch literal 6243 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 literal 5923 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 Zu$cQ#YyVT?Ag?>gGoo7oq!A>f{{if1cE<n! diff --git a/packages/cisco_vpn_tunnel b/packages/cisco_vpn_tunnel index 6b859d5..59ad7cb 100644 --- a/packages/cisco_vpn_tunnel +++ b/packages/cisco_vpn_tunnel @@ -11,7 +11,7 @@ 'name': 'cisco_vpn_tunnel', 'num_files': 3, 'title': 'Monitor Cisco VPN Tunnel', - 'version': '20210803.v0.2', + 'version': '20220119.v0.3', 'version.min_required': '2.0.0', 'version.packaged': '2021.09.20', 'version.usable_until': None} \ No newline at end of file -- GitLab