Gitt op 2FA (Zwee-Faktor Authentifikatioun fir ASA SSL VPN)

De Besoin fir Remote Zougang zu engem Firmenëmfeld ze bidden ass ëmmer méi dacks entstanen, egal ob et Är Benotzer oder Partner sinn déi Zougang zu engem bestëmmte Server an Ärer Organisatioun brauchen.

Fir dës Zwecker benotzen déi meescht Firmen VPN Technologie, déi sech als zouverlässeg geschützte Wee bewisen huet fir Zougang zu de lokale Ressourcen vun der Organisatioun ze bidden.

Meng Firma war keng Ausnahm, a mir, wéi vill anerer, benotzen dës Technologie. A wéi vill anerer benotze mir Cisco ASA 55xx als Remote Access Gateway.

Wéi d'Zuel vun de Fernbenotzer eropgeet, ass et néideg d'Prozedur fir d'Umeldungsinformatioun ze vereinfachen. Awer gläichzäiteg muss dat gemaach ginn ouni d'Sécherheet ze kompromittéieren.

Fir eis selwer hu mir eng Léisung fonnt fir zwee-Faktor Authentifikatioun ze benotzen fir iwwer Cisco SSL VPN ze verbannen, mat eemolege Passwierder. An dës Verëffentlechung wäert Iech soen wéi Dir esou eng Léisung mat minimaler Zäit an null Käschten fir déi néideg Software organiséiert (virausgesat datt Dir schonn Cisco ASA an Ärer Infrastruktur hutt).

De Maart ass voll mat Këschtléisungen fir eemoleg Passwuert ze generéieren, wärend vill Méiglechkeete fir se ze kréien, sief et d'Passwuert per SMS ze schécken oder Tokens ze benotzen, souwuel Hardware a Software (zum Beispill op engem Handy). Mä de Wonsch Suen ze spueren an de Wonsch Suen fir mäi Patron ze spueren, an der aktueller Kris, huet mech gezwongen e gratis Wee ze fannen fir e Service ëmzesetzen fir eemoleg Passwierder ze generéieren. Wat, wärend gratis, net vill méi schwaach ass wéi kommerziell Léisungen (hei sollten mir eng Reservatioun maachen, bemierken datt dëst Produkt och eng kommerziell Versioun huet, awer mir hunn eis ausgemaach datt eis Käschten, a Suen, null sinn).

Also, mir brauchen:

