SecSign ID Plugin: SSH PAM

16.12.2016 5 Minuten Lesedauer

Zwei-Faktor Authentifizierung für SSH PAM

Die Pluggable Authentication Modules (PAM) sind eine Softwarebibliothek, die eine allgemeine Programmierschnittstelle für Authentifizierungsdienste zur Verfügung stellt. Statt die Einzelheiten der Authentifizierung in jeder Applikation neu zu formulieren, bietet die PAM-API einen standardisierten Dienst in Form von Modulen an. In einer Konfigurationsdatei können die Module einzelnen Diensten zugeordnet werden, ohne dafür die Software, die diese Dienste realisiert, neu kompilieren zu müssen. PAM steht inzwischen auf AIX, HP-UX, Solaris, Linux, FreeBSD, NetBSD, Mac OS X und DragonFly BSD zur Verfügung.

PAM Überblick
Integration

Integration des Plugins in Ihr Setup

SecSign ID Integration

Please configure your desired integration of the SecSign ID Two Factor Authentication

Choose a system, where you want to add the secure login

Do you need your own ID Server inside your protected network or prefer if we manage and maintain it for you

The location to save the assigned SecSign IDs to a user account or the IDM alltogether

System to protect
?
The System you want to protect - Choose a system, where you want to add the secure login
SecSign ID Server location
?
Do you need your own ID Server inside your protected network or prefer if we manage and maintain it for you
User account location
?
The system to save the assigned SecSign IDs to a user account or the IDM alltogether
edit the settings to change the integration
Authentication
2FA
2FA blind
2FA no AP
2SA
2SA no AP
2SA blind
OTP
Enrollment
Custom ID
Pattern
IDP Custom Website
Enrollment initiated by SP
Enrollment with IDM
Show Network
Hide Network
Fullscreen
Request Solution
x
The authentication was successful
Installation und Konfiguration

Installation und Konfiguration

Bevor Sie damit beginnen das SecSignID PAM als Authentifizierung für SSH zu nutzen, lesen Sie sich bitte das SecSign ID PAM Tutorial durch und befolgen die Schritte 3-5 um das PAM korrekt zu konfigurieren und installieren.

Kurzversion der Konfiguration und Installation:

  1. libcurl und gcc werden vorausgesetzt
  2. SecSignID PAM anfragen und entpacken
  3. Pfade zur Konfigurationsdatei in secsign.c anpassen
  4. Namen aller Nutzer und dazugehörige SecSignIDs in secsignid.config eintragen
  5. make
  6. Die kompilierte Datei pam_secsignid.so in die PAM Bibliothek kopieren (normalerweise /lib/security)


Konfiguration mit SSH

Konfiguration mit SSH

Abhängig von System, Login Vorraussetzungen und OpenSSH Version können folgende Schritte abweichen:

Public Key mit Keyboard interactive 2FA (Beispiel in RHEL):
Nach OpenSSH Version 6.2 kann der Konfigurationsparameter AuthenticationMethods genutzt werden. Öffnen Sie die Konfigurationsdatei /etc/ssh/sshd_config und ändern sie folgende Parameter:

PubkeyAuthentication yes
PasswordAuthentication no
PermitEmptyPasswords no
AuthenticationMethods publickey,keyboard-interactive
ChallengeResponseAuthentication yes
UsePAM yes

Öffnen Sie dann die Konfigurationsdatei für die SSHd PAM Einstellungen /etc/pam.d/sshd und ändern sie den PAM Ablauf entspechend ab:

auth  required  pam_sepermit.so
#auth  substack  password-auth
auth  required  pam_env.so
auth  required  pam_secsignid.so
auth  include  postlogin

Tauschen sie die Keys mit dem Server und Client aus und starten sie den sshd Service neu

service sshd restart

Bauen Sie eine Verbindung zum SSH Server auf und testen Sie die SecSignID Zwei-Faktor Authentifizierung.

Passwort mit 2FA (Beispiel in Ubuntu):

Öffnen Sie die Konfigurationsdatei /etc/ssh/sshd_config und aktivieren Sie die Verwendung von PAM:

UsePAM yes

Öffnen Sie dann die Konfigurationsdatei für die SSHd PAM Einstellungen /etc/pam.d/sshd, kommentieren Sie den Eintrag unter „Standard Un*x authentication“ aus und fügen Sie folgendes ein:

# PAM configuration for the Secure Shell service
# Standard Un*x authentication.
auth  [success=1 default=ignore] pam_secsignid.so
auth  requisite pam_deny.so
auth  required pam_permit.so
#@include common-auth 

Speichern Sie die Datei und starten Sie den SSH Server neu.

Bauen Sie eine Verbindung zum SSH Server auf, geben sie ihr Passwort ein und testen Sie die SecSignID Zwei-Faktor Authentifizierung.

Fehlerquellen

Fehlerquellen

Fehler beim Kompilieren

Die Bibliothek libcurl muss im Standart Pfad installiert sein, ansonsten schlägt make fehl. Befindet sich libcurl außerhalb der Standart Pfade, muss manuell kompiliert werden.

Fehler bei der Authentifizierung

Gibt es Fehler bei der Authentifizierung sollte immer der Debug- sowie der Logmodus aktiviert werden (siehe PAM Debug- & Logmodus) und die Ausgaben in eine Datei geschrieben werden, da das PAM normalerweise still ist und keine Ausgaben zulässt (sicherheitsrelevant). Werden trotzdem keine Log- oder Debug Dateien erstellt, sind die in secsignid.c angegebenen Pfade fehlerhaft bzw. es besteht kein Lese- & Schreibrecht.

Es wird dann eine Log-Datei erstellt, wo generelle Fehler aufgezeichnet werden. Arbeitet libcurl korrekt und ist der SecSignID Server erreichbar? Ist Port 443 verfügbar um mit dem Server zu kommunizieren? Wird die Konfigurationsdatei gefunden und hat das PAM Lesezugriff darauf?

Es wird eine Debug-Datei erstellt, wo die Schnittstellen Kommunikation aufgezeichnet ist. Gibt es Fehler bei der Kommunikation, weil keine SecSignID zu dem Nutzer gefunden werden kann oder gibt es Fehler bei einem der Parameter, wie serviceName?

SELinux


Mit der Benutzung dieses PAM Moduls, braucht sshd Zugriff auf mehrere Dateien, inklusive dem Ordner mit den Lock-Files. Sshd verbindet sich ausserdem mit dem ID-Server auf Port 443. Wenn sie SELinux nutzen, müssen sie Regel festlegen um diese Zugriffe zu erlauben.

Um das zu tun, suchen sie im System Log nach den Einträgen die geblockt wurden:

sudo grep denied /var/log/audit/audit.log

Vorsicht, hier können auch andere Programme Fehlermeldungen ablegen – diese nicht kopieren. Kopieren sie die entsprechenden Zeilen und führen sie den folgenden Befehl aus:

sudo audit2allow -M local << _EOF_
(paste the content)
_EOF_

Anschliessend folgendes:

semodule -i local.pp

Das erstellt eine permanente Regel für die geblockten Zugriffe, so muss SELinux nicht deaktiviert werden.

Ihr eigener ID Server

Die Inhouse Installation der SecSign ID bietet Ihnen die Flexibilität, dich mit Ihrem bevorzugten Server, Services und Geräten zu verbinden. Passen Sie die SecSignID Ihrer Unternehmensmarke an!

Mehr Erfahren
On Premise 2FA ID

Letzte Blog Einträge, Neuigkeiten & Funktionen

SecSign Portal Neuerungen

Die neuesten SecSign Portal Updates ermöglichen unseren Nutzern eine noch einfacherere und sicherere Bedienung. History Notiznotifikationen Dateien markieren Softkey Dateien beim Upload signieren Hochgeladene Da ...

Mehr Lesen

Zwei-Faktor Authentifizierung (2FA) vs. Zwei-Schritt Authentifizierung (2SA)

Zwei-Faktor Authentifizierung und Zwei-Schritt Authentifizierung sind zwei Möglichkeiten, den Login Ihrer Nutzer abzusichern. Beide Optionen können, abhängig von Ihren Anforderungen und Bedingungen, Ihren Nutzern eine sichere A ...

Mehr Lesen

Crowd SSO

Inhalt Vorbedingungen für die Einrichtung Installieren und Einrichten der einzelnen Komponenten als Server-Anwendung Einrichten von Crowd für die zentrale Benutzerverwaltung Einrichten der Applikation (z.B. JI ...

Mehr Lesen
SecSign 2FA