venerdì, Settembre 22, 2023

Come inviare email dal router a seconda degli eventi

Fabio Semperboni
Fabio Semperbonihttp://www.ciscozine.com?ref=areanetworking
Laureato in Ing. Informatica al Politecnico di Milano, si occupa di Networking dal 2005. Appassionato della tecnologia e sicurezza, ha lavorato per importanti enti internazionali quali NASA ed ESA dando supporto tecnico alle missioni Nodo2 (STS-120) e Columbus (STS-122). Attualmente lavora come Network/Security Engineer presso una importante Banca Italiana e, da alcuni anni, gestisce il sito web www.ciscozine.com

Forse non tutti sanno che i router Cisco, oltre essere caratterizzati da una grande stabilità e infinite potenzialità (routing, ACL, route-map, tuning, …), permettono anche l’invio di email in base a determinati eventi.

Si avete capito bene, i router Cisco inviano le mail!

Introdotto dalla versione 12.3(4)T, l’ Embedded Event Manager (EEM) è un fantastico e potente strumento integrato nell’IOS, che permette di definire azioni a seconda di eventi (in real time). In particolare, in questo tutorial cercherò di spiegarvi come spedire email e creare un messaggio syslog customizzato (severity 5):

  • quando un utente si è collegato in ssh (esempio 1)
  • quando attivo una vpn tramite un vpn client (esempio 2)

Prima di tutto definite il logging buffered a severity 5 (notifications); successivamente eseguite una connessione ssh e alzate una vpn.

Ora eseguite il comando “show log”; subito noterete che la sessione ssh che quella ipsec è stata salvata nel buffer locale con 2 messaggi distinti:

Apr 27 16:27:53.993: %SEC_LOGIN-5-LOGIN_SUCCESS: Login Success [user: ciscozine] [Source: 172.16.5.2] [localport: 22] at 17:27:53 Rome Wed Apr 27 2010
Apr 27 13:28:13.227: %LINEPROTO-5-UPDOWN: Line protocol on Interface Virtual-Access3, changed state to up

Fatto ciò, iniziamo ad addentrarci nel mondo EEM, definendo prima di tutto le variabili (campo email from, email to e smtp server):

Ciscozine(config)#event manager environment _email_to [email protected]
Ciscozine(config)#event manager environment _email_server your.mail.server
Ciscozine(config)#event manager environment _email_from [email protected]

Ora passiamo a configurare l’applet. Questa fase è molto semplice e si basa su 3 step:

  • Creare l’applet: ‘event manager applet [nome-applet]’
  • Definire quali sono gli eventi di log interessanti: ‘event syslog pattern “[messaggio-di-log]”‘
  • Definire le azioni:
    • Per spedire una mail: ‘action 1.0 mail server [variabili della mail]’
    • Per creare un messaggio syslog: ‘action 1.5 syslog msg priority [severity]”[messaggio]”‘

Nota1: Ricordati che il pattern dell’evento syslog può essere basato anche su espressioni regolari!
Nota2:
Dalla versione 3 di EEM è possibile inviare mail utilizando smtp server che richiedono autenticazione. In tal caso la sintassi sarà la seguente:

event manager environment _email_server username:[email protected]


Esempio 1: Spedire una mail una volta connessi al router via ssh

Ciscozine(config)#event manager applet login-ssh-ok
Ciscozine(config-applet)#event syslog pattern "SEC_LOGIN-5-LOGIN_SUCCESS: Login Success.*[localport: 22]"
Ciscozine(config-applet)#action 1.0 mail server "$_email_server" to "$_email_to" from "$_email_from" subject "$_event_pub_time: Login via SSH" body "$_syslog_msg"
Ciscozine(config-applet)#action 1.5 syslog msg priority 5 "LOGIN SUCCESS - Mail Sent"

La mail sarà ricevuta nel seguente modo:

  • object: Apr 27 19:22:36.203: Login success via SSH
  • body: Apr 27 19:22:36.195: %SEC_LOGIN-5-LOGIN_SUCCESS: Login Success [user:ciscozine ] [Source: 192.168.10.12] [localport: 22] at 20:22:36 Rome Wed Apr 27 2010

Il messaggio salvato nel buffer locale sarà:

Apr 27 19:22:36.203: %HA_EM-5-LOG: login-ssh-ok: LOGIN SUCCESS - Mail Sent

Esempio 2: Spedire una mail una volta connessi tramite VPN client

Ciscozine(config)#event manager applet CheckVPN
Ciscozine(config-applet)#event syslog pattern "LINEPROTO-5-UPDOWN: Line protocol on Interface Virtual-Access.*up"
Ciscozine(config-applet)#action 1.0 cli command "enable"
Ciscozine(config-applet)#action 1.5 cli command "sh crypto ipsec sa | i local crypto"
Ciscozine(config-applet)#action 2.0 mail server "$_email_server" to "$_email_to" from "$_email_from" subject "$_event_pub_time: VPN User connected" body "Connection:\n$_cli_result"
Ciscozine(config-applet)#action 2.5 syslog priority 5 msg "VPN UP - Mail Sent"

La mail sarà ricevuta nel seguente modo:

  • object: Apr 27 19:23:27.055: VPN User connected
  • body: Connection:
    local crypto endpt.: 85.237.142.204, remote crypto endpt.: 171.81.234.211
    Ciscozine#

Il messaggio salvato nel buffer locale sarà:

Apr 27 19:23:27.055: %HA_EM-5-LOG: CheckVPN: VPN UP - Mail Sent

Come avrete notato, l’action per l’invio di mail utilizza anche le variabili predefinite ‘$_cli_result variable’. e ‘$_event_pub_time’. Esse contengono rispettivamente l’output di ‘sh crypto ipsec sa | i local crypto” e il tempo in cui l’evento è stato eseguito.

Ovviamente questi sono solo 2 esempi, ma come potete immaginare le applicazioni sono molteplici.

Articoli correlati

Il caso “Medusa Ransomware”

I ransomware stanno diventando sempre più una minaccia di rilevanza importante, quasi da non far dormire sonni tranquilli ad aziende sia pubbliche che private,...

Digital Transformation


 

Noleggia una Tesla per il tuo evento ICT!

Categorie