Gehen Sie zu 2FA (Zwei-Faktor-Authentifizierung für ASA SSL VPN)

Der Bedarf, Fernzugriff auf eine Unternehmensumgebung bereitzustellen, wird immer häufiger, unabhängig davon, ob Ihre Benutzer oder Partner Zugriff auf einen bestimmten Server in Ihrem Unternehmen benötigen.

Zu diesem Zweck nutzen die meisten Unternehmen die VPN-Technologie, die sich als zuverlässig geschützte Methode für den Zugriff auf die lokalen Ressourcen des Unternehmens erwiesen hat.

Mein Unternehmen war keine Ausnahme und wir nutzen diese Technologie wie viele andere auch. Und wie viele andere nutzen wir Cisco ASA 55xx als Remote Access Gateway.

Da die Anzahl der Remote-Benutzer zunimmt, besteht die Notwendigkeit, das Verfahren zur Ausstellung von Anmeldeinformationen zu vereinfachen. Gleichzeitig muss dies jedoch ohne Beeinträchtigung der Sicherheit erfolgen.

Für uns selbst haben wir eine Lösung gefunden, indem wir für die Verbindung über Cisco SSL VPN eine Zwei-Faktor-Authentifizierung unter Verwendung von Einmalkennwörtern verwenden. Und in dieser Veröffentlichung erfahren Sie, wie Sie eine solche Lösung mit minimalem Zeitaufwand und ohne Kosten für die erforderliche Software organisieren können (vorausgesetzt, Sie verfügen bereits über Cisco ASA in Ihrer Infrastruktur).

Der Markt ist voll von Boxlösungen zur Generierung von Einmalpasswörtern und bietet gleichzeitig zahlreiche Möglichkeiten, diese zu erhalten, sei es durch den Versand des Passworts per SMS oder die Verwendung von Token, sowohl Hardware als auch Software (z. B. auf einem Mobiltelefon). Aber der Wunsch, Geld zu sparen, und der Wunsch, Geld für meinen Arbeitgeber zu sparen, zwangen mich in der aktuellen Krise dazu, einen kostenlosen Weg zu finden, einen Dienst zur Generierung von Einmalpasswörtern zu implementieren. Das ist zwar kostenlos, steht kommerziellen Lösungen aber nicht viel nach (hier sollten wir einen Vorbehalt machen und beachten, dass dieses Produkt auch eine kommerzielle Version hat, aber wir waren uns einig, dass unsere Kosten, in Geld, Null sein werden).

Also, wir brauchen:

– Ein Linux-Image mit einem integrierten Satz an Tools – multiOTP, FreeRADIUS und nginx, für den Zugriff auf den Server über das Web (http://download.multiotp.net/ – ich habe ein fertiges Image für VMware verwendet)
– Active Directory-Server
– Cisco ASA selbst (der Einfachheit halber verwende ich ASDM)
— Jedes Software-Token, das den TOTP-Mechanismus unterstützt (ich verwende zum Beispiel Google Authenticator, aber das gleiche FreeOTP reicht aus)

Ich werde nicht näher darauf eingehen, wie sich das Bild entwickelt. Als Ergebnis erhalten Sie Debian Linux mit bereits installiertem, für die Zusammenarbeit konfiguriertem MultiOTP und FreeRADIUS sowie einer Weboberfläche zur Verwaltung von OTP.

Schritt 1. Wir initiieren das System und konfigurieren es für Ihr Netzwerk
Standardmäßig verfügt das System über Root-Root-Anmeldeinformationen. Ich denke, jeder hat vermutet, dass es eine gute Idee wäre, das Root-Benutzerkennwort nach der ersten Anmeldung zu ändern. Sie müssen auch die Netzwerkeinstellungen ändern (standardmäßig ist es „192.168.1.44“ mit dem Gateway „192.168.1.1“). Anschließend können Sie das System neu starten.

Lassen Sie uns einen Benutzer in Active Directory erstellen oTP, mit Passwort MeinSuperPassword.

Schritt 2: Richten Sie die Verbindung ein und importieren Sie Active Directory-Benutzer
Dazu benötigen wir Zugriff auf die Konsole und direkt auf die Datei multiotp.php, mit dem wir Verbindungseinstellungen zu Active Directory konfigurieren.

Gehen Sie zum Verzeichnis /usr/local/bin/multiotp/ und führen Sie nacheinander die folgenden Befehle aus:

./multiotp.php -config default-request-prefix-pin=0

Legt fest, ob bei der Eingabe eines Einmal-Pins (0 oder 1) ein zusätzlicher (permanenter) Pin erforderlich ist.

./multiotp.php -config default-request-ldap-pwd=0

Legt fest, ob bei der Eingabe einer Einmal-PIN (0 oder 1) ein Domänenkennwort erforderlich ist.

./multiotp.php -config ldap-server-type=1

Der Typ des LDAP-Servers wird angezeigt (0 = regulärer LDAP-Server, in unserem Fall 1 = Active Directory)

./multiotp.php -config ldap-cn-identifier="sAMAccountName"

Gibt das Format an, in dem der Benutzername dargestellt werden soll (dieser Wert zeigt nur den Namen ohne die Domäne an).

./multiotp.php -config ldap-group-cn-identifier="sAMAccountName"

Das Gleiche, nur für eine Gruppe

./multiotp.php -config ldap-group-attribute="memberOf"

Gibt eine Methode zur Bestimmung an, ob ein Benutzer einer Gruppe angehört

./multiotp.php -config ldap-ssl=1

Sollte ich eine sichere Verbindung zum LDAP-Server verwenden (natürlich – ja!)

./multiotp.php -config ldap-port=636

Port für die Verbindung zum LDAP-Server

./multiotp.php -config ldap-domain-controllers=adSRV.domain.local

Ihre Active Directory-Serveradresse

./multiotp.php -config ldap-base-dn="CN=Users,DC=domain,DC=local"

Wir geben an, wo mit der Suche nach Benutzern in der Domain begonnen werden soll

./multiotp.php -config ldap-bind-dn="[email protected]"

Geben Sie einen Benutzer an, der über Suchrechte in Active Directory verfügt

./multiotp.php -config ldap-server-password="MySuperPassword"

Geben Sie das Benutzerkennwort für die Verbindung mit Active Directory an

./multiotp.php -config ldap-network-timeout=10

Festlegen des Timeouts für die Verbindung mit Active Directory

./multiotp.php -config ldap-time-limit=30

Wir legen ein Zeitlimit für den Benutzerimportvorgang fest

./multiotp.php -config ldap-activated=1

Aktivieren der Active Directory-Verbindungskonfiguration

./multiotp.php -debug -display-log -ldap-users-sync

Wir importieren Benutzer aus Active Directory

Schritt 3. Generieren Sie einen QR-Code für das Token
Hier ist alles extrem einfach. Öffnen Sie das Webinterface des OTP-Servers im Browser, melden Sie sich an (vergessen Sie nicht, das Standardpasswort für den Admin zu ändern!) und klicken Sie auf die Schaltfläche „Drucken“:

Gehen Sie zu 2FA (Zwei-Faktor-Authentifizierung für ASA SSL VPN)
Das Ergebnis dieser Aktion ist eine Seite, die zwei QR-Codes enthält. Den ersten davon ignorieren wir mutig (trotz der attraktiven Aufschrift Google Authenticator / Authenticator / 2 Steps Authenticator) und scannen erneut mutig den zweiten Code in einen Software-Token auf dem Telefon:

Gehen Sie zu 2FA (Zwei-Faktor-Authentifizierung für ASA SSL VPN)
(Ja, ich habe den QR-Code absichtlich unleserlich gemacht).

Nach Abschluss dieser Aktionen wird alle dreißig Sekunden ein sechsstelliges Passwort in Ihrer Anwendung generiert.

Natürlich können Sie es in derselben Schnittstelle überprüfen:

Gehen Sie zu 2FA (Zwei-Faktor-Authentifizierung für ASA SSL VPN)
Geben Sie Ihren Benutzernamen und Ihr Einmalpasswort über die Anwendung auf Ihrem Telefon ein. Haben Sie eine positive Antwort erhalten? Also machen wir weiter.

Schritt 4. Zusätzliche Konfiguration und Tests des FreeRADIUS-Betriebs
Wie ich oben erwähnt habe, ist multiOTP bereits für die Zusammenarbeit mit FreeRADIUS konfiguriert. Jetzt müssen nur noch Tests durchgeführt und Informationen zu unserem VPN-Gateway zur FreeRADIUS-Konfigurationsdatei hinzugefügt werden.

Wir kehren zur Serverkonsole zurück, zum Verzeichnis /usr/local/bin/multiotp/, eingeben:

./multiotp.php -config debug=1
./multiotp.php -config display-log=1

Inklusive detaillierterer Protokollierung.

In der Konfigurationsdatei des FreeRADIUS-Clients (/etc/freeradius/clinets.conf) Kommentieren Sie alle Zeilen aus, die sich darauf beziehen localhost und fügen Sie zwei Einträge hinzu:

client localhost {
        ipaddr = 127.0.0.1
        secret          = testing321
        require_message_authenticator = no
}

- zum Testen

client 192.168.1.254/32 {
        shortname =     CiscoASA
        secret =        ConnectToRADIUSSecret
}

— für unser VPN-Gateway.

Starten Sie FreeRADIUS neu und versuchen Sie, sich anzumelden:

radtest username 100110 localhost 1812 testing321

wo Benutzername = Benutzername, 100110 = Passwort, das uns von der Anwendung am Telefon mitgeteilt wurde, localhost = RADIUS-Serveradresse, 1812 — RADIUS-Server-Port, testing321 – RADIUS-Server-Client-Passwort (das wir in der Konfiguration angegeben haben).

Das Ergebnis dieses Befehls wird ungefähr wie folgt ausgegeben:

Sending Access-Request of id 44 to 127.0.0.1 port 1812
        User-Name = "username"
        User-Password = "100110"
        NAS-IP-Address = 127.0.1.1
        NAS-Port = 1812
        Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=44, length=20

Jetzt müssen wir sicherstellen, dass der Benutzer erfolgreich authentifiziert wurde. Dazu schauen wir uns das Protokoll von multiotp selbst an:

tail /var/log/multiotp/multiotp.log

Und wenn der letzte Eintrag dort ist:

2016-09-01 08:58:17     notice  username  User    OK: User username successfully logged in from 127.0.0.1
2016-09-01 08:58:17     debug           Debug   Debug: 0 OK: Token accepted from 127.0.0.1

Dann hat alles gut geklappt und wir können fertig werden

Schritt 5: Cisco ASA konfigurieren
Lassen Sie uns zustimmen, dass wir bereits über eine konfigurierte Gruppe und Richtlinien für den Zugriff über SLL VPN verfügen, die in Verbindung mit Active Directory konfiguriert sind, und dass wir für dieses Profil eine Zwei-Faktor-Authentifizierung hinzufügen müssen.

1. Fügen Sie eine neue AAA-Servergruppe hinzu:

Gehen Sie zu 2FA (Zwei-Faktor-Authentifizierung für ASA SSL VPN)
2. Fügen Sie unseren MultiOTP-Server zur Gruppe hinzu:

Gehen Sie zu 2FA (Zwei-Faktor-Authentifizierung für ASA SSL VPN)
3. Regel Verbindungsprofil, Festlegen der Active Directory-Servergruppe als Hauptauthentifizierungsserver:

Gehen Sie zu 2FA (Zwei-Faktor-Authentifizierung für ASA SSL VPN)
4. Auf der Registerkarte Erweitert Erweitert -> Authentifizierung Wir wählen auch die Active Directory-Servergruppe aus:

Gehen Sie zu 2FA (Zwei-Faktor-Authentifizierung für ASA SSL VPN)
5. Auf der Registerkarte Erweitert Erweitert -> Sekundär Wählen Sie zur Authentifizierung die erstellte Servergruppe aus, in der der MultiOTP-Server registriert ist. Beachten Sie, dass der Sitzungsbenutzername von der primären AAA-Servergruppe geerbt wird:

Gehen Sie zu 2FA (Zwei-Faktor-Authentifizierung für ASA SSL VPN)
Übernehmen Sie die Einstellungen und

Schritt 6, auch bekannt als der letzte
Lassen Sie uns prüfen, ob die Zwei-Faktor-Authentifizierung für SLL VPN funktioniert:

Gehen Sie zu 2FA (Zwei-Faktor-Authentifizierung für ASA SSL VPN)
Voila! Wenn Sie eine Verbindung über den Cisco AnyConnect VPN Client herstellen, werden Sie außerdem nach einem zweiten Einmalpasswort gefragt.

Ich hoffe, dass dieser Artikel jemandem hilft und dass er jemanden zum Nachdenken darüber anregt, wie man ihn verwenden kann. kostenlos OTP-Server für andere Aufgaben. Teilen Sie es in den Kommentaren, wenn Sie möchten.

Source: habr.com

Kommentar hinzufügen