Pandemic remote access VPN – from zero to hero

George Ciolacu

Security System Engineer- Expert Center

george.ciolacu@alef.com

În acest tech blog vom trece pas cu pas prin deploymentul unei soluții de tip remote access VPN securizat folosind produse din portofoliul Cisco. 

În această perioadă dificilă Cisco ne ofere trial-uri extinse pentru produsele de securitate, cum ar fi: Duo Security, Umbrella, AnyConnect, produse ce le vom folosi în deploymentul ce urmează.

Duo Security – este o soluție cloud-based de tip MFA (multi factor authentication) prin care se verifică identitatea utilizatorilor înainte de a li se acorda access la aplicațiile corporate și care protejează compania de atacuri de tip phising și alte tipuri de amenințări de tip “access”. Soluția analizează comportamentul utilizatorilor, locația și parametrii dispozitivelor utilizate pentru a putea configura politici de acces cât mai granulare.

Umbrella - este o soluție de securitate, cloud-based, ce înglobează mai multe funcții de securitate într-o singur produs. Umbrella oferă protecție la nivel DNS utilizatorilor noștrii indifferent de locația unde aceștia se află.

AnyConnect Secure Mobility Client – este o soluție software pentru end-device-uri, ce ne poate furniza mai multe servicii prin modulele sale: VPN Client, Umbrella Roaming Client, Network Access, Network Visibility s.a.m.d. În soluția propusă astăzi vom folosi primele două module. 

O ultima componentă esențială pentru soluția noastră este echipamentul ce va facilita serviciul VPN, acesta fiind Cisco ASAv (virtual).

ASAv – Cisco Adaptive Security Virtual Appliance este o soluție virtualizată de network security. Soluția suportă atât rețele tradiționale cât și rețele de tip SDN (software defined network) asigurând capabilități de firewall cât și VPN pentru a proteja traficul de rețea dar și arhitecturile multi-tenenat. Produsul este disponibil pentru majoritatea hypervizorilor de pe piață.

Prerechizite:

  1. Cisco ASAv sau un ASA fizic aflat în proprietate.
  2. Duo Security Trial – se accesează pagina https://signup.duo.com/ , se completează câmpurile cu date de contact ale companiei. 
  3. Umbrella – se accesează pagina https://signup.umbrella.com/ , se completează câmpurile cu date de contact ale companiei.
  4. Licențe AnyConnect COVID-19.  Se accesează pagina https://software.cisco.com , se face click pe Traditional Licenses, ne logăm cu CCO-ul companiei. După ce logarea se efectuareaza, se face click pe Get Licenses -> Demo and evaluation … -> Security Products -> AnyConnect Plus/Apex(ASA) Demo License and Emergency COVID-19 License (unde se vor completa câmpurile cu cerințe cum ar fi Serial Number ASA existent, cont smart, etc.).  

Odată efectuați pașii putem trece la treabă.

Design-ul soluţiei:

În acesta soluție ne vom folosi de un ASAv pentru a oferi serviciul VPN pentru clienții noștrii. Acest serviciu VPN va fi livrat printr-un client instalat pe PC-ul clientului (AnyConnect).

 Autentificarea utilizatorilor se va face prin două metode: username și parolă (folosind baza de date locală a ASA) + DUO Security (second factor authentication)  pentru a fi siguri că utilizatorul este întradevăr cine spune că este.

