Come controllare chi accede ai nostri dispositivi Mikrotik con Telegram

In questa guida, vediamo come controllare chi accede ai nostri dispositivi Mikrotik. Grazie all’uso di questo script trovato sul web, posso dimostrarvi come installarlo sui nostri dispositivi Mikrotik e farlo funzionare con Telegram.

Cos’è Mikrotik?

Mikrotik è un azienda di prodotti elettronici, sopratutto di prodotti di telecomunicazione o elettronici. Mikrotik è una tra i marchi in circolazione nel produrre prodotti efficienti e professionali.

Come creare un bot Telegram:

Per creare un bot telegram vi consiglio di seguire la mia guida su come creare un bot Telegram al seguente link.

Come impostare lo script:

Per impostare lo script che vi lascio qui sotto, (attenzione lo script non è sviluppato da me è stato trovato sul web ed e per questo che voglio ringraziare il forum Mikrotik e il programmatore. Ora è passato un po di tempo quindi non so dirvi il nome dell’utente). Se notate nel BOT ID dovete inserire il vostro BOT ID generato dal vostro bot_telegram, nel campo Chat ID la vostra chat dove volete che arriva il messaggio, se volete che arriva nel vostro BOT occorre avviare questo altro BOT: @getidsbot. Una volta avviamo sapete qual è il vostro chat ID.

# BEGIN SETUP Edit Here
:local myserver ([/system identity get name])
:local scheduleName "LogFilter"
:local bot "BOT ID" 
:local ChatID "CHAT ID" 
:local startBuf [:toarray [/log find message~"in from"]]
:local removeThese [:toarray ""]
# END SETUP

# warn if schedule does not exist and create it 
:if ([:len [/system scheduler find name="$scheduleName"]] = 0) do={
/log warning "[LogFilter] Alert : Schedule does not exist. Creating schedule ...."
/system scheduler add name=$scheduleName interval=5s start-date=Jul/05/2019 start-time=startup on-event=LogFilter
/log warning "[LogFilter] Alert : Schedule created ."
}

# get last time
:local lastTime [/system scheduler get [find name="$scheduleName"] comment]
# for checking time of each log entry
:local currentTime
# log message
:local message
# final output
:local output

:local keepOutput false
# if lastTime is empty, set keepOutput to true
:if ([:len $lastTime] = 0) do={
:set keepOutput true
}

:local counter 0
# loop through all log entries that have been found
:foreach i in=$startBuf do={
# loop through all removeThese array items
:local keepLog true
:foreach j in=$removeThese do={
# if this log entry contains any of them, it will be ignored
:if ([/log get $i message] ~ "$j") do={
:set keepLog false
}
}
:if ($keepLog = true) do={
:set message [/log get $i message]

# LOG DATE
# depending on log date/time, the format may be different. 3 known formats
# format of jan/01/2002 00:00:00 which shows up at unknown date/time. Using as default
:set currentTime [ /log get $i time ]
# format of 00:00:00 which shows up on current day's logs
:if ([:len $currentTime] = 8 ) do={
:set currentTime ([:pick [/system clock get date] 0 11]." ".$currentTime)
} else={
# format of jan/01 00:00:00 which shows up on previous day's logs
:if ([:len $currentTime] = 15 ) do={
:set currentTime ([:pick $currentTime 0 6]."/".[:pick [/system clock get date] 7 11]." ".[:pick $currentTime 7 15])
}
}
# if keepOutput is true, add this log entry to output
:if ($keepOutput = true) do={
:set output ($output.$currentTime." ".$message." %0A%0A ")
}
:if ($currentTime = $lastTime) do={
:set keepOutput true
:set output ""
}
}
:if ($counter = ([:len $startBuf])-1) do={
:if ($keepOutput = false) do={ 
:if ([:len $message] > 0) do={
:set output ($output.$currentTime." ".$message)
}
}
}
:set counter ($counter + 1)
}
if ([:len $output] > 0) do={
/system scheduler set [find name="$scheduleName"] comment=$currentTime
/tool fetch url="https://api.telegram.org/bot$bot/sendMessage\?chat_id=$ChatID&text=$myserver%0A%0A$output" keep-result=no;
}

Installazione Script:

Per installarlo occorre aprire WinBox andare su <<System>> poi su <<Script>>. Infine in nome script mettete <<LogFilter>> (è molto importante scrivere questo nome altrimenti lo script non parte con tutte le funzionalità). Copiate nel campo bianco lo script, e selezionate le spunte come in foto, poi premiamo su <<Apply>> e clicchiamo su <<Run Script>>.

A questo punto se cercate di entrare tramite winbox o via web, potete notare che su Telegram vi arriva un avviso di avvenuto accesso.