Wie kann ich die Smartcard-SSH-Authentifizierung einrichten?

9

Ich möchte in der Lage sein, mit einer Gemalto .NET-Smartcard als Authentifizierungsmethode eine SSH-Verbindung zu meinem Computer herzustellen. Wie kann dies auf einem Fedora 13-Computer (oder einem generischen Red Hat-Computer) durchgeführt werden?

Dies sind die groben Schritte, die ich für notwendig halte:

  1. Bereitstellungszertifikat für die Smartcard (und möglicherweise eine Zertifizierungsstelle, um sie auszustellen?)
  2. Holen Sie sich das Zertifikat auf die Smartcard
  3. Konfigurieren Sie den SSH-Server so, dass die Smartcard-Authentifizierung zugelassen wird, und konfigurieren Sie ihn für die Verwendung eines bestimmten Zertifikats / einer bestimmten Zertifizierungsstelle
  4. Ein SSH-Client mit Smartcard-Unterstützung (zusätzliche Punkte für einen kostenlosen Windows-basierten Client)
Geoff Childs
quelle

Antworten:

2

Gemalto-Treiber sind jetzt Open Source, glaube ich. Sie haben den Quellcode auf ihrer Website.

Sie müssen das pamModul konfigurieren (ich bin mir nicht sicher, wie ich das machen soll, aber der Code ist auf jeden Fall da). Ich stelle mir vor, dass die pamKonfiguration eine Zuordnung eines Zertifikatsprinzips zu einer lokalen Benutzer-ID erfordern würde.

Ich glaube, GDM unterstützt jetzt Smartcards, bin mir aber nicht sicher, wie es erkannt wird. Ich werde versuchen, dies später nachzuschlagen (der einfachste Weg ist wahrscheinlich, nur einen Blick auf den gdmQuellcode zu werfen ).

Dies alles erfordert pcscdund libpcsclitemuss natürlich installiert werden. Sie werden auch die kopieren müssen libgtop11dotnet.sozu /usr/lib.

vwduder
quelle
Vielen Dank! Das hat mich auf den richtigen Weg gebracht. Es gibt hier auch einige wirklich nützliche Informationen, wenn sich jemand eine RedHat-basierte Einrichtung ansieht
Geoff Childs
Wo finden Sie die Datei libgtop11dotnet.so?
user568021
2

Ich würde Kerberos empfehlen. MIT produziert einen krb5-Client und -Server.

vwduder, können Sie einen Smartcard-Leser und eine Quelle für FIPS-201-kompatible Karten empfehlen?

http://csrc.nist.gov/publications/fips/fips201-1/FIPS-201-1-chng1.pdf

Ich habe eine Kopie auf meinem eigenen Server, aber ich bin derzeit auf diesem Stacktrace nicht populär genug, um sie mit Ihnen zu teilen. Das oben Genannte ist nur geringfügig weniger zuverlässig als unsere eigenen Server, so dass Sie es wahrscheinlich von ihnen erhalten können;)

Ich bin jetzt populär genug!

http://www.colliertech.org/state/FIPS-201-1-chng1.pdf

cjac
quelle
@vwduder versuchte zu antworten, aber er ist noch nicht Teil der geschlossenen Beta
cjac
Danke cjac! In Kombination mit dem Beitrag von vwduder denke ich, dass ich diesen geleckt habe.
Geoff Childs
Cool! Noch eine, während ich darüber nachdenke. Mein Vater bekommt Anerkennung dafür, dass er diese gefunden hat. smartcardworld.com
cjac
1

Bei Verwendung von RSA-Schlüsseln sind 1) und 2) trivial, da, wie wir in 3) sehen werden, das tatsächliche Zertifikat in diesem Zusammenhang irrelevant ist. Gehen Sie einfach zu cacert.org oder erstellen Sie ein selbstsigniertes Zertifikat, und schon sind Sie fertig.

Für 3) müssen Sie Ihren öffentlichen Schlüssel extrahieren und in $ HOME / .ssh / authorized_keys installieren. Achten Sie auf den Besitz und die Berechtigungen der Dateien! (700 für .ssh, 600 für autorisierte_Tasten). Von der hostweiten Authentifizierung mit öffentlichen Schlüsseln wird abgeraten, sie wird jedoch als Übung für neugierige Köpfe verwendet.

Zu 4) sollten Sie sich PuTTY SC ( http://www.joebar.ch/puttysc/ ) oder vorzugsweise PuTTY-CAC ( http://www.risacher.org/putty-cac/ ) ansehen, das sich verbessert PuTTY SC mit einem besseren Extraktionsalgorithmus für öffentliche Schlüssel und enthält auch die Kerberos-GSSAPI-Unterstützung aus dem Entwicklungszweig von PuTTY.

Codekopf
quelle
0

Ich habe ein Video gemacht, um zu zeigen, wie eine Smartcard mit einem Linux-Server unter Verwendung von PuttySC und SecureCRT verwendet wird . Sie können es hier ansehen: So SSH mit Ihrer Smart Card

Ich erkläre nicht, wie ein Zertifikat auf der Karte bereitgestellt wird, aber wenn Sie dies tun, denken Sie daran, dass der Administratorschlüssel der Karte mithilfe eines Kartenverwaltungssystems geändert werden sollte. Es wird für Sie viel einfacher, wenn Ihr Unternehmen Ihnen eine Smartcard zur Verfügung stellt, damit Sie sich nicht um diesen Teil kümmern müssen.

Sobald Sie die Karte bereitgestellt haben, müssen Sie den öffentlichen Schlüssel extrahieren und ihn dann zu ~ / .sshd / authorized_key hinzufügen.

Um eine Verbindung zum Server herzustellen, können Sie Tools wie PuttySC oder SecureCRT verwenden. Sie benötigen die PSKC # 11-Bibliothek für die Karte (entweder vom Smartcard-Hersteller oder von einer Open Source-Version). Konfigurieren Sie das SSH-Tool mit der Bibliothek. Es sollte es lesen und das Zertifikat finden können.

Wenn Sie sich authentifizieren, werden Sie vom Tool zur Eingabe der Smartcard-PIN aufgefordert.

Matthias Buchner
quelle