Pentru a nu forța tot traficul utilizatorilor remote să treacă prin echipamentele noastre din firmă și să riscăm o gâtuire a traficului, ne vom folosi de funcția de split-tunnel de pe ASA. Făcând acest lucru pierdem controlul asupra căror site-uri web utilizatorii noștrii naviga și în acest fel nu îi putem proteja de eventuale accesări de website-uri malițioase de unde ar putea să se infecteze cu malware. Pentru a putea mitiga acest lucru, ne vom folosi de soluția Cisco Umbrella, căreia îi vom face deployment-ul din AȘA către toți utilizatorii care se conectează la serviciul VPN. În felul acesta indiferent de unde se află colegii noștrii, aceștia vor fi protejați și în același timp vor fi restrictionați să acceseze doar site-uri web agreate prin politica de securitate a companiei.

  1. Conexiunea SSL VPN este inițiată
  2. Se efectuează autentificarea primară folosind baza de date locală pe ASA
  3. Cisco ASA inițiază o sesiune TCP 636 (LDAPS) către Duo Security
  4. Se inițiază autentificarea secundară prin serviciul Duo Security prin push/sms/apelare telefon utilizator
  5. Utilizatorul furnizează datele de pe telefon
  6. Cisco ASA primește răspunsul la autentificarea secundară
  7. Conexiunea SSL VPN este stabilită.
  8. Se instalează automat modulul Umbrella Roaming pe PC-ul utilizatorului, se sincronizează cu politica de securitate stabilită în cloud, urmând ca orice interogare DNS a PC-ului să fie interceptată și procesată de Cisco Umbrella indiferent dacă device-ul este conectat la VPN sau nu.

Configurare:


1. Vom începe prin a face deploymentul de ASAv în VMware ESX și vom folosi deploymentul de OVF

  • Se selectează fișierele specific și se parcurg pașii:

  • Se selectează template-ul de ASAv în funcție de throughput-ul necesar:

  • Selectăm tipul de storage Thick sau Thin (recomandat să folosim Thick):

  •  Atașăm interfețele în VLAN-urile dorite:

 Verificăm sumarul și apăsam butonul Finish.
 După ce se termină deploymentul, pornim mașina virtuală.

 


2. Configurații de bază ASAv.

configure terminal
! Configuram hostname
hostname ASAv
!
! Configuram parola de enable
enable password ***** pbkdf2
!
! Configuram interfetele firewall-ului
interface GigabitEthernet0/0
nameif inside
security-level 100
ip address 172.20.18.254 255.255.255.0
no shutdown
!
interface GigabitEthernet0/8
nameif outside
security-level 0
ip address 1.1.1.254 255.255.255.0 !doar exemplu nu este IP-ul real
no shutdown
!
! Configuram routarea necesara
route outside 0.0.0.0 0.0.0.0 1.1.1.1
route inside 10.0.0.0 255.0.0.0 172.20.18.1
route inside 172.16.0.0 255.240.0.0 172.20.18.1
route inside 192.168.0.0 255.255.0.0 172.20.18.1
!
! Configuram un DNS server – vom avea nevoie sa rezolvam nume de domeniu pentru a integra ASA cu DUO
dns domain-lookup inside
dns server-group DefaultDNS
name-server 172.20.0.10
domain-name demo.alef.ro
!
! Configuram un user de tip administrator local
username admin password ***** pbkdf2 privilege 15
!
! Configuram framework-ul AAA local pentru a putea face management remote pe ASA folosind SSH si HTTPS (ASDM)
aaa authentication ssh console LOCAL
aaa authentication http console LOCAL
!
! Configuram serverul HTTPS dar si locatiile de retea de unde se va face management remote
http server enable
http 0.0.0.0 0.0.0.0 inside
ssh 0.0.0.0 0.0.0.0 inside
!
! Configuram licentele AnyConnect obtinute
activation-key 813cd670 704cde05 810195c8 e7f0d8d0 4e23f1af !Este doar un exemplu!


3. Configurarea integrării ASA cu DUO Security:

Vom presupune că în DUO utilizatorii au fost definiți. Apoi, vom începe cu o configurație minimală în vedearea integrării cu ASA.

Navigăm la https://admin.duosecurity.com/ și ne logam și navigăm la: Applications -> Protect an application -> căutăm aplicația Cisco AȘA SSL VPN -> se apăsa butonul Protect

Downloadăm pachetul necesar AȘA apăsând butonul “Download the Duo Cisco package “:


În acest moment vom avea detaliile necesara integrării ASA cu DUO.

