repositrepositorory basedy based routrouteros … · 2019. 3. 11. · arch linux since 2010 tu...

39
REPOSITORY BASED REPOSITORY BASED ROUTEROS SCRIPT ROUTEROS SCRIPT DISTRIBUTION DISTRIBUTION Christian Hesse

Upload: others

Post on 22-Jan-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: REPOSITREPOSITORORY BASEDY BASED ROUTROUTEROS … · 2019. 3. 11. · Arch Linux since 2010 TU since January 2015 Developer since June 2016. ROUTERBOROUTERBOARDARD Bought my first

REPOSITORY BASEDREPOSITORY BASEDROUTEROS SCRIPTROUTEROS SCRIPT

DISTRIBUTIONDISTRIBUTIONChristian Hesse

Page 2: REPOSITREPOSITORORY BASEDY BASED ROUTROUTEROS … · 2019. 3. 11. · Arch Linux since 2010 TU since January 2015 Developer since June 2016. ROUTERBOROUTERBOARDARD Bought my first

ABOUT MEABOUT ME

Christian "eworm" Hesse

born in 1982 in Oberhausen, Germany

still live there

wife and two daughters

Page 3: REPOSITREPOSITORORY BASEDY BASED ROUTROUTEROS … · 2019. 3. 11. · Arch Linux since 2010 TU since January 2015 Developer since June 2016. ROUTERBOROUTERBOARDARD Bought my first

WORKING FOR BCW GRUPPEWORKING FOR BCW GRUPPE

Server administration

Networking

Security

Page 4: REPOSITREPOSITORORY BASEDY BASED ROUTROUTEROS … · 2019. 3. 11. · Arch Linux since 2010 TU since January 2015 Developer since June 2016. ROUTERBOROUTERBOARDARD Bought my first

OPEN SOURCE & ARCH LINUXOPEN SOURCE & ARCH LINUX

Open Source enthusiast since ~ 2000

Arch Linux since 2010

TU since January 2015

Developer since June 2016

Page 5: REPOSITREPOSITORORY BASEDY BASED ROUTROUTEROS … · 2019. 3. 11. · Arch Linux since 2010 TU since January 2015 Developer since June 2016. ROUTERBOROUTERBOARDARD Bought my first

ROUTERBOARDROUTERBOARDBought my first RouterBoard in February 2013

Loved it for…

Page 6: REPOSITREPOSITORORY BASEDY BASED ROUTROUTEROS … · 2019. 3. 11. · Arch Linux since 2010 TU since January 2015 Developer since June 2016. ROUTERBOROUTERBOARDARD Bought my first

NEARLY EVERYTHING!NEARLY EVERYTHING!Functionality

Flexible configuration

Great CLI

Scripting capabilities

Page 7: REPOSITREPOSITORORY BASEDY BASED ROUTROUTEROS … · 2019. 3. 11. · Arch Linux since 2010 TU since January 2015 Developer since June 2016. ROUTERBOROUTERBOARDARD Bought my first

SCRIPTSSCRIPTS

Page 8: REPOSITREPOSITORORY BASEDY BASED ROUTROUTEROS … · 2019. 3. 11. · Arch Linux since 2010 TU since January 2015 Developer since June 2016. ROUTERBOROUTERBOARDARD Bought my first

THE FIRST ONETHE FIRST ONEemail-backup:

simple commands

one a�er another

/ system backup save/ tool e-mail send [email protected] \ subject="backup from MikroTik" body=backup \ file=backup.backup

Page 9: REPOSITREPOSITORORY BASEDY BASED ROUTROUTEROS … · 2019. 3. 11. · Arch Linux since 2010 TU since January 2015 Developer since June 2016. ROUTERBOROUTERBOARDARD Bought my first

TIME GOES BY…TIME GOES BY…... and you buy your next RouterBoard.

Page 10: REPOSITREPOSITORORY BASEDY BASED ROUTROUTEROS … · 2019. 3. 11. · Arch Linux since 2010 TU since January 2015 Developer since June 2016. ROUTERBOROUTERBOARDARD Bought my first

THE SECOND ONETHE SECOND ONEemail-backup:

use substitution to add identity

