Meine ersten Schritte mit MikroTik RouterOS (Teil 1)

Die Grundkonfiguration von MikroTik RouterOS per Skript

Leser dieses Blogs wissen, dass ich ein bekennender Freund von OpenWRT bin. Doch ein Blick über den Tellerrand schadet ja nicht – und so habe ich mich die letzten Wochen auf Empfehlung zweier Freunde hin näher mit RouterOS von MikroTik befasst und eine Basiskonfiguration aufgesetzt, die ich in der folgenden Serie näher vorstellen möchte.

Teil 1 befasst sich mit der Installation aktueller Firmware, dem Zurücksetzen der Einstellungen und einigen Basiskonfigurationen.

Ich muss ganz klar dazu sagen, dass RouterOS für mich noch unbekanntes Terrain und die letzte Beschäftigung mit Netzwerken schon einige Jahre her ist. Für Hinweise zu groben Patzern, Ungenauigkeiten und schlicht falschen Annahmen bin ich daher mehr als dankbar.

Was ist RouterOS?

RouterOS ist der Name eines Netzwerkbetriebssystems des lettischen Herstellers MikroTik, das meines Wissens auf Linux basiert. Zum Einsatz kommt es sowohl auf MikroTik-eigener Hardware, es ist aber auch als Standalone-Version für eigene Server oder virtuelle Maschinen verfügbar.

Der Funktionsumfang ist dabei durchaus üppig – zusätzlich zu Routing und Firewall sind unter anderem auch DHCP, DNS, Proxy, Dateifreigabe, BGP, OSPF, MPLS, VPN, Layer7-Filtering, WLAN-Controller und viele andere Features enthalten, die sich – entsprechendes Wissen vorausgesetzt – sowohl über die Kommandozeile, eine Weboberfläche als auch eine eigene grafische Administrationsoberfläche namens WinBox konfigurieren lassen. RouterOS wird in mehreren Lizenz-Leveln angeboten, die sich meines Wissens nur in der Zahl gleichzeitiger Verbindungen beispielsweise zum VPN-Server unterscheiden, nicht jedoch im Funktionsumfang selbst.

Die grafische Konfiguration von RouterOS
Die grafische Konfiguration von RouterOS

Die Funktionsvielfalt lässt schon erahnen, dass das Ganze trotz grafischer Konfiguration nicht für den Heimanwender gedacht ist, sondern sich an erfahrene Nutzer richtet, die wissen was sie tun. Ob ich mich dazu zählen darf, das wird sich noch zeigen… ;-)

Basissetup

Zwischenzeitlich habe ich mir selbst verschiedene Geräte angeschafft, um mein Netzwerkwissen wieder etwas aufzufrischen und im Zuge dessen eine Basiskonfiguration erarbeitet, die ich auf alle Geräte ausrolle. Momentan handelt es sich um ein Skript, das ich einfach per Copy & Paste auf die Geräte bringe. Wenngleich auch wesentlich professionellere Möglichkeiten zur Konfiguration bestehen, für meine Zwecke reicht das vorerst aus – meine lokale Version habe ich noch um Abfragen und Variablen erweitert, um das Ganze etwas flexibler zu gestalten, das lasse ich für diesen Beitrag zur Vereinfachung jedoch vorerst weg.

Updates einspielen

Zu Anfang installiere ich alle vorhandenen Updates, um mit einem aktuellen System zu arbeiten. Der Updateprozess ist dabei zweigeteilt: Zunächst wird RouterOS aktualisiert und nach einem Neustart kann das Update des Bootloaders eingespielt werden. Der zwischenzeitliche Reboot ist wichtig, ansonsten sperrt man sich u.U. aus dem Gerät aus.

RouterOS wird in mehreren Versionen geliefert – neben der Legacy-Version gibt es einen Bugfix-only-Zweig ohne neue Funktionen, dann die aktuelle stabile Version sowie den Entwicklungszweig mit Release Candidates. Für meine Systeme wähle ich die aktuelle stabile Version aus:

/system package update set channel=current

Sofern RouterOS schon Zugriff aufs Internet hat, lassen sich die Updates automatisch abfragen und herunterladen:

/system package update check-for-updates
/system package update download

Auf Systemen, die noch keinen Netzzugang haben genügt es, die jeweilige NPK-Datei vom Hersteller herunterzuladen und beispielsweise via WinBox ins Hauptverzeichnis zu kopieren. In allen Fällen wird das Update mittels Reboot durchgeführt:

/system reboot

Nach dem Neustart ist die aktuelle Version sowohl in der WinBox-Titelzeile als auch in der Konsole sichtbar. In einem zweiten Schritt kann jetzt der Bootloader aktualisiert werden. Dazu genügt ein

/system routerboard upgrade

wiederum gefolgt von einem Neustart mittels

/system reboot

Anschließend hat man ein aktuelles System.

IPv6 aktivieren

Um alle erforderlichen Neustarts am Stück zu ereldigen, installiere ich zu diesem Zeitpunkt gleich das IPv6-Paket, denn auch dieses benötigt einen Reboot. Der Befehl dazu lautet

/system package enable ipv6

gefolgt von einem erneuten

/system reboot

Konfiguration zurücksetzen

RouterOS wird je nach Gerät mit einer Standardkonfiguration ausgeliefert, die einen möglichst einfachen Betrieb ermöglichen soll. Es kann sich durchaus lohnen, diese als Grundlage zu verwenden – in meinem Szenario möchte ich allerdings einen definierten Ausgangszustand verwenden und setze daher die gesamte Konfiguration auf Null zurück. Das geht einfach mit

/system reset-configuration no-defaults=yes skip-backup=yes keep-users=no

gefolgt von einem – richtig geraten! – anschließenden Neustart, der hier automatisch erfolgt. Wichtig: Sämtliche IP-Verbindungen werden dadurch entfernt, d.h. ein Zugriff ist erst einmal nur noch über MAC möglich, beispielsweise per WinBox oder Telnet. (Danke an Sebastian für den Hinweis.)

Ein Tipp am Rande: Wer die Standardkonfiguration für sein Gerät betrachten möchte, um sich ein paar hilfreiche Einstellungen anzusehen, erhält diese einfach per

/system default-configuration print

SSH absichern

Als nächstes soll die SSH-Verbindung abgesichert werden. Um ausschließlich starke Kryptographie zuzulassen und einen Schlüssel von 4096 Bit zu nutzen muss folgendes Kommando eingegeben werden:

/ip ssh set strong-crypto=yes
/ip ssh set host-key-size=4096

Zusätzlich erzeuge ich grundsätzlich auf all meinen Systemen, auch auf Linux-Servern, immer einen frischen Satz SSH-Hostkeys. Das hat sich in der Vergangenheit bereits bewährt, ich denke da nur an einen Bug in Provider-Linux-Images, die auf allen Systemen zu identischen Hostkeys geführt haben. Einen neuen Key erzeugt man unter RouterOS mittels

/ip ssh regenerate-host-key

Da wir aber gleichzeitig auch die Schlüsselgröße und Einstellungen der Kryptographie geändert haben, benötigt das System noch einen zusätzlichen Reboot, der aufgrund der Schlüsselerzeugung etwas länger als gewohnt dauern kann:

/system reboot

Wer bin ich?

Der Hostname des Systems lautet standardmäßig “MikroTik”, was spätestens bei mehreren RouterOS-Geräten im Netz für Verwirrung sorgt. Über ein

/system identity set name="gateway1"

lässt sich der Name entsprechend setzen – natürlich auch auf etwas Kreativeres als “gateway1”, ich bevorzuge beispielsweise Comicfiguren.

Benutzer einrichten

Bevor es weitergeht, sollte der eigene Benutzer einen etwas kreativeren Namen als das standardmäßige “admin” bekommen – und ein Passwort will natürlich auch gesetzt werden, um Eindringlinge abzuhalten. Den bestehenden Nutzer benennt man einfach mittels