Din acest punct ne putem conecta la firewall cu managerul de tip GUI – ASDM.

  • Se accesează adresa https://172.20.18.254 – IP-ul interfeței de pe ASA pe unde am permis access HTTP. Se apasă butonul Install ASDM Launcher și se instalează aplicația ASDM:


  • Pornim aplicația ASDM și ne conectăm la firewall:

  • Navigăm la Configuration>Remote Access VPN>Clientless SSL VPN Access>Portal>Web Contents , se apasă butonul Import și se selectează fișierul downloadat anterior de pe portalul DUO:

  • Navigăm la Configuration>Remote Access VPN>Clientless SSL VPN Access>Portal>Customization>click pe DfltCustomization>click pe butonul Edit>Logon Page>Title Panel>și se completează câmpul Text cu >se apasă butonul OK

  •  Configurăm autentificare prin DUO navigând la: Configuration>Remote Access VPN>AAA/Local Users>AAA Server Groups>Apăsăm butonul ADD din zona de AAA Server groups>se stabilește un nume pentru grupul de servere și se alege ca protocol LDAP>se apasă OK:

  • Cu grupul creat selectat în zona AAA Server groups, se apasă butonul Add din zona Servers în selected group.

Se bifează “Enable LDAP over SSL”, iar câmpurile se completează folosind datele din portalul DUO după cum urmează:

Server Port                         636
Server Type                        -- Detect Automatically/Use Generic Type --
Base DN                             dc=INTEGRATION_KEY,dc=duosecurity,dc=com
Scope                                 One level beneath the Base DN
Naming Attribute(s)             cn
Login DN                             dc=INTEGRATION_KEY,dc=duosecurity,dc=com
Login Password                  SECRET_KEY

Se apasă butonul OK.

  • Aplicăm configurațiile apăsând butonul Apply și salvăm configurația apăsând iconița de tip dischetă.


4. Configurarea Remote Access VPN folosind AnyConnect

  • Navigăm la: Configuration>Remote Access VPN>Network (Client) Access>AnyConnect Client Software , apoi apăsăm butonul Add>Upload>Browse local files>selectăm pachetul anyconnect download de pe site-ul Cisco.>Apăsăm butonul Select>Upload file>OK.

Dacă a fost uploadat corect, fișierul va trebui să apară ca mai jos:

  • Mergem mai departe și configurăm politica de grup navigând la: Configuration>Remote Access VPN>Network (Client) Access>Group Policies , apoi apăsăm butonul Add:

  • Configurăm un nume pentru politică și un banner:

  • Configurăm un pool de IP-uri ce vor fi alocate clienților ce se vor conecta la VPN:

  • Dacă a fost configurat pool-ul de IP-uri corect, atunci în politică va apărea astfel:

  • Configurăm restricții pentru grupul nostrum de VPN astfel: el va fi aplicat doar pentru conexiuni de tip SSL VPN (adică AnyConnect), iar clienții vor avea voie să aibe doar o conexiune ridicată:

  • Configurăm serverul DNS intern și domain-name-ul companiei:

  • Configurăm politica de split-tunneling pentru a securiza doar traficul către infrastructura corporate:

  • Configurația finală pentru split-tunnel va arăta în felul următor:

Apăsăm butonul OK.

  • Configurăm Connection Profile,navigând la Configuration > Remote Access VPN > Network (Client) Access > AnyConnect Connection Profiles , se apasă butonul Add:

  • Se configurează un nume și Alias profilului, metdoa de autentificare (în cazul nostru folosind baza de date locală, atașăm polictica de grup definite în pasul anterior, se selectează “Enable SSL VPN client protocol” și completăm câmpurile cu IP-ul serverului DNS și numele de domeniu local companiei:

  • Până în acest moment, autentificarea utilizatorilor se face strict folosind combinația ușer/parola definite local pe ASA. Pentru folosi și MFA DUO, vom extinde camplu”Advanced” > Secondary Authentication, selectăm în câmpul Server Group numele serverului LDAP configurat la pasul 3 după cum urmează:

Se apasă butonul OK.

 

  • Se activează serviciul și se selectează interfața pe unde se va asculta la cereri de configurare după cum urmează:

 Aplicăm configurațiile apăsând butonul Apply.

  • În momentul de față un utilizator definit local pe ASA dar și pe platforma DUO va putea să se logheze la serviciul VPN.

 

 5. Configurarea Cisco Umbrella

Se presupune că a fost creat contul Cisco Umbrella și avem access la portalul de administrare pentru compania noastră.

Ne vom folosi de Umbrella pentru a controla traficul de internet al clienților nostrii indiferent de locația unde aceștia se află sau dacă sunt conectați la VPN sau nu. Vom confiura o politică prin care nu vor avea acces la anumite categorii de websiteuri cum ar fi Gambling.

  • Ne logăm în platforma Umbrella:

  • De aici navigămla Deployments -> Configuration -> Domain Management șiadaugăm domeniul companiei pentru a nu trimite query-uri DNS către Umbrella atunci când vrem accesăm resurse locale:

  • Apăsăm butonul Save și verificăm  a fost adăugat domeniul nostru în listă:

  • Configurăm politica de acces navigând la Policies -> Management -> All policies și apăsăm butonul Add:

  • Selectăm identitatea clienților mobili:

  • Selectăm ce anume dorim să obținem din politica noastră:

  • Selectăm categoriile de site-uri cu potențial risc de securitate:

  • Selectăm categoriile de site-uri unde clienții nu vor avea access, în exemplul nostrum vom folosi categoria Gambling:

  • Selectăm ce aplicații web nu sunt premise, dacă este cazul:

  • Selectăm liste de acces definite manual, dacă este cazul:

  • Activăm inspecția fișierelor pentru detectarea malware:

  • Personalizăm paginile de răspuns Umbrella, de aici putând adăuga logo-ul companiei, de exemplu:

  • Dăm un nume politicii, verificăm setările configurate anterior și apăsam butonul Save pentru a aplica politica:

  • În acest moment avem o politică configurată, dar nu avem utilizatori care să aibe aplicația instalată pentru a face enforcement. Pentru a rezolva acest aspect ne vom folosi de ASA și vom trimite aplicația automat atunci când cineva se conectează la VPN.
  • Din portalul Umbrella navigăm la Deployments -> Core Identities -> Roaming Computers și se apasă butonul Roaming Client:

  • Se downloadează profilul pentru modulul de AnyConnect:

  • Redeschidem Cisco ASDM și navigăm la Configuration > Remote Access VPN > Network (Client) Access > AnyConnect Client Profile , se apasă butonul Add:

  • Se dă un nume profilului, se selectează Umbrella Roaming Security Profile, se uploadeza fișierul OrgInfo.json downloadat anterior de pe portalul Umbrella și se selectează politica de grup pentru care va fi folosit acest profil:

Se apasă butonul Apply.

  • Un ultim pas este să activăm modulul software ce va fi trimis către client navigând la politica de grup definită Configuration > Remote Access VPN > Network (Client) Access > Group Policies , click pe politica definită anterior și apoi butonul Edit > Advanced > AnyConnect Client > se selectează din opțiunea Optional client modules to download -> AnyConnect Umbrella Roaming Security:

Se apasă OK > Apply.

 


6. Testarea soluției

  • A fost definit un utilizator în ASA cât și în DUO pentru a putea efectua testele.
  • De pe PC-ul de test navigăm la IP-ul public al ASA:

  • Completăm datele cu utilizatorul definit pe ASA, iar la 2nd password vom folosi keyword-ul push pentru a primi o notificare de tip push pe telefonul utilizatorului:

  • După ce validăm cererea de conectare vom fi întâmpinați de banner:

  • Se apasă butonul continue și apoi downloadam aplicația AnyConnect:

  • Se instalează aplicația:

  • După ce AnyConnect a fost instalat cu succes, deschidem aplicația și ne conectăm la IP-ul ASA-ului:

  • Validăm cererea din nou pe telefon și vom fi întâmpinați de banner:

  • Acceptăm bannerul și în acest moment va începe și instalarea modulului Umbrella:

  • După finalizarea instalării vom avea conexiunea stabilită cu success atât la ASA cât și la Umbrella:

  • Testăm conectivitatea către un server din LAN-ul companiei:

  • Testăm că site-urile din categoria gambling sunt blocate:

Felicitări !!!