Möglich? OpenVPN-Server, der sowohl eine zertifikats- als auch eine kennwortbasierte Anmeldung erfordert (über die Tomato-Router-Firmware)

8

Ich habe Shibbys Build von Tomato (64k NVRAM-Version) auf meinem Asus N66U-Router verwendet, um einen OpenVPN-Server auszuführen.

Ich bin gespannt , ob es zu dieser Einrichtung haben OpenVPN - Server möglich ist , sowohl ein Zertifikat zu verlangen und einen Benutzernamen / Passwort , bevor ein Benutzer zugreifen darf.

Ich habe festgestellt, dass beim Ausfüllen der Zertifikatdetails ein Eintrag "Passwort eingeben" vorhanden ist, aber jeder sagt, dass er das Feld "oder sonst" leer lassen soll. Ich habe keine Ahnung warum und kann keine Erklärung finden. Außerdem habe ich dieses Problem bei Google häufig behoben und festgestellt, dass Leute über ein PAM-Modul für OpenVPN sprechen, um sich über Benutzername / Passwort zu authentifizieren. Dies schien jedoch eine Entweder-Oder-Option zu sein. Mit anderen Worten, ich kann die Authentifizierung über Benutzername / Passwort ODER Zertifikat erzwingen . Ich möchte beides benötigen.

Ist das möglich? Wenn das so ist, wie?

Eric
quelle

Antworten:

4

Die OpenVPN - Funktion , die Sie suchen, die dem Server zu authentifizieren Clients auf Basis ermöglicht sowohl ihr Zertifikat und einen Berechtigungsnachweis ist auth-user-pass-verify. Mit dieser Funktion kann der Server den vom Remotebenutzer bereitgestellten Benutzernamen / das Kennwort an ein Skript übergeben, das die Authentifizierung durchführt. An diesem Punkt können Sie die Anmeldeinformationen gegen alles überprüfen, was Sie möchten - PAM, RADIUS, LDAP, Rauchsignale usw.

Ich weiß nichts über die "Tomato" -Firmware, daher werde ich hier nicht einmal versuchen, Ihnen Schritt für Schritt eine Anleitung zu geben. Ich habe schnell gesucht und vermute, dass Sie die OpenVPN-Option "Benutzerdefinierte Konfiguration" verwenden können, um eine auth-user-pass-verifyReferenz einzuschließen. Sie benötigen ein Skript, um die Authentifizierung durchzuführen.

Wenn Sie etwas suchen, werden Sie vermutlich "Tomato" -spezifische Referenzen finden.

Evan Anderson
quelle
2

Das Challenge-Passwort ist eine Passphrase, mit der der Schlüssel entschlüsselt werden kann. Nur so können Sie wirklich ein "Passwort" und einen Schlüssel erstellen.

Sie können wirklich nur mit Passwort oder Schlüssel überprüfen , nicht mit beiden. Wenn Sie beide Methoden aktiviert haben, wird zuerst die Schlüsselauthentifizierung versucht. Wenn dies fehlschlägt, wird auf die Kennwortauthentifizierung zurückgegriffen.

Das Fehlen einer Passphrase für einen Schlüssel erleichtert es jemandem, Ihre Identität nachzuahmen, wenn er zufällig den Schlüssel erhält.

Ich würde vorschlagen, herauszufinden, warum das Interwebz sagt, dass Sie keine Passphrasen für Schlüssel verwenden sollten, und zu prüfen, ob dies tatsächlich ein Problem ist.

Tacotuesday
quelle
Ja, das ist es, was ich nicht beantworten konnte. Hoffentlich kann uns jemand anderes in dieser Hinsicht aufklären; es scheint ein kontraintuitiver Vorschlag zu sein.
Eric
Gibt es in der Zwischenzeit eine quantifizierbare Möglichkeit, die Stärke eines Zertifikats + einer Anforderung nur mit einer Kombination aus Benutzername und Passwort zu vergleichen? Ich gehe davon aus, dass Größenordnungen schwieriger zu knacken sind, aber das ist nur eine Annahme, die auf meinem Indizienwissen basiert.
Eric
Dies ist eine alte Antwort, aber ... Das ist und ist nicht das Challenge-Passwort. Sie können eine Passphrase verwenden, um einen Schlüssel zu schützen, wie oben beschrieben, aber das Challenge-Passwort hat nichts damit zu tun. Es wird weder im Zertifikat noch im Schlüssel gespeichert, sondern bei der Zertifizierungsstelle aufbewahrt. Es ist vorgesehen, wenn Sie die Zertifizierungsstelle verwenden, um den Schlüssel zu widerrufen oder einen Ersatz auszugeben.
Jack B
2

auth-user-pass-verify ist das Richtige. Darüber hinaus können Sie erzwingen, dass der Benutzername des Auth-Benutzers der zertifizierte CN sein muss. Sie können auch openvpn zwingen, jeweils nur eine Verbindung pro Zertifikat herzustellen.

Auf diese Weise muss ein "Mimic" den richtigen Benutzer im Vergleich zum Certc CN und den richtigen Pass haben und sich zu einem Zeitpunkt anmelden, zu dem der tatsächliche Eigentümer dies tut

Darüber hinaus können Sie über ein IDS nachdenken. Je nachdem, welches Sie auswählen, können Sie es dort sogar eingrenzen, z. B. zulässige externe IP-Bereiche, Anmeldezeiten usw.

Jedes exponierte Zertifikat sollte sofort widerrufen werden. Der Signaturserver sollte nicht im Netz sein - Übertragungsschlüssel per USB - dann haben Sie einen wirklich engen, sicheren Zugriff.

und nein du solltest kein Zertifikat passwortieren.

  1. Einfach zu bruteforce.
  2. Sie können einen Benutzer nicht sperren (der Zertifikatspass ist nur offline).
  3. Die Leute verlieren ständig ihre Passwörter und müssen jedes Mal ein Zertifikat widerrufen und neu erstellen - ein großes Risiko, dass es viele Zertifikate gibt, bei denen Sie den Widerruf manchmal vergessen.

Aber wenn Sie wirklich wollen, können Sie auth-user und cert password gleichzeitig verwenden, es gibt keinen Fallback oder so.

Zuerst verwendet openvpn das Zertifikatskennwort, um den privaten Schlüssel zu entschlüsseln, um eine Verbindung herzustellen. Wenn der Berechtigungsnachweis falsch ist, sind Sie nicht da.

Wenn ein Angreifer jedoch die regulären Anmeldeinformationen erhält, sind Sie bereits in Schwierigkeiten und die Chancen stehen gut, dass er auch das Zertifikat-Passwort erhalten hat.

Ich sehe hier also keinen wirklichen Vorteil, nur viele Nachteile und ein falsches Gefühl von mehr Sicherheit.

wie auch immer
quelle
0

Ich habe dieses Tutorial (mit TomatoUSB Shibby 1.28 auf meinem Asus N66U) befolgt: http://www.dd-wrt.com/wiki/index.php/OpenVPN Dies kann Ihnen sehr helfen.

AndyZ
quelle
2
AndyZ - Willkommen bei SF, aber wir möchten, dass die Antworten hier mehr Substanz enthalten als nur einen Link (der mit dem Alter verrotten kann). Wenn Sie diese Antwort überarbeiten können, um die wichtigen Teile der Methode, die Sie befolgt haben, sowie den Link zum Artikel zu enthalten, könnte dies eine wirklich gute Antwort sein.
MadHatter