:local Identity [ / system identity get name ];/ system backup save name=$Identity;/ tool e-mail send [email protected] \ subject=("backup from " . $identity) body=backup \ file=($Identity . ".backup");

Page 11: REPOSITREPOSITORORY BASEDY BASED ROUTROUTEROS … · 2019. 3. 11. · Arch Linux since 2010 TU since January 2015 Developer since June 2016. ROUTERBOROUTERBOARDARD Bought my first

THE THIRD ONETHE THIRD ONEemail-backup:

add configuration at top

you can copy and paste the bottom

:local Email "[email protected]";

:local Identity [ / system identity get name ];/ system backup save name=$Identity;/ tool e-mail send to=$Email \ subject=("backup from " . $identity) body=backup \ file=($Identity . ".backup");

Page 12: REPOSITREPOSITORORY BASEDY BASED ROUTROUTEROS … · 2019. 3. 11. · Arch Linux since 2010 TU since January 2015 Developer since June 2016. ROUTERBOROUTERBOARDARD Bought my first

THE NEXT STEPTHE NEXT STEPglobal-config:

email-backup:

split configuration to a separate script

:global Email "[email protected]";

:global Email;

:local Identity [ / system identity get name ];/ system backup save name=$Identity;/ tool e-mail send to=$Email \ subject=("backup from " . $identity) body=backup \ file=($Identity . ".backup");

Page 13: REPOSITREPOSITORORY BASEDY BASED ROUTROUTEROS … · 2019. 3. 11. · Arch Linux since 2010 TU since January 2015 Developer since June 2016. ROUTERBOROUTERBOARDARD Bought my first

PUBLISHPUBLISHHey, we have a webserver!

Page 14: REPOSITREPOSITORORY BASEDY BASED ROUTROUTEROS … · 2019. 3. 11. · Arch Linux since 2010 TU since January 2015 Developer since June 2016. ROUTERBOROUTERBOARDARD Bought my first

WHAT’S NEXT?WHAT’S NEXT?RouterOS scripting can…

… download from webserver

… alter its own configuration

Page 15: REPOSITREPOSITORORY BASEDY BASED ROUTROUTEROS … · 2019. 3. 11. · Arch Linux since 2010 TU since January 2015 Developer since June 2016. ROUTERBOROUTERBOARDARD Bought my first

MANAGE ITSELFMANAGE ITSELFIntroduce a script for script management:

get names of local scripts

download from webserver

replace local script if it differs

Page 16: REPOSITREPOSITORORY BASEDY BASED ROUTROUTEROS … · 2019. 3. 11. · Arch Linux since 2010 TU since January 2015 Developer since June 2016. ROUTERBOROUTERBOARDARD Bought my first

PUT IT TOGETHER:PUT IT TOGETHER:Repository based RouterOS script distribution

Page 17: REPOSITREPOSITORORY BASEDY BASED ROUTROUTEROS … · 2019. 3. 11. · Arch Linux since 2010 TU since January 2015 Developer since June 2016. ROUTERBOROUTERBOARDARD Bought my first

INSTALLATIONINSTALLATION➪ We start with a clean system

Live demo

Page 18: REPOSITREPOSITORORY BASEDY BASED ROUTROUTEROS … · 2019. 3. 11. · Arch Linux since 2010 TU since January 2015 Developer since June 2016. ROUTERBOROUTERBOARDARD Bought my first

INSTALL CERTIFICATESINSTALL CERTIFICATESSecurity first!

Live demo

/ tool fetch dst-path="letsencrypt.pem" \ ("https://git.eworm.de/cgit.cgi/routeros-scripts/" . \ "plain/certs/letsencrypt.pem");/ certificate import file-name=letsencrypt.pem passphrase="";

Page 19: REPOSITREPOSITORORY BASEDY BASED ROUTROUTEROS … · 2019. 3. 11. · Arch Linux since 2010 TU since January 2015 Developer since June 2016. ROUTERBOROUTERBOARDARD Bought my first

INSTALL SCRIPTSINSTALL SCRIPTS

Live demo

:foreach Script in={ "global-config"; "global-functions"; "script-updates" } do={ / system script add name=$Script source=([ / tool fetch \ check-certificate=yes-without-crl \ ("https://git.eworm.de/cgit.cgi/routeros-scripts/" . \ "plain/" . $Script) output=user as-value]->"data");}

