Lépjen a 2FA-ra (kéttényezős hitelesítés az ASA SSL VPN-hez)

Egyre gyakrabban merül fel az igény, hogy távoli hozzáférést biztosítsanak a vállalati környezethez, függetlenül attól, hogy az Ön felhasználóinak vagy partnereinek van szüksége a szervezet egy adott szerveréhez való hozzáférésre.

E célokra a legtöbb vállalat VPN-technológiát használ, amely megbízhatóan védett módnak bizonyult a szervezet helyi erőforrásaihoz való hozzáférés biztosítására.

Cégem sem volt kivétel, és mi is, mint sokan mások, használjuk ezt a technológiát. És sok máshoz hasonlóan mi is a Cisco ASA 55xx-et használjuk távelérési átjáróként.

A távoli felhasználók számának növekedésével a hitelesítési adatok kiadásának egyszerűsítésére van szükség. De ugyanakkor ezt a biztonság veszélyeztetése nélkül kell megtenni.

Saját magunk számára a Cisco SSL VPN-en keresztüli csatlakozáshoz kétfaktoros hitelesítésben találtunk megoldást, egyszeri jelszavak használatával. Ez a kiadvány pedig elárulja, hogyan lehet megszervezni egy ilyen megoldást minimális idő és a szükséges szoftver költsége nélkül (feltéve, hogy az infrastruktúrájában már van Cisco ASA).

A piac bővelkedik az egyszeri jelszavak generálására szolgáló dobozos megoldásokban, miközben számos lehetőséget kínál ezek megszerzésére, legyen szó SMS-ben történő jelszóküldésről vagy tokenek használatáról, hardveres és szoftveres (például mobiltelefonon) egyaránt. De a megtakarítási vágy és a munkaadóm pénzmegtakarítási vágya a jelenlegi válságban arra késztetett, hogy ingyenes utat találjak az egyszeri jelszavak generálására szolgáló szolgáltatás megvalósítására. Ami ugyan ingyenes, de nem sokkal alacsonyabb a kereskedelmi megoldásoknál (itt érdemes leszögezni, hogy ennek a terméknek is van kereskedelmi verziója, de megegyeztünk, hogy pénzben kifejezett költségünk nulla lesz).

Tehát szükségünk van:

