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.