Behovet av att tillhandahÄlla fjÀrrÄtkomst till den juridiska miljön blir allt mer vanligt, oavsett om det Àr interna anvÀndare eller partners som behöver Ätkomst till en viss server i din organisation.
För dessa ÀndamÄl anvÀnder de flesta företag en VPN-teknologi som har visat sig vara ett pÄlitligt och sÀkert sÀtt att ge Ätkomst till interna resurser i organisationen.
Mitt företag Àr inget undantag, och precis som mÄnga andra anvÀnder vi denna teknologi. Och, liksom mÄnga andra, anvÀnder vi Cisco ASA 55xx som fjÀrrÄtkomstgateway.
NÀr antalet fjÀrranvÀndare ökar uppstÄr ett behov av att förenkla proceduren för att utfÀrda autentiseringsuppgifter. Men samtidigt mÄste detta göras utan att kompromissa med sÀkerheten.
För oss har vi funnit en lösning i att anvÀnda tvÄfaktorsautentisering för anslutning via Cisco SSL VPN, med anvÀndning av engÄngslösenord. Och denna publikation kommer att berÀtta hur man organiserar en sÄdan lösning med minimal tidsÄtgÄng och inga kostnader för nödvÀndig programvara (under förutsÀttning att Cisco ASA redan finns i din infrastruktur).
Marknaden Àr full av fÀrdiga lösningar för att generera engÄngslösenord, med mÄnga alternativ för att ta emot dem, vare sig det Àr via SMS eller genom att anvÀnda hÄrdvara- eller programvarutoken (som till exempel pÄ mobiltelefonen). Men strÀvan efter att spara pengar och önskemÄlet att spara pengar för sin arbetsgivare under den nuvarande krisen fick mig att hitta ett gratis sÀtt att implementera en tjÀnst för att generera engÄngslösenord. Vilken, trots sin gratishet, inte skiljer sig mycket frÄn kommersiella lösningar (jag bör pÄpeka att denna produkt Àven har en kommersiell version, men vi har ju kommit överens om att kostnaderna i pengar ska vara noll).
SÄ, vi kommer att behöva:
â En Linux-avbild med inbyggd verktygssats â multiOTP, FreeRADIUS och nginx, för Ă„tkomst till servern via webben (http://download.multiotp.net/ â jag anvĂ€nde en fĂ€rdig avbild för VMware)
â En Active Directory-server
â SjĂ€lva Cisco ASA (jag anvĂ€nder ASDM för enkelhetens skull)
â Vilken programvarutoken som helst som stöder TOTP-mekanismen (Jag anvĂ€nder till exempel Google Authenticator, men FreeOTP fungerar ocksĂ„).
Jag kommer inte att gÄ in pÄ detaljerna kring att rulla ut bilden. I slutÀndan fÄr du Debian Linux med förinstallerade multiOTP och FreeRADIUS, konfigurerade för att fungera tillsammans, samt ett webbgrÀnssnitt för administration av OTP.
Steg 1. Initiera systemet och konfigurera det för ditt nÀtverk
Som standard kommer systemet med anvÀndaruppgifterna root root. Jag tror att alla kan rÀkna ut att det vore bra att Àndra lösenordet för root-anvÀndaren efter första inloggningen. Det Àr ocksÄ nödvÀndigt att Àndra nÀtverksinstÀllningarna (som standard Àr detta '192.168.1.44' med gateway '192.168.1.1'). Efter det kan systemet startas om.
I Active Directory skapar vi en anvÀndare otp, med lösenordet MySuperPassword.
Steg 2. Konfigurera anslutningen och importera anvÀndare frÄn Active Directory
För detta behöver vi Ätkomst till konsolen och, direkt, filen multiotp.php, som vi anvÀnder för att konfigurera anslutningsinstÀllningarna till Active Directory.
GÄr till katalogen /usr/local/bin/multiotp/ och kör sedan följande kommandon i tur och ordning:
./multiotp.php -config default-request-prefix-pin=0Anger om en ytterligare (permanent) pin krÀvs vid inmatning av engÄngspin (0 eller 1)
./multiotp.php -config default-request-ldap-pwd=0Anger om en domÀnlösenord krÀvs vid inmatning av engÄngspin (0 eller 1)
./multiotp.php -config ldap-server-type=1Anger typen av LDAP-server (0 = vanlig LDAP-server, i vÄrt fall 1 = Active Directory)
./multiotp.php -config ldap-cn-identifier="sAMAccountName"Anger hur anvÀndarnamnet ska presenteras (detta vÀrde kommer bara att visa namnet utan domÀnen)
./multiotp.php -config ldap-group-cn-identifier="sAMAccountName"Samma sak, men för grupper
./multiotp.php -config ldap-group-attribute="memberOf"Anger metoden för att bestÀmma om en anvÀndare tillhör en grupp
./multiotp.php -config ldap-ssl=1Om en sÀker anslutning till LDAP-servern ska anvÀndas (sjÀlvklart ja!)
./multiotp.php -config ldap-port=636Porten för anslutning till LDAP-servern
./multiotp.php -config ldap-domain-controllers=adSRV.domain.localAdressen till din Active Directory-server
./multiotp.php -config ldap-base-dn="CN=Users,DC=domain,DC=local"Anger varifrÄn vi ska börja söka anvÀndare i domÀnen
./multiotp.php -config ldap-bind-dn="otp@domain.local"Anger anvÀndaren som har rÀtt att söka i Active Directory
./multiotp.php -config ldap-server-password="MySuperPassword"Anger lösenordet för anvÀndaren för att ansluta till Active Directory
./multiotp.php -config ldap-network-timeout=10StÀller in tidsgrÀns för anslutning till Active Directory
./multiotp.php -config ldap-time-limit=30StÀller in tidsgrÀns för importoperationen av anvÀndare
./multiotp.php -config ldap-activated=1Aktiverar konfigurationen för anslutning till Active Directory
.\/multiotp.php -debug -display-log -ldap-users-syncVi importerar anvÀndare frÄn Active Directory
Steg 3. Generera QR-kod för token
HĂ€r Ă€r allt extremt enkelt. Ăppna webbgrĂ€nssnittet för OTP-servern i webblĂ€saren, logga in (glöm inte att Ă€ndra standardlösenordet för administratören!) och tryck pĂ„ knappen "Skriv ut":

Resultatet av denna ÄtgÀrd kommer att vara en sida som innehÄller tvÄ QR-koder. Vi struntar helt i den första (trots den tilltalande texten Google Authenticator \/ Authenticator \/ 2 Steps Authenticator) och skannar den andra koden i programvarutoken pÄ telefonen:

(ja, jag har avsiktligt förstört QR-koden sÄ att den blir olÀslig).
Efter genomförda ÄtgÀrder kommer en sexsiffrig kod att genereras i din applikation var trettio sekunder.
För sÀkerhets skull kan en kontroll göras i samma grÀnssnitt:

Genom att skriva in anvÀndarnamnet och engÄngslösenordet frÄn appen pÄ telefonen. Fick du ett positivt svar? DÄ gÄr vi vidare.
Steg 4. Finjustera och testa FreeRADIUS-funktionen
Som jag nÀmnde tidigare - multiOTP Àr redan konfigurerat för att fungera med FreeRADIUS, du behövde bara köra tester och lÀgga till information om vÄr VPN-gateway i konfigurationsfilen för FreeRADIUS.
Vi ÄtervÀnder till serverns konsol, till katalogen /usr/local/bin/multiotp/, skriver in:
.\/multiotp.php -config debug=1\n.\/multiotp.php -config display-log=1Vilket dÀrmed aktiverar mer detaljerad loggning.
I konfigurationsfilen för FreeRADIUS-klienter (/etc/freeradius/clinets.conf) kommenterar vi alla rader relaterade till localhost och lÀgger till tvÄ poster:
client localhost {\n ipaddr = 127.0.0.1\n secret = testing321\n require_message_authenticator = no\n}â för test
client 192.168.1.254\/32 {\n shortname = CiscoASA\n secret = ConnectToRADIUSSecret\n}â för vĂ„r VPN-gateway.
Starta om FreeRADIUS och försök att autentisera:
radtest anvĂ€ndarnamn 100110 localhost 1812 testing321w username = anvĂ€ndarnamn, 100110 = lösenordet frĂ„n appen pĂ„ telefonen, localhost = RADIUS-serverns adress, 1812 â RADIUS-serverns port, testing321 â lösenord för RADIUS-serverklienten (som vi angav i konfigurationen).
Resultatet av detta kommando kommer att vara en utmatning av ungefÀr följande innehÄll:
Sending Access-Request of id 44 to 127.0.0.1 port 1812\n User-Name = "anvÀndarnamn"\n User-Password = "100110"\n NAS-IP-Address = 127.0.1.1\n NAS-Port = 1812\n Message-Authenticator = 0x00000000000000000000000000000000\nrad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=44, length=20Nu behöver vi sÀkerstÀlla att anvÀndaren har autentiserats framgÄngsrikt. För att göra detta kommer vi att titta i loggen för multiotp:
tail /var/log/multiotp/multiotp.logOch om den senaste posten dÀr Àr:
2016-09-01 08:58:17 notice username User OK: AnvÀndare username har loggat in framgÄngsrikt frÄn 127.0.0.1
2016-09-01 08:58:17 debug Debug Debug: 0 OK: Token accepterad frÄn 127.0.0.1DÄ har allt gÄtt bra, och vi kan utföra
Steg 5. Konfigurera Cisco ASA
Vi förutsÀtter att vi redan har en konfigurerad grupp och policyer för Ätkomst via SSL VPN, konfigurerad i samarbete med Active Directory, och att vi behöver lÀgga till tvÄfaktorsautentisering för denna profil.
1. LĂ€gg till en ny grupp servrar AAA:

2. LÀgg till vÄr multiOTP-server i gruppen:

3. Vi justerar anslutningsprofilen, stÀller in gruppen av Active Directory-servrar som huvudautentiseringsserver:

4. PÄ fliken Advanced -> Authentification vÀlj ocksÄ gruppen av Active Directory-servrar:

5. PÄ fliken Advanced -> Secondary autentifiering vÀljer den skapade gruppen av servrar, dÀr multiOTP-servern Àr angiven. Observera att Session username Àrvs frÄn den primÀra gruppen av AAA-servrar:

TillÀmpa instÀllningarna och
Steg 6, den sista
Kontrollera om vi har tvÄfaktorsautentisering för SSL VPN:

Voila! Vid anslutning via Cisco AnyConnect VPN Client kommer Àven den andra engÄngskoden att efterfrÄgas.
Jag hoppas att denna artikel hjÀlper nÄgon och att den ger nÄgon tankar kring hur man kan anvÀnda denna gratis OTP-server för andra uppgifter. Dela gÀrna i kommentarerna om ni har lust.
KĂ€lla: habr.com