Page 20: REPOSITREPOSITORORY BASEDY BASED ROUTROUTEROS … · 2019. 3. 11. · Arch Linux since 2010 TU since January 2015 Developer since June 2016. ROUTERBOROUTERBOARDARD Bought my first

MODIFY CONFIGURATIONMODIFY CONFIGURATION

Live demo

/ system script edit global-config source;

Page 21: REPOSITREPOSITORORY BASEDY BASED ROUTROUTEROS … · 2019. 3. 11. · Arch Linux since 2010 TU since January 2015 Developer since June 2016. ROUTERBOROUTERBOARDARD Bought my first

IMPORT GLOBAL VARIABLESIMPORT GLOBAL VARIABLESNow…

Live demo

/ system script { run global-config; run global-functions;}

Page 22: REPOSITREPOSITORORY BASEDY BASED ROUTROUTEROS … · 2019. 3. 11. · Arch Linux since 2010 TU since January 2015 Developer since June 2016. ROUTERBOROUTERBOARDARD Bought my first

IMPORT GLOBAL VARIABLESIMPORT GLOBAL VARIABLES... and a�er reboot.

Live demo

/ system scheduler { add name=global-config start-time=startup \ on-event=global-config; add name=global-functions start-time=startup \ on-event=global-functions;}

Page 23: REPOSITREPOSITORORY BASEDY BASED ROUTROUTEROS … · 2019. 3. 11. · Arch Linux since 2010 TU since January 2015 Developer since June 2016. ROUTERBOROUTERBOARDARD Bought my first

UPDATE SCRIPTSUPDATE SCRIPTS

Live demo

/ system script run script-updates;

Page 24: REPOSITREPOSITORORY BASEDY BASED ROUTROUTEROS … · 2019. 3. 11. · Arch Linux since 2010 TU since January 2015 Developer since June 2016. ROUTERBOROUTERBOARDARD Bought my first

THAT’S IT!THAT’S IT!Repository based RouterOSscript distribution is set up.

Page 25: REPOSITREPOSITORORY BASEDY BASED ROUTROUTEROS … · 2019. 3. 11. · Arch Linux since 2010 TU since January 2015 Developer since June 2016. ROUTERBOROUTERBOARDARD Bought my first

WHAT’S IN THE REPOSITORY?WHAT’S IN THE REPOSITORY?There are some useful scripts.

Let’s install some and have a look!

Page 26: REPOSITREPOSITORORY BASEDY BASED ROUTROUTEROS … · 2019. 3. 11. · Arch Linux since 2010 TU since January 2015 Developer since June 2016. ROUTERBOROUTERBOARDARD Bought my first

BACK TO THE ROOTS…BACK TO THE ROOTS…Create empty script email-backup:

... and fill with content:

Live demo

/ system script add name=email-backup;

/ system script run script-updates;

Page 27: REPOSITREPOSITORORY BASEDY BASED ROUTROUTEROS … · 2019. 3. 11. · Arch Linux since 2010 TU since January 2015 Developer since June 2016. ROUTERBOROUTERBOARDARD Bought my first

BACK TO THE ROOTS…BACK TO THE ROOTS…➪ Remember to configure!

... and use:

... or run from scheduler.

/ system script run email-backup;

Page 28: REPOSITREPOSITORORY BASEDY BASED ROUTROUTEROS … · 2019. 3. 11. · Arch Linux since 2010 TU since January 2015 Developer since June 2016. ROUTERBOROUTERBOARDARD Bought my first

THE RESULTTHE RESULT

Page 29: REPOSITREPOSITORORY BASEDY BASED ROUTROUTEROS … · 2019. 3. 11. · Arch Linux since 2010 TU since January 2015 Developer since June 2016. ROUTERBOROUTERBOARDARD Bought my first

CHECK FOR UPDATESCHECK FOR UPDATESInstall check-routeros-update:

... and schedule:

Live demo

/ system script add name=check-routeros-update;/ system script run script-updates;

/ system scheduler add on-event=check-routeros-update \ name=check-routeros-update interval=1d;

