So verwenden Sie OPIE zum Abrufen von Einmalkennwörtern für FreeBSD 10.1

Einführung

SSH ist die beliebteste Methode, um sich remote bei einem Server anzumelden. Es ist ein kryptografisches Protokoll, das Ihr Passwort vor Man-in-the-Middle- und Replay-Angriffen schützt.

Beachten Sie jedoch, dass SSH Ihre Daten nur während der Übertragung schützt. Angreifer können Ihr SSH-Passwort auf andere Weise ermitteln, z. B. mithilfe von Keyloggern oder strategisch platzierten Kameras.

Solange Sie einen vertrauenswürdigen Computer verwenden (beispielsweise einen Computer, der Ihnen oder Ihrem Unternehmen gehört) und dies von einem sicheren Ort aus tun, müssen Sie sich über solche Angriffe keine Sorgen machen. Manchmal müssen Sie jedoch einen öffentlichen Computer verwenden. Um Ihre Passwörter in solchen Szenarien zu schützen, wird FreeBSD mit einer Sicherheitsfunktion namens One-Time Passwords In Everything (OPIE) ausgeliefert.

In diesem Tutorial erfahren Sie, wie Sie Einmalpasswörter erstellen und verwenden, um sich bei Ihrem entfernten FreeBSD-Server anzumelden. Sie können ein oder mehrere Einmalkennwörter vorab erstellen, wenn Sie sich an einem sicheren Ort befinden, und sie für einen späteren Zeitpunkt speichern, wenn Sie von einem weniger sicheren Ort aus auf Ihren Server zugreifen. Auf diese Weise ist Ihr einmaliges Kennwort für einen Angreifer auch dann nicht von Nutzen, wenn es protokolliert wird.

Voraussetzungen

Um diesem Tutorial folgen zu können, benötigen Sie:

  • Ein FreeBSD 10.1-Server, auf den über SSH zugegriffen werden kann

  • Ein Benutzer, der zu * root * wechseln darf; Der Standardbenutzer * freebsd * bei DigitalOcean ist in Ordnung

Schritt 1 - Erstellen Sie einen neuen OPIE-Benutzer

Um sicherzustellen, dass Sie nicht von Ihrem Remote-Server ausgeschlossen werden, empfiehlt es sich, einen separaten Benutzer für die Verwendung mit OPIE zu erstellen.

Wechseln Sie zu * root *, indem Sie Folgendes eingeben:

sudo su

Geben Sie Folgendes ein, um einen neuen Benutzer zu erstellen, den Sie mit Ihren Einmalkennwörtern verwenden möchten:

adduser

Sie werden aufgefordert, verschiedene Details zum Benutzer einzugeben. Lass den Benutzernamen * sammy * sein. Wenn Sie zur Eingabe des Kennworts aufgefordert werden, geben Sie ein sicheres Kennwort ein. Bei allen anderen Eingabeaufforderungen können Sie einfach + ENTER + drücken, um den Standardwert auszuwählen.

InteractiveUsername:
Full name:
Uid (Leave empty for default):
Login group [sammy]:
Login group is sammy. Invite sammy into other groups? []:
Login class [default]:
Shell (sh csh tcsh zsh nologin) [sh]:
Home directory [/home/sammy]:
Home directory permissions (Leave empty for default):
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password:
Enter password again:
Lock out the account after creation? [no]:
Username   : sammy
Password   : ****
Full Name  : My Test User
Uid        : 1001
Class      :
Groups     : sammy
Home       : /home/sammy
Shell      : /usr/local/bin/zsh
Locked     : no
OK? (yes/no):
adduser: INFO: Successfully added (sammy) to the user database.
Add another user? (yes/no):
Goodbye!

Geben Sie "+ yes " ein, um die Details zu bestätigen. Wenn Sie gefragt werden, ob Sie einen weiteren Benutzer hinzufügen möchten, geben Sie " no " ein, um " adduser +" zu beenden.

Sie können jetzt zu Ihrem ursprünglichen Benutzer zurückkehren, entweder dem Standardbenutzer * freebsd * oder Ihrem normalen sudo-Benutzer:

exit

Zu diesem Zeitpunkt sollten Sie mit Ihrem Nicht-OPIE-Benutzer sudo auf Ihrem Server angemeldet sein.

Schritt 2 - Melden Sie sich als neuer OPIE-Benutzer an

