RouterOS gibt es auch als Variante für virtuelle Maschinen, genannt Cloud Hosted Router (CHR). In diesem Beitrag zeige ich dir, wie du das MikroTik-System in der Hetzner Cloud installierst.
Seit einiger Zeit bietet Hetzner einen eigenen Cloud-Dienst an, der sich unter anderem per Weboberfläche, aber auch per API und Kommandozeilen-Tool konfigurieren lässt. Standardmäßig hast du die Wahl, deine virtuelle Maschine entweder mit Debian, Ubuntu, Fedora oder CentOS aufzusetzen. Daneben bietet Hetzner noch eine Vielzahl weiterer ISOs zur manuellen Installation an, darunter Arch Linux, Free- und OpenBSD, OpenSUSE, pfSense und OPNsense sowie MikroTik RouterOS.
Letzteres wollte auf meinem Server partout keine Festplatte erkennen, sodass ich dieses Image nicht testen konnte – über Rückmeldungen, ob es sich um die x86-Variante oder den CHR handelt, würde ich mich freuen. Die Lizenzierung der beiden Versionen unterscheidet sich, wobei ich die CHR-Variante wegen der Maschinenunabhängigkeit präferiere.
Basierend auf der MikroTik-Anleitung zur Installation bei Linode im Folgenden eine Installationsanleitung für das CHR-Image bei Hetzner.
Start ins Rettungssystem
Zuerst meldest du dich in der Hetzner Cloud Console an und startest deinen Server ins Rettungssystem. Wähle dazu das entsprechende Cloud-Projekt und den jeweiligen Server, klicke links im Menü auf Rescue und wähle die Schaltfläche Rescue aktivieren & Reset. Im folgenden Dialog startest du die linux64-Variante und wählst deinen SSH-Schlüssel aus. Dein Server wird anschließend ohne weitere Rückfrage neu gestartet und ins Rescue-System gebootet.

Verbindung zum Rettungssystem
Am komfortabelsten verbindest du dich per SSH. Da sich der Fingerprint des Systems geändert hat, entfernst du zuerst den hinterlegten Host-Key mittels ssh-keygen -R (siehe auch das Beispiel im Kommentar unter meinem SSH-Artikel):
ssh-keygen -R IP-des-Servers
Anschließend verbindest du dich als root mit dem Rettungssystem:
ssh root@IP-des-Servers
Löschen der Festplatte
Im nächsten Schritt löscht du die Partionierung der Festplatte. ACHTUNG: Dabei gehen unwiederbringlich alle Daten OHNE RÜCKFRAGE verloren! Lege im Zweifelsfall vorher ein Backup an! Prüfe zudem unbedingt VORHER, welches die Systemplatte ist! Im Beispiel ist dies /dev/sda:
dd if=/dev/zero of=/dev/sda bs=512 count=1
Download des CHR-Images
Anschließend lädst du von der MikroTik-Downloadseite das korrekte CHR-Image herunter und entpackst es. Du hast die Wahl zwischen der Long-term-Variante und der aktuelleren Version von RouterOS – im Zweifelsfall empfehle ich dir erstere. Wähle unten auf der Seite bei Cloud Hosted Router die Variante Raw disk image, für Version 6.43.16 lauten die Befehle beispielsweise
wget https://download.mikrotik.com/routeros/6.43.16/chr-6.43.16.img.zip unzip chr-6.43.16.img.zip
Schreiben der Imagedatei auf die Festplatte
Im Folgenden schreibst du den Inhalt der Imagedatei auf die Systemplatte. Prüfe an dieser Stelle nochmal, dass du das Abbild auch auf die richtige Platte schreibst und passe den Befehl entsprechend an:
dd if=chr-6.43.16.img of=/dev/sda bs=1M
Danach startest du das System mittels
shutdown -r now
neu.
Konfiguration und Lizenzierung der CHR-Instanz
Du kannst dich jetzt per SSH auf die MikroTik-Instanz verbinden. Da sich der Fingerprint des Systems abermals geändert hat, entfernst du wiederum zuerst den hinterlegten Host-Key mittels ssh-keygen -R (siehe auch das Beispiel im Kommentar unter meinem SSH-Artikel):
ssh-keygen -R IP-des-Servers
Anschließend verbindest du dich als admin mit dem CHR:
ssh admin@IP-des-Servers
Das System ist in diesem Zustand VOLLKOMMEN UNGESCHÜTZT und OHNE PASSWORT! Du solltest also UMGEHEND die Konfiguration vornehmen und dein System absichern!

Einen Einstieg in die RouterOS-Konfiguration findest du in meinen Blogpostings zum Thema sowie in einem Einsteiger-Workshop. Mehr Informationen zur Lizenzierung der CHR-Instanz findest du ebenfalls in einem Blogposting.
Als kleiner Nachtrag: MikroTik selbst hat ebenfalls eine Installationsanleitung für die Hetzner Cloud im Wiki, wie ich gerade entdeckt habe. Siehe https://wiki.mikrotik.com/wiki/Manual:CHR_Hetzner
wget funktioniert leider nicht mehr curl -L löst das problem hierbei
danke für die anleitung
Danke Florian für die Anleitung! Bei mir hat wget aufgrund IPv6 auch nicht funktioniert, mit der Option –inet4-only hat es dann geklappt. Der Rest hat dann wieder bestens geklappt, vielen Dank!
Danke für dein Feedback! :)