Page 30: REPOSITREPOSITORORY BASEDY BASED ROUTROUTEROS … · 2019. 3. 11. · Arch Linux since 2010 TU since January 2015 Developer since June 2016. ROUTERBOROUTERBOARDARD Bought my first

CHECK FOR UPDATESCHECK FOR UPDATES... or run from terminal:

➪ Start your update interactively!

Live demo

/ system script run check-routeros-update;

Page 31: REPOSITREPOSITORORY BASEDY BASED ROUTROUTEROS … · 2019. 3. 11. · Arch Linux since 2010 TU since January 2015 Developer since June 2016. ROUTERBOROUTERBOARDARD Bought my first

CHECK FOR UPDATESCHECK FOR UPDATESOr even use the auto-update feature by configuring

SafeUpdateUrl in global-config.

Page 32: REPOSITREPOSITORORY BASEDY BASED ROUTROUTEROS … · 2019. 3. 11. · Arch Linux since 2010 TU since January 2015 Developer since June 2016. ROUTERBOROUTERBOARDARD Bought my first

DHCP AND DNS HELPERSDHCP AND DNS HELPERS

... and activate:

Live demo, please connect to "MUM-EU19"

/ system script { add name=collect-wireless-mac.local; add name=dhcp-to-dns; add name=lease-script; run script-updates;}

/ ip dhcp-server set lease-script=lease-script [ find ];

Page 33: REPOSITREPOSITORORY BASEDY BASED ROUTROUTEROS … · 2019. 3. 11. · Arch Linux since 2010 TU since January 2015 Developer since June 2016. ROUTERBOROUTERBOARDARD Bought my first

MODE-BUTTONMODE-BUTTON

... and activate:

Live demo

/ system script { add name=mode-button-event; add name=mode-button-scheduler; add name=leds-toggle-mode; run script-updates;}

/ system routerboard mode-button \ set enabled=yes on-event=mode-button-event;

Page 34: REPOSITREPOSITORORY BASEDY BASED ROUTROUTEROS … · 2019. 3. 11. · Arch Linux since 2010 TU since January 2015 Developer since June 2016. ROUTERBOROUTERBOARDARD Bought my first

AND A LOT MORE… LIKE:AND A LOT MORE… LIKE:check-certificates

daily-psk

gps-track

rotate-ntp

sms-action & sms-forward

check-lte-firmware-upgrade & unattended-lte-firmware-upgrade

Page 35: REPOSITREPOSITORORY BASEDY BASED ROUTROUTEROS … · 2019. 3. 11. · Arch Linux since 2010 TU since January 2015 Developer since June 2016. ROUTERBOROUTERBOARDARD Bought my first

WHERE DO YOU FIND IT?WHERE DO YOU FIND IT?https://git.eworm.de/cgit.cgi/routeros-scripts/about/

https://github.com/eworm-de/routeros-scripts

https://gitlab.com/eworm-de/routeros-scripts

Page 36: REPOSITREPOSITORORY BASEDY BASED ROUTROUTEROS … · 2019. 3. 11. · Arch Linux since 2010 TU since January 2015 Developer since June 2016. ROUTERBOROUTERBOARDARD Bought my first

FINALLYFINALLY

Page 37: REPOSITREPOSITORORY BASEDY BASED ROUTROUTEROS … · 2019. 3. 11. · Arch Linux since 2010 TU since January 2015 Developer since June 2016. ROUTERBOROUTERBOARDARD Bought my first

PLEASE…PLEASE…… use it!

… clone or fork!

… send your patches!

… send your feedback!

Page 38: REPOSITREPOSITORORY BASEDY BASED ROUTROUTEROS … · 2019. 3. 11. · Arch Linux since 2010 TU since January 2015 Developer since June 2016. ROUTERBOROUTERBOARDARD Bought my first

NOW IT’S TIME FOR YOURNOW IT’S TIME FOR YOURQUESTIONS…QUESTIONS…

Page 39: REPOSITREPOSITORORY BASEDY BASED ROUTROUTEROS … · 2019. 3. 11. · Arch Linux since 2010 TU since January 2015 Developer since June 2016. ROUTERBOROUTERBOARDARD Bought my first

THANK YOU!THANK YOU!

Christian Hesse < >[email protected]