Verwenden Sie in Ihrer aktuellen Terminalsitzung "+ ssh +", um sich als * sammy *, der OPIE-Benutzer, anzumelden.

ssh @localhost

Dies ist wichtig, da die OPIE-Einrichtung nur von einem sicheren Terminal aus erfolgen kann. Wenn Sie ein unsicheres Protokoll wie "+ rsh " oder " telnet +" verwenden, wird sich OPIE beschweren.

Schritt 3 - OPIE für den neuen Benutzer aktivieren

Warnung

Um einen Benutzer zum OPIE-Authentifizierungssystem hinzuzufügen, verwenden Sie den Befehl + opiepasswd +. Die Option "+ -c +" teilt dem Befehl mit, dass Sie einen vertrauenswürdigen Computer verwenden und sich an einem sicheren Ort befinden.

opiepasswd -c

Wenn Sie zur Eingabe einer geheimen Passphrase aufgefordert werden, geben Sie eine Passphrase mit mindestens zehn Zeichen ein. Diese Passphrase sollte nicht mit dem SSH-Passwort des Benutzers identisch sein. Sie benötigen diese Passphrase später, um die Einmalpasswörter zu generieren.

Die vollständige Ausgabe des Befehls sieht folgendermaßen aus:

InteractiveAdding sammy:
Only use this method from the console; NEVER from remote. If you are using
telnet, xterm, or a dial-in, type ^C now or exit with no password.
Then run opiepasswd without the -c parameter.
Using MD5 to compute responses.
Enter new secret pass phrase:
Again new secret pass phrase:

Sie erhalten einen neuen OPIE-Startwert und eine zufällige Passphrase:

OutputID  OTP key is 499

In dieser Ausgabe ist * sammy * der Benutzer, * 499 * die iteration count und * si5509 * der seed.

Nachdem * sammy * zum OPIE-Authentifizierungssystem hinzugefügt wurde, können Sie sich nicht mehr mit dem tatsächlichen SSH-Passwort anmelden. Öffnen Sie ein neues Terminal auf Ihrem lokalen Computer und geben Sie Folgendes ein:

ssh sammy@

Sie sehen eine Eingabeaufforderung, die folgendermaßen aussieht:

Promptotp-md5 498 zi5509 ext
Password:

Sie müssen jetzt ein Einmalkennwort eingeben. Da wir noch keine Einmalpasswörter generiert haben, können Sie sich vorerst nicht anmelden. Schließen Sie das Terminal und kehren Sie zu Ihrem vorherigen Terminal zurück, in dem Sie als * sammy * angemeldet sind.

Schritt 4 - Erstellen Sie ein Einmalpasswort

Wenn ein Benutzer zum OPIE-Authentifizierungssystem hinzugefügt wird, werden dem Benutzer eine Iterationszahl ab 499 und ein zufälliger Startwert zugeordnet. Sie müssen diese Werte kennen, um ein Einmalkennwort zu generieren.

Warnung

Wenn Sie bereits als * sammy * angemeldet sind, können Sie diese Werte mit dem Befehl + opieinfo + ermitteln.

opieinfo

Die Ausgabe enthält zwei Werte. Die erste ist die Sequenznummer und die zweite ist der Keim.

Output498 zi5509

Beschriftung beachten

Übergeben Sie diese Werte an den Befehl "+ opiekey ", um Ihr Einmalkennwort zu generieren. Denken Sie daran, genau wie " opiepasswd " sollte auch " opiekey +" nur von einem vertrauenswürdigen Computer ausgeführt werden.

opiekey

Alternativ können Sie Folgendes eingeben:

opiekey `opieinfo`

Sie werden aufgefordert, die Passphrase für den OPIE-Benutzer einzugeben. Geben Sie die Passphrase ein, die Sie im vorherigen Schritt ausgewählt haben. Die Ausgabe dieses Befehls lautet wie folgt:

InteractiveUsing the MD5 algorithm to compute response.
Reminder: Don't use opiekey from telnet or dial-in sessions.
Enter secret pass phrase:

Die letzte Zeile mit sechs kurzen Wörtern ist Ihr Einmalpasswort.

Öffnen Sie ein neues Terminal, um erneut zu versuchen, sich anzumelden:

ssh sammy@

Ihre Eingabeaufforderung bleibt unverändert:

Promptotp-md5  ext
Password:

Beachten Sie, dass die in dieser Eingabeaufforderung angezeigten Zahlen mit der Ausgabe von "+ opieinfo " und den an " opiekey +" übergebenen Parametern übereinstimmen.

