Mikrotik scripts kunnen je helpen bij het beheer van je router
Configuratie uitgevoerd met een RB962UiGS-5HacT2HnT
RouterOS versie | 7.13.1 |
Firmware | 7.13.1 |
Mikrotik scripts vereenvoudigen taken doordat ze automatisch kunnen worden uitgevoerd met behulp van Mikrotik scripts en een planner. Het is mogelijk om specifieke scripts dagelijks op een vast tijdstip te laten draaien, zoals een Mikrotik script dat automatisch een back-up van je configuratie maakt en deze via e-mail verstuurt. Het controleren van het dagelijkse aantal gebruikers op je hotspot en dit informatie via e-mail ontvangen is ook een functie van Mikrotik-scripts. Het is echter belangrijk op te merken dat het configureren van de Mikrotik scripts niet altijd eenvoudig is, en ja, ook ik ben geen expert op dat gebied. Doch ik wil je op weg helpen bij het opzetten van deze scripts. Voorbeelden van wat een Mikrotik scripts kan doen, zijn onder andere het in- en uitschakelen van draadloze of Ethernet-interfaces op bepaalde tijden of zelfs dagen. Je kan een address list uit- en inschakelen. Andere scripts kunnen je ook via e-mail waarschuwen als je Mikrotik-router oververhit raakt. De veelzijdigheid van Mikrotik scripts heeft zich al bewezen in verschillende toepassingen.
Mikrotik wijzigt soms de code hoe de scripts geschreven moeten worden. Ik reken erop dat jullie me inlichten als bepaalde configuraties van de hier getoonde Mikrotik scripts niet meer werken vanwege mogelijke wijzigingen in de code door Mikrotik. Op die manier kan ik ze corrigeren en jullie voorzien van de juiste informatie. Ik wil vermijden dat er onjuiste gegevens op mijn website verschijnen. En jij kan hierbij een handje helpen.
Om Mikrotik scripts te draaien denk aan de klok instellingen
Het is essentieel om ervoor te zorgen dat de klok op je router correct is ingesteld als je scripts op specifieke tijden wilt laten draaien. Bij sommige scripts moet je erop letten dat de tijd nog niet is verstreken om ervoor te zorgen dat ze correct worden uitgevoerd. Als de tijd eenmaal is verstreken, kan het zijn dat het Mikrotik-script niet wordt gestart. Houd er rekening mee dat bij een stroomonderbreking van de router de e-mailscripts mogelijk niet meer zullen werken totdat de router opnieuw van stroom wordt voorzien. Sommige scripts zullen na een stroomuitval niet automatisch opnieuw starten. Je kunt ze opnieuw activeren door ze zo in te stellen dat ze bij het opstarten van de router automatisch worden geactiveerd. Dit zal duidelijk worden bij bepaalde configuraties die ik binnenkort zal behandelen. Ik plan ook om van elk Mikrotik-script een video-tutorial te maken.
Wat zijn de onderwerpen waar je moet op letten bij het maken van Mikrotik scripts?
Email instellingen
Configureer eerst de email instellingen op je Mikrotik router om Mikrotik scripts die moeten mailen hun werk te laten doen. Hoe je dit moet doen kan je hier bekijken. Wel opletten en uittesten of de email juist is ingesteld en werkend is.
Het uur van je Mikrotik router moet juist worden ingesteld
Om het uur juist in te zetten moet je eerst de SNTP-client gaan instellen op je router. Op deze manier zal de klok op je Mikrotik router juist worden gezet volgens het land waarin je zich bevindt. De SNTP-instellingen kan je hier bekijken. Als de tijd niet goed is ingesteld kunnen bepaalde Mikrotik scripts niet worden uitgevoerd. De configuratie hiervan kan je hier stap voor stap aanleren.
Controleer na een stroomuitval of de scripts nog werkend zijn
Na een stroomuitval is het noodzakelijk dat je een controle uitvoert op je Mikrotik router. Dit om er zeker van te zijn dat de Mikrotik scripts nog werken. Soms kan het zijn dat de opstarttijd is verstreken met als gevolg dat het script niet meer werkt met alle gevolgen van dien.
Herstart elke dag automatisch je Mikrotik router script
Soms is het noodzakelijk om de Mikrotik Router bij zware belasting te herstarten om het geheugen vrij te maken. Dit script kan hierbij van pas komen en biedt een oplossing om het vastlopen van de router te voorkomen. Dit script is met name aan te bevelen bij drukbezochte access points, zoals die in hotels, campings, en soortgelijke locaties. Het is echter belangrijk om de herstart uit te voeren wanneer er weinig of geen gebruikers zijn. Dit kan bijvoorbeeld 's nachts gebeuren, maar zorg er dan wel voor dat de pieptonen zijn uitgeschakeld, vooral als de Mikrotik access points in een hotel en dergelijke meer bevinden.
/system scheduler add name="Reboot Router Daily" on-event= system reboot" start-date=jan/01/1970 start-time=03:00:00 interval=1d comment="" disabled=no
Schakel automatisch dagelijks de FTP-service in en uit Mikrotik script
Omdat FTP als onveilig wordt beschouwd en vatbaar is voor misbruik, is het soms nodig om deze service uit te schakelen. Echter, wanneer de Mikrotik FTP-service vereist is, bijvoorbeeld om een back-up naar een FTP-server te verzenden, kan een handig script worden gebruikt om de FTP-service tijdelijk in en uit te schakelen op de Mikrotik-router. Dit stelt je in staat om de FTP-service gedurende een bepaalde periode in te schakelen en vervolgens weer uit te schakelen, waardoor je de veiligheidsstatus van je Mikrotik-router kunt herstellen. Dit kan worden bereikt met behulp van een specifiek Mikrotik-script in combinatie met de scheduler.
/system scheduler add interval=1d name=enable-ftp on-event="/ip service enable ftp\r\ \n\r\ \n" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive start-date=jan/02/1970 \ start-time=01:00:00 add interval=1d name=disable-ftp on-event="/ip service disable ftp" policy=\ ftp,reboot,read,write,policy,test,password,sniff,sensitive start-date=jan/02/1970 start-time=\ 01:15:00
Schakel de wireless interface enkele seconden uit en terug aan
Het kan voorkomen dat bij een wifi point-to-point link de draadloze interfaces vastlopen. In zo'n geval kan een Mikrotik-script worden gebruikt om de draadloze interfaces aan beide zijden tijdelijk uit te schakelen en weer in te schakelen, als een soort eerste hulp bij uitval. Dit MikroTik script maakt gebruik van de netwatch-tool op de Mikrotik-router, die essentieel is voor deze functionaliteit. Het is belangrijk op te merken dat dit script als een preventieve maatregel kan worden ingesteld. Het script moet op beide locaties van de link worden geïmplementeerd, zoals op de Mikrotik SXT-serie of de Mikrotik Dynadish. Vergeet niet om het IP-adres van de andere kant van de link in te stellen als IP-adres voor de ping in het netwatch-commando. Het script voert een ping uit naar de SXT aan de andere kant van de link. Als er geen antwoord wordt ontvangen, schakelt het script de draadloze interface gedurende 5 seconden (instelbaar) uit en schakelt deze vervolgens weer in. Het IP-adres wordt bepaald door het door jou gebruikte IP-adres volgens de opbouw van je netwerk.
/tool netwatch add down-script="/interface wireless disable wlan1;\r\ \n\r\ \n:delay 5s;\r\ \n\r\ \n/interface wireless enable wlan1;" host=192.168.88.20
Mikrotik script schakel je acces point s 'nachts uit en s 'morgens terug aan
Dit script is bijzonder handig voor toepassingen in een internaat of wanneer je het internetgebruik van je kinderen wilt beperken. Een alternatieve benadering is om een virtueel accesspoint te gebruiken, zodat volwassenen via een aparte SSID en WPA2-sleutel nog steeds toegang hebben tot internet. Dit voorkomt dat je constant de internetverbinding moet uitschakelen en inschakelen. Deze aanpak kan ook veel gezinsproblemen oplossen, omdat kinderen dan wennen aan het automatisch afsluiten van hun internetverbinding. Let op bij het kopiëren van dit script en andere scripts die samenwerken met de scheduler. Zorg ervoor dat het uur in de scheduler steeds correct is ingesteld, zodat het Mikrotik script op het gewenste moment wordt geactiveerd.
/system scheduler add interval=1d name="Enable wlan1" on-event="enable wlan1" policy=read,write start-date=jul/31/2019 start-time=08:00:00 add interval=1d name="Disable wlan1" on-event="disable wlan1" policy=read,write start-date=jul/31/2019 start-time=21:00:00 /system script add dont-require-permissions=no name="enable wlan1" owner=admin policy=read,write source="interface wireless enable wlan1" add dont-require-permissions=no name="disable wlan1" owner=admin policy=read,write source="interface wireless disable wlan1"
Schakel de SSID uit als internet niet bereikbaar is
Dit MikroTik script wordt momenteel veelvuldig gebruikt om te voorkomen dat kwaadwilligen proberen in te breken op het access point, hoewel het natuurlijk geen absolute garantie biedt. In situaties waarin er geen internet beschikbaar is, kan het handig zijn om het access point automatisch uit te schakelen. Wanneer mensen de SSID zien, denken ze vaak dat ze verbinding kunnen maken met de hotspot. Echter, als er geen internetverbinding is, kan het beter zijn om het access point automatisch uit te schakelen. Dit script wordt gebruikt om te voorkomen dat gebruikers geïrriteerd raken doordat het access point geen internetverbinding heeft. Stel de MikroTik Netwatch tool zo in dat het bijvoorbeeld het IP-adres van het Google DNS (8.8.8.8) of het Cloudflare IP-adres (1.1.1.1) pingt. Dit dient als controle of er een internetverbinding beschikbaar is of niet. Zodra het internet weer bereikbaar is, wordt de SSID automatisch weer ingeschakeld.
/tool netwatch add host=8.8.8.8 down-script="interface wireless disable wlan1" up-script="interface wireless enable wlan1"
Dit Mikrotik script telt het aantal gebruikers en mailt deze naar je door.
Het lijkt handig om dagelijks het aantal gebruikers van je access point of hotspot per e-mail te ontvangen, zelfs als het maar voor statistische doeleinden is. Bij gebruik van dit Mikrotik-script is het belangrijk ervoor te zorgen dat de benaming van de DHCP-server correct is ingesteld. Je moet dit script bewerken met kladblok of bijvoorbeeld Notepad++. Ik geef de voorkeur aan de laatstgenoemde editor vanwege de geavanceerde zoek- en vervangfuncties. Let op dat je sommige parameters moet aanpassen, afhankelijk van de benaming van de interfaces, de IP-adressen, de datum, tijd, en andere configuratie gerelateerde variabelen. Wees voorzichtig bij het aanpassen van deze scripts, omdat het voorbeelden zijn die kunnen verschillen van jouw specifieke configuratie. Om Gmail te configureren op je MikroTik router lees deze blogpost.
:local i; :local hostip; :local hostname; :local dhcplist ""; :local date [/system clock get date]; :local time [/system clock get time]; :local leasesall [ :len [ /ip dhcp-server lease find where server=dhcp1 ] ]; :local firmware [ /system routerboard get current-firmware ]; :local routeros [ /system package get number=0 value-name=version ]; :local macaddress; /ip dhcp-server lease; :foreach i in=[find where server=dhcp1 ] do={ :set hostname [get $i host-name]; :set hostip [get $i address]; :set macaddress [get $i active-mac-address]; :set dhcplist ($dhcplist . $hostname . " " . $hostip . " " . $macaddress . " " . $date . " " . $time . "\n"); }; /tool e-mail send to=uwemail@gmail.com subject="Mail subject" body=( "Aantal DHCP leases: $leasesall\n\n" . $dhcplist );
Schakel door middel van dit script firewall rules in en uit
Een ander interessant Mikrotik-script betreft het in- en uitschakelen van één of meerdere firewall-regels. In dit voorbeeld worden eerst twee firewall-regels gemaakt voor een L2TP-IPSec-VPN-configuratie. Vervolgens wordt gedemonstreerd hoe je met het onderstaande script deze twee firewall-regels kunt in- en uitschakelen. Dit kan bijvoorbeeld handig zijn om na kantooruren de VPN te beveiligen en buiten die uren weer toegankelijk te maken. Dit script biedt flexibiliteit voor het beheren van firewall-regels op specifieke tijden. Let op dat het script alleen werkt als het start uur nog niet is verstreken. Wil je meer weten over het beveiligen van je router? Dit is al een grote stap vooruit naar meer veiligheid.
Zoekt de firewall rule door middel van het regel nummer
/system script ip firewall filter disable 5,6 :delay 15 /ip firewall filter enable 5,6
Zoekt de firewall rule door middel van de comment
/system script /ip firewall filter disable [find comment="ipsec-policy"] ; : delay 15 /ip firewall filter enable [find comment="ipsec-policy"] ;
Mikrotik email bij hoge latency script
Ping maakt gebruik van het ICMP-protocol om een ICMP ECHO REQUEST-pakket te verzenden naar een host of gateway, in afwachting van een reactie met een ICMP ECHO RESPONSE-pakket. De reactietijd tussen het versturen en ontvangen van de bevestiging wordt aangeduid als de round-trip time en wordt weergegeven in milliseconden. Deze methode biedt een manier om de latentie te meten. In het script kun je de waarden aanpassen voordat je gewaarschuwd wilt worden. Als de maximale responstijd wordt overschreden, kan het script een e-mail verzenden. Alternatief kun je een geluidssignaal activeren door middel van een Mikrotik-router met een PoE-interface.
:local Themes "Monitor IP delay to alarmthreshold" #Zet het te monitoren IP address hier onder. :local addre 8.8.8.8; #Zet de maximale vertraging hier onder in milliseconden. :local ms 100; :local avgRtt; /tool flood-ping $addre count=10 do={ :if ($sent = 10) do={ :set avgRtt $"avg-rtt" }} :if ($avgRtt >= $ms) do={ #send mail /tool e-mail send server=195.130.132.10 port=587user=uwusernaam password=uwpaswoord to=uwemail@gmail.com=uwemail@gmail.com subject=$Themes body=("MonitoringIP:$addre\ndelay:$avgRtt ms") :log err "Message has been sent"; }
Er zijn nog Mikrotik script configuraties op deze website
Op mijn website zijn er meer gedocumenteerde Mikrotik-scriptconfiguraties te vinden, die later ook worden opgenomen in deze blogpost. Hier is een voorbeeld van een scriptconfiguratie dat een e-mail zal sturen als de latentie te hoog wordt op je draadloze link, deze kan je hier bekijken.