Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Mitglied: colinardo

colinardo (Level 5) - Jetzt verbinden

22.11.2017, aktualisiert 02.02.2018, 6067 Aufrufe, 10 Kommentare, 13 Danke


Einleitung

Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal auf SSL umstellen wollte (Sollte ja heute Pflichtprogramm sein). Nötig dafür ist natürlich ein gültiges Zertifikat so dass bei den Usern keine Warnungen aufpoppen. Da ein kostenpflichtiges Zertifikat nicht in Frage kam, dachte ich mir, lösen wir es mit Let's Encrypt Zertifikaten. Problem: Mikrotik bietet keine Möglichkeit solche Zertifikate automatisiert zu erneuern und alle 3 Monate manuell erneuern geht ja gar nicht . Also dachte ich mir, ran an ans Werk und nachrüsten. Natürlich kann man das Generieren der Zertifikate auch auf andere Systeme auslagern(Cloud/Azure/AWS/Raspi) und nur die Zertifikate am Mikrotik downloaden lassen, aber hier ging es vornehmlich darum, das Ganze ohne weitere zusätzlich Strom fressenden Systeme gänzlich allein auf dem Router zu realisieren.

In den nachfolgenden Punkten erläutere ich euch die notwendigen Schritte um ein Let's Encrypt Zertifikat abzurufen und in den Speicher des Mikrotik zu importieren um es anschließend in den Hotspot einzubinden. Grundsätzlich ist der Ablauf folgender:
  • Anlegen einer METARouter-Instanz
  • Anpassen der Instanz mit den nötigen Tools
  • Erzeugen von SSH-Keys für den automatisierten Login auf den Webspace und dem Mikrotik (Zur Verifizierung bei Let's Encrypt wird der Webspace der Domain für welche das Zertifikat erzeugt werden soll temporär per SSHFS eingebunden.)
  • Einfügen eines Skripts zur Erneuerung des Zertifikats
  • Skript in den Autostart der Instanz einfügen, so dass es beim Booten automatisch gestartet wird
  • Skript kopiert erzeugtes Zertifikat und privaten Schlüssel per SCP zurück in den Speicher des Mikrotik.
  • Ein Mikrotik-Skript startet dann das ganze und lässt sich via Scheduler z.B. alle 60 Tage für die Verlängerung des Zertifikats ausführen

In diesem Beispiel erneuere ich das Hotspot-Zertifikat. Das Mikrotik-Script kann natürlich jeder auf seine Bedürfnisse anpassen, wenn z.B. das Zertifikat für eine andere Komponente auf dem Mikrotik verwendet werden soll.

1. Hinweise

Da die Anleitung das Feature MetaROUTER des Mikrotik verwendet kommen folgende Geräte in Frage
https://wiki.mikrotik.com/wiki/Manual:Metarouter
Euer Mikrotik sollte genügend freien RAM (für die METARouter Instanz ca. 16-32MB) und NAND-Speicher haben.
Als Spielwiese kam ein RB951G-2HnD mit 128MB RAM und 128MB Speicher zum Einsatz.
Die Instanz begnügt sich normalerweise mit sehr wenig RAM (ca. 10MB), bei Bedarf lässt sich sich auch noch weiter abspecken, aber das lass ich euch .

2. Meta-ROUTER Image herunterladen und installieren

  • Für die MIPS Architektur dieses OpenWRT Image herunterladen (Für andere Architekturen müsst Ihr euch ein eigenes Image bauen):
  • http://download.bmsoft.de/mikrotik/12.09/metarouter/mr-mips/openwrt-mr- ...
  • Das Archiv so wie es ist in den Speicher des Mikrotik kopieren (Drag n' Drop in die Winbox / SFTP / FTP)
  • Nun erstellen wir einen neuen Meta-ROUTER mit dem Image (Bitte das Häkchen bei enable raus nehmen, da wir vor dem Start der VM erst noch ein Netzwerkinterface hinzufügen müssen)

screenshot - Klicke auf das Bild, um es zu vergrößern

Alternativ als Shell-Befehl:


  • Jetzt benötigen wir ein Netzwerk-Interface für die Instanz

Folgende Einstellungen vornehmen:

Virtual-Machine: <Bitte aus dem Dropdown auswählen>
Type: Dynamic
Dynamic-MAC-Address: <wird vom Mikrotik generiert, kann bei Bedarf geändert werden>
Bridge-Interface: <Das Bridge-Interface wählen welchem dieses Interface dynamisch hinzugefügt wird>
VM MAC-Address: <wird vom Mikrotik generiert, kann bei Bedarf geändert werden>


screenshot - Klicke auf das Bild, um es zu vergrößern

Alternativ als Shell-Befehl:


Damit ist die Instanz zum ersten Start bereit.

3. Anpassen der Meta-ROUTER Instanz


Los geht's. Starten der Instanz:

screenshot - Klicke auf das Bild, um es zu vergrößern

Alternativ als Shell-Befehl:

Die Instanz startet nach dem Aktivieren automatisch und wird euch in der Spalte "Status" als "running" signalisiert.
Die Konsole des Meta-ROUTER erreicht ihr nun über das Kontextmenü > "Console", oder über den oben gezeigten Shell-Befehl. Drückt darin einmal ENTER um die Shell zu aktivieren.

screenshot - Klicke auf das Bild, um es zu vergrößern

Als erstes solltet ihr euch nun davon überzeugen das die Netzwerkkarte der Instanz Netzzugang hat (Wenn ihr eine statische IP bevorzugt, könnt ihr das in der Datei /etc/config/network nachholen).
Dazu ein ifconfig eintippen, ein route sollte das Default Gateway listen und ein Ping an eine Internetadresse sollte erfolgreich sein.

screenshot - Klicke auf das Bild, um es zu vergrößern

Nun fehlen uns noch einige Tools und Einstellungen. Ich habe der kürze halber der nötigen Befehle hier im Kasten zusammengefasst und jeweils kommentiert
In meinem Beispiel hat ist der Webspace per SSH/SCP erreichbar welchen wir nun in ein Verzeichnis in der Instanz mounten wollen. Damit das in der Zukunft natürlich automatisch ohne Passworteingabe passiert erzeugt ihr euch ein Keypair, gängige Praxis die ich euch sicherlich nicht nochmal detailliert vorbeten muss, oder .
Kurzfassung:
eingeben und alle Eingaben mit Enter bestätigen (kein Passwort für den Schlüssel vergeben!).
Den Inhalt des PublicKeys (/root/.ssh/id_rsa.pub) solltet ihr nun auf dem Webspace in die Datei ~/.ssh/authorized_keys kopieren. Abschließend testet ihr den Zugang zum Webspace mit
Ein Login sollte dann ohne Passwortabfrage erfolgen.

Das gleiche brauchen wir für den Transfer der nach generierten Zertifikate auf den Mikrotik. Für diese Aufgabe erzeugt man besten einen extra User am Mikrotik dem man dann den generierten Public-Key importiert. Anleitung dazu siehe:
https://jcutrer.com/howto/networking/mikrotik/routeros-ssh-publickeyauth ...
(ACHTUNG: Damit ihr euch nicht vom Mikrotik ausperrt wenn Ihr den Private-Key nicht aus dem Meta-ROUTER gesichert habt, achtet darauf das ihr den Key nicht dem admin zuweist denn sonst kommt ihr ohne Key-Auth nicht mehr auf den Mikrotik) -Anmerkung der Redaktion:-> Oh, ja ist mir selbst auch schon passiert , hatte die Keys aber gesichert und brauchte somit kein Backup zurückspielen.

Jetzt erstellen wir das Skript welches das Zertifikat bei Let's Encrypt abruft und auf den Mikrotik transferiert.
Dazu eine leere Datei erstellen mit
Nun i drücken und folgendes Skript einfügen:
Dabei gibt es diese Variablen die es an eure Umgebung anzupassen gilt:

DOMAIN = <COMMON-NAME des Zertifikats das erzeugt werden soll>
WEBROOT = <Das lokale Verzeichnis in welchem wir den Webspace temporär mounten (Dient zur Verifikation von Let's Encrypt)>
WEBSPACE = <Benutzerkennung und Host eures Webspace>
MIKROTIKSSHHOST = <Benutzerkennung und Host/IP unter der der Mikrotik per SSH seinen Speicher zur Verfügung stellt>
MAXWAITINET = <Zeit in Sekunden wie lange das Skript max. auf eine Internetverbindung wartet.>


Nun drückt in VIM ESC und abschließen schreibt :wq! zum Speichern des Skripts.
Jetzt noch ausführbar machen mit
Das Mounten des Webspace (sshfs) solltet ihr vorher erst mal manuell testen, genauso wie das Verbinden mit dem Mikrotik-Speicher (via ssh oder scp). Das muss nun alles ohne Passworteingabe funktionieren, wenn nicht müsst ihr das erst beheben bevor ihr hier weiter macht.

Damit das Skript beim Booten der Meta-ROUTER Instanz automatisch startet fügen wir in die Datei /etc/rc.local vor dem exit 0 noch folgende Zeile ein:
Sollte nun soweit alles geklappt haben könnt Ihr des Skript das erste mal testen und es mit einem
starten. Hat alles geklappt findet Ihr die Zertifikate einmal in der Instanz selbst unter /root/.acme.sh/<COMMON-NAME>, und im Root des Mikrotik -Speichers abgelegt. Erst wenn das erfolgreich war fahrt ihr weiter mit der Anleitung fort.

4. Mikrotik-Skript zum installieren der Zertifikate anlegen

Jetzt verlassen wir die Instanz des Meta-ROUTER erst mal mit exit (Fenster könnt ihr dann schließen), und arbeiten weiter in Winbox.
Das nächste Mikrotik-Skript erledigt nun nachstehende Aufgaben
  • Starten des Meta-Routers
  • Importieren der Zertifikate in den Zertifikate-Speicher des Mikrotik
  • Aktualisieren Hotspot-Profils
  • Stoppen des Meta-Routers (Ein Dauerlaufen ist hier ja nicht nötig).
Das Skript hat folgende Variablen die angepasst werden müssen:

COMMONNAME = <Common-Name eures Zertifikats>
HOTSPOTPROFILE = <Der Name des zu aktualisierenden Hotspot-Profils>
METAROUTERNAME = <Name eures Meta-ROUTERS>
MAXWAIT = <Maximale Zeit in Sekunden die das Skript auf die neu erzeugten Zertifikate wartet>

Das Skript legt ihr unter /system scripts ab und speichert es:

screenshot - Klicke auf das Bild, um es zu vergrößern

Automatisch gestartet werden kann es dann wie gewohnt mit dem Scheduler (z.B. alle 60 Tage):

screenshot - Klicke auf das Bild, um es zu vergrößern

5. Schlusswort

Bei der Verifikation des Let's Encrypt Zertfikats seit ihr natürlich frei das auf DNS-Verify etc. umzustellen. Das hier war ein einfaches Beispiel bei dem der Kunden seinen Webspace und die Domain bei 1und1 hatte und da bot es sich an den Webspace per SSHFS einzubinden.
Man sieht, mit Meta-ROUTERN lässt sich eine Menge realisieren die ein Mikrotik von selbst nicht anbietet. Auch ganz nützlich z.B. ist eine Asterisk Instanz, macht z.B. eine Fritz!box dann gänzlich überflüssig beim "kleinen Kunden" .

Noch ein wichtiger Hinweis wenn ihr fleißig Zertifikate im Test erstellt und erneuert: Achtet auf die Limits von Let's Encrypt, z.B. maximal 5 Zertfikate von ein und der selben Domain pro Woche (sliding Window). Hier einzusehen:
Rate Limits - Let's Encrypt - Free SSL/TLS Certificates
Also nicht übertreiben, sonst gibt euch das Skript einen Fehler ala 429 too many requests aus .

Hoffe die Anleitung ist dem ein oder anderen von Nutzen .

Wie immer gilt: Nutzung auf eigene Gefahr.

Nun viel Spaß beim Basteln an eurem eigenen Projekt.

Grüße @colinardo

Falls euch der Beitrag gefällt, könnt ich euch auch gerne jederzeit mit einer kleinen Spende erkenntlich zeigen, wenn euch danach ist.
Mitglied: Frank
22.11.2017 um 19:37 Uhr
Klasse, danke für die Anleitung

Gruß
Frank
Bitte warten ..
Mitglied: colinardo
22.11.2017, aktualisiert um 19:42 Uhr
Gerne, nur das Apostroph bei Let's Encrypt bekomme ich leider nicht in den Titel, aber wat solls .
Bitte warten ..
Mitglied: 134464
22.11.2017 um 19:47 Uhr
Geil . Kann ich echt gut gebrauchen!
Das gibt wieder massig Stoff für kühle Wintertage .

Gruß @Specht
Bitte warten ..
Mitglied: Vision2015
22.11.2017 um 19:55 Uhr
Super...

Danke für deine Mühe...

Frank
Bitte warten ..
Mitglied: aqui
23.11.2017 um 09:38 Uhr
Klasse Tutorial !
Nun fehlt nur noch eine Version für das pfSense Captive Portal
Bitte warten ..
Mitglied: colinardo
23.11.2017, aktualisiert um 10:45 Uhr
Zitat von aqui:
Klasse Tutorial !
Hi @aqui, freut mich das es gefällt .
> Nun fehlt nur noch eine Version für das pfSense Captive Portal
Zur pfSense: Das platzsparende ACME-Package das ich auch in obiger Anleitung als einfaches *.sh Skript verwende gibt es bereits als fertiges Package für die pfSense (2.3.2-p1 and later):
Siehe: https://doc.pfsense.org/index.php/ACME_package

Grüße Uwe
Bitte warten ..
Mitglied: aqui
23.11.2017 um 10:59 Uhr
Stimmt, du hast Recht ! Das muss ich gleich mal testen
Bitte warten ..
Mitglied: Penny.Cilin
23.11.2017 um 11:13 Uhr
Moin und Danke @colinardo

das ist Klasse. Einen schönen Tag noch allesamt.

Gruss Penny
Bitte warten ..
Mitglied: horstvogel
05.12.2017 um 13:30 Uhr
Hallo,
das ACME Package nutze ich schon eine ganze Zeit. Die Erneuerung des Zertifikates funktioniert. Leider habe ich das immer noch keine Lösung gefunden, wie ich die automatische Import in den Squid Reverse Proxy. Vielleicht könnt Ihr mir einen Hinweis geben.
Danke!

https://www.administrator.de/forum/pfsense-acme-packages-refresh-crl-squ ...
Bitte warten ..
Mitglied: colinardo
05.12.2017, aktualisiert um 16:44 Uhr
@horstvogel : Siehe meinen Kommentar dazu in deinem Thread.

Grüße Uwe
Bitte warten ..
Ähnliche Inhalte
Apache Server
Wildcard SSL Zertifikat von Lets Encrypt
Tipp von 140016Apache Server11 Kommentare

Mit einem Wildcard SSL Zertifikat von Let's Encrypt habt ihr die Möglichkeit euere Domain inklusive aller Subdomains mit nur ...

Verschlüsselung & Zertifikate
Auf Lets Encrypt wechseln
Erfahrungsbericht von wiesi200Verschlüsselung & Zertifikate3 Kommentare

Hallo, nach dem Theater was aktuell bei StartCom herrscht welches ich aktuell als Zertifikats Anbieter nutzte hab ich mich ...

Router & Routing
Lets Encrypt kommt auf die FritzBox
Information von 134464Router & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Verschlüsselung & Zertifikate

Lets Encrypt stellt nun auch Wildcard-Zertifikate aus

Information von em-pieVerschlüsselung & Zertifikate

Für alle, die sich mit der Thematik "Zertifikate" etwas mehr beschäftigen und dabei Let's Encrypt in Betracht ziehen respektive ...

Neue Wissensbeiträge
Informationsdienste

RKI - Corona-Datenspende App zur Erfassung von Informationen und Ausbreitung des Coronavirus (SARS-CoV-2) in Deutschland

Information von Frank vor 17 StundenInformationsdienste1 Kommentar

Das Robert Koch-Institut stellt ab sofort eine App zur Verfügung, die ergänzende Informationen dazu liefern soll, wo und wie ...

Sicherheit

Gefährliche Sicherheitslücken im HP Support Assistant sind immer noch offen

Information von transocean vor 17 StundenSicherheit

Moin, es wird empfohlen, den HP Support Assistenten aus Sicherheitsgründen zu deinstallieren. Lest selbst Gruß Uwe

Webbrowser
Microsofts neuer Edge Browser kommt gut an
Information von Frank vor 17 StundenWebbrowser8 Kommentare

Laut dem Statistikdienst Netmarketshare liegt der Marktanteil von Microsofts neuen Browser Edge (7.59%) im März 2020 erstmals vor Firefox ...

Microsoft

Support of DANE and DNSSEC in Office 365 Exchange Online

Information von Dani vor 1 TagMicrosoft1 Kommentar

Guten Abend zusammen, Microsoft is committed to providing world-class email security solutions and the support for the latest Internet ...

Heiß diskutierte Inhalte
Schulung & Training
IT-Bedarf ermitteln
Frage von malikaSchulung & Training47 Kommentare

Hallo zusammen, ich würde gerne Eure Kritik oder Ratschläge zum Ermitteln des IT-Bedarfs für ein Steuerbüro (2 Steuerberater, 1 ...

Schulung & Training
Admin Hygiene an APs (Zur Zeiten von Corona.)
gelöst Frage von NebellichtSchulung & Training22 Kommentare

Hallo Admins, ich stelle mir gerade die Frage(n), wie ich als Admin mich vor Viren und Bakterien schützen kann ...

Server-Hardware
Fujitsu RX300 S7-Server Festplattenadapter 3,5" auf 2,5"
gelöst Frage von reksierpServer-Hardware15 Kommentare

Moin, in unseren o.a. Server möchten wir 2,5"-SSDs verwenden. Die lassen sich in den vorhandenen 3,5"-Einschüben nur mit Klebeband ...

Netzwerke
Frage zu VoIP-VLAN und
gelöst Frage von darkness08Netzwerke15 Kommentare

Hallo, in einem anderen Beitrag hatte ich gefragt, wie ich UDP bzw. RTP in ein anderes VLAN Route. Dazu ...