Jetzt können Sie entweder Ihre Passphrase einfügen oder sie manuell eingeben. Bevor Sie mit der Eingabe des langen Passworts beginnen, drücken Sie "+ ENTER", um Fehler zu vermeiden. Ihre Eingabeaufforderung ändert sich und Sie können das eingegebene Passwort sehen:

Promptotp-md5 498 zi5509 ext
Password [echo on]:

Geben Sie jetzt Ihr Einmalpasswort ein und Sie können sich als * sammy * bei Ihrem Server anmelden.

Beenden Sie die SSH-Sitzung, indem Sie "+ exit +" eingeben oder das Terminal schließen.

Öffnen Sie ein anderes Terminal und versuchen Sie, eine neue Verbindung herzustellen:

ssh sammy@

Diesmal ist die Eingabeaufforderung etwas anders.

Promptotp-md5  zi5509 ext
Password:

Wie Sie sehen, hat sich die Folgenummer geändert. Es wurde um eins dekrementiert. Sie können sich erst wieder anmelden, wenn Sie mit "+ opiekey +" ein neues Einmalkennwort mit diesen neuen Werten erstellt haben. Mit anderen Worten, Sie müssen den in * Schritt 4 * dieses Tutorials beschriebenen Vorgang noch einmal wiederholen.

Schritt 5 - Erstellen Sie mehrere Einmalpasswörter

Wenn Sie wissen, dass Sie einige Tage lang nicht in der Lage sind, einen vertrauenswürdigen Computer zu erreichen, benötigen Sie möglicherweise mehrere Einmalkennwörter, damit Sie mehrmals auf Ihren Server zugreifen können. Sie können die Anzahl der Einmalpasswörter angeben, indem Sie "+ opiekey " mit der Option " -n +" ausführen. Um beispielsweise drei Einmalpasswörter zu erstellen, geben Sie Folgendes ein:

opiekey  `opieinfo`

Note

Die Ausgabe enthält drei Kennwörter mit ihren Folgenummern:

InteractiveUsing the MD5 algorithm to compute response.
Reminder: Do not use opiekey from telnet or dial-in sessions.
Enter secret pass phrase:

Die Einmalpasswörter können auch in Form von Hexadezimalzahlen mit der Option "+ -x +" generiert werden:

opiekey  -n 3 `opieinfo`

Natürlich sehen die Passwörter jetzt weniger verständlich aus:

InteractiveUsing the MD5 algorithm to compute response.
Reminder: Do not use opiekey from telnet or dial-in sessions.
Enter secret pass phrase:

Diese sollen Sie jetzt auf ein Blatt Papier schreiben und auf Reisen mitnehmen. Wenn Sie sich das nächste Mal anmelden müssen, suchen Sie auf dem Papier das Kennwort, das der in der SSH-Eingabeaufforderung angezeigten Sequenznummer zugeordnet ist, und geben Sie es ein. Nachdem Sie ein Kennwort verwendet haben, möchten Sie es möglicherweise abstreichen. Natürlich müssen Sie sicherstellen, dass dieses Papier nicht in die falschen Hände gelangt.

Wenn Sie alle Kennwörter auf dem Papier aufgebraucht haben, wiederholen Sie diesen Schritt erneut, um weitere Kennwörter zu generieren. Wenn Sie jedoch alle 498 Passwörter verbrauchen und Ihre Sequenznummer Null wird, müssen Sie + opiepasswd -c + erneut aufrufen. Dadurch werden der Zufallsstartwert und die Sequenznummer zurückgesetzt.

Fazit

In einer realen Situation sollten Sie zuvor eine angemessene Anzahl von Kennwörtern an einem sicheren Ort vorbereiten, sie auf Papier notieren und einzeln verwenden, wenn Sie sich an einem unsicheren Ort anmelden müssen. Bewahren Sie das Papier gut auf!

In diesem Tutorial haben Sie gelernt, wie Sie sich mit dem OPIE-Authentifizierungssystem von Terminals auf nicht vertrauenswürdigen Computern aus sicher bei Ihrem entfernten FreeBSD-Server anmelden können. Sie haben gelernt, wie Sie Einmalpasswörter erstellen und bei jeder Anmeldung verwenden. Diese Funktion ist am nützlichsten für Personen, die ständig in Bewegung sind und öffentliche Computer und Netzwerke nutzen müssen.