- Linux image beépített eszközkészlettel - multiOTP, FreeRADIUS és nginx, a kiszolgáló webes eléréséhez (http://download.multiotp.net/ - VMware-hez egy kész képet használtam)
— Active Directory Server
— Maga a Cisco ASA (a kényelem kedvéért ASDM-et használok)
— Bármilyen szoftver token, amely támogatja a TOTP mechanizmust (én például a Google Authenticatort használom, de ugyanaz a FreeOTP is megteszi)

Nem részletezem, hogyan alakul a kép. Ennek eredményeként megkapja a Debian Linuxot a már telepített multiOTP-vel és a FreeRADIUS-szal, amely együtt működik együtt, valamint egy webes felületet az OTP-adminisztrációhoz.

1. lépés: Elindítjuk a rendszert, és beállítjuk a hálózatához
Alapértelmezés szerint a rendszer root root hitelesítő adatokkal érkezik. Szerintem mindenki sejtette, hogy az első bejelentkezés után érdemes lenne megváltoztatni a root felhasználó jelszavát. Módosítania kell a hálózati beállításokat is (alapértelmezés szerint '192.168.1.44', '192.168.1.1' átjáróval). Ezt követően újraindíthatja a rendszert.

Hozzon létre egy felhasználót az Active Directoryban OTP, jelszóval MySuperPassword.

2. lépés: Állítsa be a kapcsolatot és importálja az Active Directory-felhasználókat
Ehhez hozzá kell férnünk a konzolhoz, és közvetlenül a fájlhoz multiotp.php, melynek segítségével konfiguráljuk az Active Directory kapcsolati beállításait.

Menjen a könyvtárba /usr/local/bin/multiotp/ és egymás után hajtsa végre a következő parancsokat:

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

Meghatározza, hogy szükség van-e további (állandó) tűre az egyszeri PIN (0 vagy 1) megadásához

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

Meghatározza, hogy szükség van-e tartományjelszóra az egyszeri PIN-kód megadásakor (0 vagy 1)

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

Az LDAP szerver típusa meg van jelölve (0 = normál LDAP szerver, esetünkben 1 = Active Directory)

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

Megadja a felhasználónév megjelenítési formátumát (ez az érték csak a nevet jeleníti meg, a domain nélkül)

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

Ugyanaz, csak egy csoport számára

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

Meghatároz egy módszert annak meghatározására, hogy egy felhasználó csoporthoz tartozik-e

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

Használjak-e biztonságos kapcsolatot az LDAP szerverrel (természetesen – igen!)

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

Port az LDAP szerverhez való csatlakozáshoz

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

Az Active Directory-kiszolgáló címe

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

Megjelöljük, hol kezdje el a felhasználók keresését a domainben

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

Adja meg azt a felhasználót, akinek keresési joga van az Active Directoryban

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

Adja meg a felhasználói jelszót az Active Directoryhoz való csatlakozáshoz

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

Az Active Directoryhoz való csatlakozás időkorlátjának beállítása

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

Időkorlátot állítottunk be a felhasználói importálási művelethez

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

Az Active Directory kapcsolatkonfiguráció aktiválása

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

A felhasználókat az Active Directoryból importáljuk

3. lépés: Generáljon QR-kódot a tokenhez
Itt minden rendkívül egyszerű. Nyissa meg az OTP szerver webes felületét a böngészőben, jelentkezzen be (ne felejtse el megváltoztatni a rendszergazda alapértelmezett jelszavát!), majd kattintson a „Nyomtatás” gombra:

Lépjen a 2FA-ra (kéttényezős hitelesítés az ASA SSL VPN-hez)
A művelet eredménye egy oldal lesz, amely két QR-kódot tartalmaz. Az elsőt bátran figyelmen kívül hagyjuk (hiába a tetszetős Google Authenticator / Authenticator / 2 Steps Authenticator felirat), és ismét bátran szkenneljük a második kódot egy szoftveres tokenbe a telefonon:

Lépjen a 2FA-ra (kéttényezős hitelesítés az ASA SSL VPN-hez)
(igen, szándékosan rontottam el a QR kódot, hogy olvashatatlanná tegye).

A műveletek elvégzése után harminc másodpercenként hatjegyű jelszó generálódik az alkalmazásban.

Az biztos, hogy ugyanazon a felületen ellenőrizheti:

Lépjen a 2FA-ra (kéttényezős hitelesítés az ASA SSL VPN-hez)
Felhasználónevének és egyszeri jelszavának megadásával a telefon alkalmazásából. Pozitív választ kaptál? Tehát továbbmegyünk.

4. lépés: A FreeRADIUS működésének további beállítása és tesztelése
Amint fentebb említettem, a multiOTP már be van állítva a FreeRADIUS-szal való együttműködésre, csak tesztek futtatása van hátra, és a VPN-átjárónk adatait adjuk hozzá a FreeRADIUS konfigurációs fájlhoz.

Visszatérünk a szerverkonzolra, a könyvtárba /usr/local/bin/multiotp/, belép:

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

Beleértve a részletesebb naplózást.

A FreeRADIUS kliens konfigurációs fájljában (/etc/freeradius/clinets.conf) írjon megjegyzésbe minden ehhez kapcsolódó sort localhost és adjunk hozzá két bejegyzést:

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

- teszthez

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

— VPN-átjárónk számára.

Indítsa újra a FreeRADIUS-t, és próbáljon meg bejelentkezni:

radtest username 100110 localhost 1812 testing321

ahol felhasználónév = felhasználónév, 100110 = a telefonos alkalmazás által megadott jelszó, localhost = RADIUS szervercím, 1812 — RADIUS szerverport, testing321 — RADIUS szerver kliens jelszó (amit a konfigurációban adtunk meg).

A parancs eredménye körülbelül a következőképpen jelenik meg:

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

Most meg kell győződnünk a felhasználó sikeres hitelesítéséről. Ehhez megnézzük magát a multiotp naplóját:

tail /var/log/multiotp/multiotp.log

És ha ott van az utolsó bejegyzés:

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

Aztán minden jól ment, és befejezhetjük

5. lépés: A Cisco ASA konfigurálása
Egyezzünk meg abban, hogy már van egy konfigurált csoportunk és házirendünk az SLL VPN-en keresztüli hozzáféréshez, az Active Directoryval együtt konfigurálva, és ehhez a profilhoz kéttényezős hitelesítést kell hozzáadnunk.

1. Új AAA szervercsoport hozzáadása:

Lépjen a 2FA-ra (kéttényezős hitelesítés az ASA SSL VPN-hez)
2. Adja hozzá multiOTP szerverünket a csoporthoz:

Lépjen a 2FA-ra (kéttényezős hitelesítés az ASA SSL VPN-hez)
3. Szerkesztünk csatlakozási profil, az Active Directory kiszolgálócsoport beállítása fő hitelesítési kiszolgálóként:

Lépjen a 2FA-ra (kéttényezős hitelesítés az ASA SSL VPN-hez)
4. A lapon Speciális -> Hitelesítés Kiválasztjuk az Active Directory szervercsoportot is:

Lépjen a 2FA-ra (kéttényezős hitelesítés az ASA SSL VPN-hez)
5. A lapon Haladó -> Másodlagos hitelesítés, válassza ki a létrehozott szervercsoportot, amelyben a multiOTP szerver regisztrálva van. Vegye figyelembe, hogy a munkamenet-felhasználónév az elsődleges AAA-kiszolgálócsoporttól öröklődik:

Lépjen a 2FA-ra (kéttényezős hitelesítés az ASA SSL VPN-hez)
Alkalmazza a beállításokat és

6. lépés, más néven az utolsó
Nézzük meg, hogy működik-e a kéttényezős hitelesítés SLL VPN esetén:

Lépjen a 2FA-ra (kéttényezős hitelesítés az ASA SSL VPN-hez)
Voálá! Ha a Cisco AnyConnect VPN Client segítségével csatlakozik, egy második, egyszeri jelszót is meg kell adnia.

Remélem, hogy ez a cikk segít valakinek, és valakinek elgondolkodtatót ad a használatáról, ingyenes OTP szerver, egyéb feladatokhoz. Oszd meg a megjegyzésekben, ha szeretnéd.

Forrás: will.com

Hozzászólás