/user set admin comment="Max Mustermann" name="maxmuster"

um. Nach einem erneuten Login lässt sich das Passwort mittels

/password

setzen, wobei bei der Abfrage des Altpassworts einfach die Enter-Taste genutzt wird.

Uhrzeit und Zeitzone setzen

Damit die Logdateien den richtigen Zeitstempel haben, konfiguriere ich sodann die Zeitzone und setze zwei NTP-Server, von denen sich RouterOS die aktuelle Uhrzeit holen kann:

/system clock set time-zone-name=Europe/Berlin
/system ntp client set server-dns-names="pool.ntp.org,time.google.com" enabled=yes

Spätestens seit dem Zurücksetzen der Einstellungen hat RouterOS allerdings keinen Zugang zum Internet mehr, sodass die Uhrzeit aktuell noch nicht bezogen werden kann – der Einrichtung des Netzwerks widmen wir uns dann im nächsten Teil des Artikels.

Autor: Florian Effenberger

Florian engagiert sich seit über 18 Jahren für freie Software und ist einer der Gründer der The Document Foundation, der Stiftung hinter LibreOffice

22 Gedanken zu „Meine ersten Schritte mit MikroTik RouterOS (Teil 1)“

    1. Es gibt Hardware, die mit vorinstalliertem RouterOS geliefert wird und es gibt eine Version zur Installation auf dem eigenen Server oder in der VM. Man kann wohl auch OpenWRT innerhalb von RouterOS installieren, das habe ich mir aber selbst noch nicht angesehen. ;-)

      1. Arg, da habe ich beim Umformulieren meines ersten Test-Entwurfes einen Fehler gemacht. Richtig wäre:

        Geht das also über Router-Software wie OpenWRT hinaus oder ist das „nur“ eine Alternative?

  1. Ein Nachtrag zum Update des Bootloaders: Das ist bei weitem nicht regelmäßig nötig, denn neue Versionen kommen nicht so oft wie die des Betriebssystems.

    Es empfiehlt sich daher, zunächst mittels

    /system routerboard print

    nachzusehen, ob current-firmware und upgrade-firmware unterschiedlich sind. Ansonsten kann das Update einfach übersprungen werden.

  2. Moin

    Vielleicht kann mir hier jemand helfen unter DHCP Server – — LEASES hat man ja eine schöne Tabelle mit den Ips der Rechner/Wlan Geräte usw. im Netzwerk und hier werden auch jeweils die “Aktiven Host Name” angezeigt.

    Nur leider in manchen Fällen nicht! Z.B. meine nvidia Shield, der esxi HOST und die Sophos Firewall. Windows und Debian Client bzw. auch Handys wie Huawei Iphone Samsung sprich Android und IOS werden ohne Probleme die Hostname erkannt.

    Wisst Ihr da ne Lösung kann ich mit hilfe eines Scriptes oder wie auch immer eine Lösung finden ?

    MfG
    K

    1. Nur eine Vermutung, aber senden diese Geräte einen DHCP-Hostnamen mit? Der wird meines Wissens nämlich nicht aus dem DNS “gezogen”, sondern es wird angezeigt, welchen Namen der DHCP-Client übermittelt. Schickt er keinen mit, dann würde das erklären, warum das Feld leer ist.

  3. Du schreibst:
    > ein Zugriff ist erst einmal nur noch über MAC möglich, beispielsweise per WinBox oder Telnet

    Meinem (Laien-)Wissen nach ist Telnet nur möglich, wenn eine IP-Verbindung besteht. Geht das wirklich auch über MAC? Wenn ja: wie?

      1. Ja, gut als Mac User bin ich bei WinBox raus – und nehme mit dem Webinterface Vorlieb. Schade dass es da keinen anderen Weg gibt.

Schreibe einen Kommentar

Ich stimme der Datenschutzerklärung zu