- E Linux Bild mat engem agebaute Set vun Tools - multiOTP, FreeRADIUS an nginx, fir Zougang zum Server iwwer de Web (http://download.multiotp.net/ - Ech hunn e fäerdegt Bild fir VMware benotzt)
- Active Directory Server
- Cisco ASA selwer (fir d'Bequemlechkeet benotzen ech ASDM)
- All Software Token deen den TOTP Mechanismus ënnerstëtzt (ech, zum Beispill, benotzen Google Authenticator, awer dee selwechte FreeOTP wäert maachen)

Ech ginn net an Detailer wéi d'Bild entfalt. Als Resultat kritt Dir Debian Linux mat MultiOTP a FreeRADIUS scho installéiert, konfiguréiert fir zesummen ze schaffen, an e Webinterface fir OTP Administratioun.

Schrëtt 1. Mir initiéieren de System an konfiguréieren et fir Ären Netz
Par défaut kënnt de System mat Root Root Umeldungsinformatiounen. Ech denken, datt jidderee geduecht huet datt et eng gutt Iddi wier de Root Benotzer Passwuert nom éischte Login z'änneren. Dir musst och d'Netzwierkastellungen änneren (par défaut ass et '192.168.1.44' mam Paart '192.168.1.1'). Duerno kënnt Dir de System nei starten.

Loosst eis e Benotzer am Active Directory erstellen otp, mat Passwuert MySuperPassword.

Schrëtt 2. Ariichten d'Verbindung an Import Active Directory Benotzer
Fir dëst ze maachen, brauche mir Zougang zu der Konsole, an direkt op d'Datei multiotp.php, benotzt déi mir Verbindungsastellungen op Active Directory konfiguréieren.

Gitt an den Dossier /usr/local/bin/multiotp/ an ausféieren déi folgend Kommandoen am Tour:

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

Bestëmmt ob en zousätzleche (permanente) Pin erfuerderlech ass wann Dir en eemolege Pin (0 oder 1) gitt

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

Bestëmmt ob en Domain Passwuert erfuerderlech ass wann Dir en eemolege Pin (0 oder 1) gitt

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

D'Zort vum LDAP-Server gëtt uginn (0 = normale LDAP-Server, an eisem Fall 1 = Active Directory)

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

Spezifizéiert de Format an deem de Benotzernumm presentéiert gëtt (dëse Wäert weist nëmmen den Numm, ouni den Domain)

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

Selwecht Saach, nëmme fir eng Grupp

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

Spezifizéiert eng Method fir ze bestëmmen ob e Benotzer zu enger Grupp gehéiert

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

Soll ech eng sécher Verbindung zum LDAP Server benotzen (natierlech - jo!)

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

Port fir d'Verbindung mam LDAP Server

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

Är Active Directory Server Adress

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

Mir weisen op wou Dir no Benotzer am Domain ufänkt ze sichen

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

Gitt e Benotzer un deen Sichrechter am Active Directory huet

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

Gitt d'Benotzerpasswuert un fir mat Active Directory ze verbannen

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

Astellung vum Timeout fir d'Verbindung mam Active Directory

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

Mir setzen eng Zäitlimit fir d'Benotzerimportoperatioun

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

Aktivéiert d'Active Directory Verbindungskonfiguratioun

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

Mir importéieren Benotzer aus Active Directory

Schrëtt 3. Generéiere engem QR Code fir den Token
Alles hei ass extrem einfach. Öffnen d'Web-Interface vum OTP-Server am Browser, loggt Iech un (vergiesst net d'Standardpasswuert fir den Admin z'änneren!), a klickt op de "Drécken" Knäppchen:

Gitt op 2FA (Zwee-Faktor Authentifikatioun fir ASA SSL VPN)
D'Resultat vun dëser Aktioun wäert eng Säit sinn déi zwee QR Coden enthält. Mir ignoréieren déi éischt vun hinnen fett (trotz der attraktiver Inscriptioun Google Authenticator / Authenticator / 2 Steps Authenticator), an nach eng Kéier schneide mir den zweete Code an e Software Token um Telefon:

Gitt op 2FA (Zwee-Faktor Authentifikatioun fir ASA SSL VPN)
(Jo, ech hunn de QR Code bewosst verwinnt fir en onliesbar ze maachen).

Nodeems Dir dës Aktiounen ofgeschloss hutt, fänkt e sechsstellege Passwuert an Ärer Applikatioun all drësseg Sekonnen ze generéieren.

Fir sécher ze sinn, kënnt Dir et an der selwechter Interface kontrolléieren:

Gitt op 2FA (Zwee-Faktor Authentifikatioun fir ASA SSL VPN)
Andeems Dir Äre Benotzernumm an eemolege Passwuert vun der Applikatioun op Ärem Telefon gitt. Hutt Dir eng positiv Äntwert kritt? Also gi mir weider.

Schrëtt 4. Zousätzlech Configuratioun an Testen vun FreeRADIUS Operatioun
Wéi ech uewen ernimmt, ass multiOTP scho konfiguréiert fir mat FreeRADIUS ze schaffen, alles wat bleift ass Tester auszeféieren an Informatioun iwwer eise VPN Paart an d'FreeRADIUS Konfiguratiounsdatei ze addéieren.

Mir ginn zréck op d'Serverkonsole, an de Verzeichnis /usr/local/bin/multiotp/, gitt:

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

Inklusiv méi detailléiert Logged.

An der FreeRADIUS Client Konfiguratiounsdatei (/etc/freeradius/clinets.conf) kommentéieren all Zeilen am Zesummenhang mat localhost a füügt zwee Entréen derbäi:

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

- fir Test

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

- fir eise VPN Gateway.

Restart FreeRADIUS a probéiert Iech aloggen:

radtest username 100110 localhost 1812 testing321

wou Benotzernumm = Benotzernumm, 100110 = Passwuert dat eis vun der Applikatioun um Telefon gëtt, localhost = RADIUS Server Adress, 1812 - RADIUS Server Hafen, testing321 - RADIUS Server Client Passwuert (wat mir an der Configuratioun uginn).

D'Resultat vun dësem Kommando gëtt ongeféier wéi follegt erausginn:

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

Elo musse mir sécherstellen datt de Benotzer erfollegräich authentifizéiert ass. Fir dëst ze maachen, wäerte mir de Log vu multiotp selwer kucken:

tail /var/log/multiotp/multiotp.log

A wann déi lescht Entrée do ass:

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

Dunn ass alles gutt gaangen a mir kënnen ofschléissen

Schrëtt 5: Cisco ASA configuréieren
Loosst eis d'accord sinn datt mir schonn eng konfiguréiert Grupp a Politik fir Zougang iwwer SLL VPN hunn, konfiguréiert a Verbindung mat Active Directory, a mir mussen zwee-Faktor Authentifikatioun fir dëse Profil addéieren.

1. Füügt eng nei AAA Server Grupp:

Gitt op 2FA (Zwee-Faktor Authentifikatioun fir ASA SSL VPN)
2. Füügt eise MultiOTP Server un de Grupp:

Gitt op 2FA (Zwee-Faktor Authentifikatioun fir ASA SSL VPN)
3. Mir änneren Verbindung Profil, Astellung vun der Active Directory Server Grupp als Haaptauthentifikatiounsserver:

Gitt op 2FA (Zwee-Faktor Authentifikatioun fir ASA SSL VPN)
4. An der Tab Fortgeschratt -> Authentifikatioun Mir wielt och den Active Directory Server Grupp:

Gitt op 2FA (Zwee-Faktor Authentifikatioun fir ASA SSL VPN)
5. An der Tab Fortgeschratt -> Secondaire Authentifikatioun, wielt déi erstallt Servergrupp an där de MultiOTP Server registréiert ass. Notéiert datt de Sessiouns Benotzernumm vun der primärer AAA Servergrupp ierflecher ass:

Gitt op 2FA (Zwee-Faktor Authentifikatioun fir ASA SSL VPN)
Fëllt d'Astellungen an

Schrëtt 6, aka déi lescht
Loosst eis kucken ob Zwee-Faktor Authentifikatioun fir SLL VPN funktionnéiert:

Gitt op 2FA (Zwee-Faktor Authentifikatioun fir ASA SSL VPN)
Voila! Wann Dir iwwer Cisco AnyConnect VPN Client verbënnt, gitt Dir och fir en zweet, eemolegt Passwuert gefrot.

Ech hoffen, datt dësen Artikel een hëlleft, an datt et engem Iesse gëtt fir ze denken wéi een dëst benotzt, fräi OTP Server, fir aner Aufgaben. Deelen an de Kommentaren wann Dir wëllt.

Source: will.com

Setzt e Commentaire