Implementarea VPN SSTP

0

Oricine care administrează un server, personal sau al clientului, utilizează cu siguranță VPN.  Până nu demult printre unicele alternative de tunneling erau PPTP sau L2TP/IPSEC. Odată cu apariția Windows Server 2008 și Windows Vista SP1 a fost adăugat un alt protocol de tunneling Secure Socket Tunneling Protocol(SSTP), care utilizează exclusiv protocolul HTTPS pe TCP 443. Acesta îl face imun la toate problemele care le cunoaștem relativ la firewall, proxy, etc. care deseori blochează alte protocoale.

Pe serverul SSTP trebuie să fie instalat un certificat cu opțiunea Server Authentication sau All-Purpose Enhanced Key Usage (EKU). Acest certificat este utilizat de clientul SSTP pentru autentificarea pe server atunci când sesiunea este inițializată. Pentru a valida certificatul serverului, pe calculatorul client trebuie să fie instalat certificatul de la root authority (CA) care a eliberat certificatul serverului.

Când un utilizator pe un calculator care rulează Windows Server 2008, Windows Server 2008 R2, Windows Vista SP1 sau Windows 7 începe o conexiune VPN bazată pe SSTP,  va urma următorii pași:

  1. The SSTP client establishes a TCP connection with the SSTP server between a dynamically-allocated TCP port on the client and TCP port 443 on the server.
  2. The SSTP client sends an SSL Client-Hello message, indicating that the client wants to create an SSL session with the SSTP server.
  3. The SSTP server sends its computer certificate to the SSTP client.
  4. The SSTP client validates the computer certificate, determines the encryption method for the SSL session, generates an SSL session key and then encrypts it with the public key of the SSTP server’s certificate.
  5. The SSTP client sends the encrypted form of the SSL session key to the SSTP server.
  6. The SSTP server decrypts the encrypted SSL session key with the private key of its computer certificate. All future communication between the SSTP client and the SSTP server is encrypted with the negotiated encryption method and SSL session key.
  7. The SSTP client sends an HTTP over SSL request message to the SSTP server.
  8. The SSTP client negotiates an SSTP tunnel with the SSTP server.
  9. The SSTP client negotiates a PPP connection with the SSTP server. This negotiation includes authenticating the user’s credentials with a PPP authentication method and configuring settings for IPv4 or IPv6 traffic.
  10. The SSTP client begins sending IPv4 or IPv6 traffic over the PPP link.

În acest articol mă voi strădui să descriu pașii fundamentali pentru crearea unei structuri simple capabilă să accepte conexiuni VPN SSTP. Multe setări vor fi alese pentru simplificarea acestui îndrumar și nu trebuie să fie implementate absolut în producție.

Mediul folosit este un mediu virtual compus din 3 mașini:

  • DC1 (Windows Server 2008 R2) – Domain Controller, Server DNS
  • VPN1 (Windows Server 2008 R2) – Routing and Remote Access (2 eth), AD Certificate Services, IIS
  • CLIENT1 (Windows 7 Business) – Client
În figura următoare vedem configurarea acestui mediu:
Implementarea VPN SSTP

Configurarea DC1

Serverul DC1 va fi configurat ca Domain Controller și Server DNS, pașii care trebuie urmați sunt:

  1. Redenumim serverul în DC1
  2. Atribuim interfeței de rețea adresa IP 192.168.0.1, subnet mask 255.255.255.0, gateway 192.168.0.2, server DNS 192.168.0.1
  3. Adăugăm rolului Active Directory Domain Services
  4. Creăm unui domeniu nou cu comanda DCPROMO, numind-ul CONTOSO.COM
  5. Setăm nivelului de funcționalitate al domeniului și forest-ului la minim Windows Server 2003
  6. Instalăm serverului DNS
  7. Creăm unui utilizator user1 cu parola P@ssw0rd setându-i accesul dial-in cu ajutorul consolei Active Directory Users and Computers, click dreapta la utilizator, tab-ul Dial-in,în Network Access Permission clicăm pe Allow access.   Notă: Într-un scenariu real recomand de a gestiona permisiunile de acces prin intermediul Network Policy Server (NPS).

Implementarea VPN SSTP

Configurarea VPN1

Acest server are două adaptoare de rețea, una Privata și alta Publică și va juca rolul de server RRAS, Active Directory Certificate Services, Certification Authority Web Enrollment, Web Server (IIS). Pașii care trebuie urmați sunt:

  1. Redenumim serverul în VPN1
  2. Redenumim interfeței interne în Private și interfața externă în Public
  3. Atribuim interfeței Private IP 192.168.0.2, subnet mask 255.255.255.0, server dns 192.168.0.1
  4. Atribuim interfeței Public IP 131.107.0.2 și subnet mask 255.255.0.0
  5. Verificăm dacă serverul DC1 este de găsit cu comanda ping DC1
  6. Adăugăm calculatorul la domeniu contoso.com
  7. Instalăm rolul Active Directory Certificate Services cu serviciul Certification Authority Web Enrollment, alegem o CA standalone și apoi Root CA, creăm o cheie privată și continuăm cu setările implicite. Numele CA trebuie să fie contoso-VPN1-CA
  8. Setăm nivelul de securitate în Internet Explorer pentru zona Local Intranet la Low. Nota:Intr-un scenariu real recomand să se modifice setările individuale relative pentru controalele ActiveXImplementarea VPN SSTP
  9. Obținem un nou certificat de tipul Server Authentication prin Internet Explorer mergând la adresa http://localhost/certsrv alegând Request a certificate, apoi advanced certificate request și în sfârșit Create and submit a request to this CA,  clicând Da pentru a permite ActiveX și a completa forma cu următoarele valori:
    1. Name: vpn1.contoso.com
    2. Country/Region: IT
    3. Type of Certificate Needed: Server Authentication Certificate
    4. Mark keys as exportable: Yes
  10. Clicăm Submit 
  11. Implementarea VPN SSTPDeschidem consola Certification Authority
  12. Alegem tab-ul Extensions din proprietățile serverul contoso-VPN1-CA și ștergem linia http://<ServerDNSName>/CertEnroll/<CaName><CRLNameSuffix><DeltaCRLAllowed&gt;.crl
  13. Introducem linia http://vpn1.contoso.com/CertEnroll/<CaName><CRLNameSuffix><DeltaCRLAllowed&gt;.crl și verificăm opțiunile Include in CRLs. Clients use this to find Delta CRL locations și Include in the CDP extension of issue certificates
  14. Implementarea VPN SSTPEliberăm certificatul cerut mergând la Pending Requests și alegând Issue la cererea prezentă.
  15. Ne întoarcem la adresa http://localhost/certsrv și clicăm pe View the status of a pending certificate request și apoi pe Server Authentication Certificate, permitem ActiveX și instalăm certificatul clicând pe Install the certificate. Astfel certificatul va fi instalat în datastore-ul utilizatorului, pe care va trebui să îl mutăm în datastore-ul calculatorului
  16. Deschidem consola MMC și adăugăm de două ori snap-in Certificates, odată pentru gestionarea certificatele account-ului utilizator și alta pentru account-ul calculatorului local
  17. Mergem la Console Root\Certificates – Current User\Personal\Certificates, clicăm pe certificatul vpn1.contoso.com și alegem Export, alegem Yes, export the private key, alegem o parolă și salvăm într-un fișier pe desktop vpn1cert.pfx
  18. Ștergem certificatul numai ce exportat
  19. Mergem la Console Root\Certificates (Local Computer)\Personal\Certificates, clicăm pe Certificates și alegem Import, selecționăm fișierul precedent exportat, introducem parola și continuăm cu setările implicite. Notă: Prezența certificatului contoso-VPN-CA1 de tipul all purposes poate crea probleme, deci convine de al șterge
  20. Implementarea VPN SSTPInstalăm rolul Network Policy and Access Services și alegem serviciul Routing and Remote Access Services
  21. Implementarea VPN SSTPDeschidem consola de gestiune al Routing and Remote Access și clicăm cu tasta dreaptă pe numele serverului VPN1 și alegem Configure and Enable Routing and Remote Access, alegem Remote access (dial-up or VPN) și succesiv în caseta VPN alegem interfața Publicși scoatem optiunea Enable security on the selected interface by setting up static packet filters.                                                                                             Nota: Într-un scenariu real ar trebui să lăsăm această opțiune activată.
  22. Precum în acest caz nu avem un server DHCP alegem From a specified range of addressîn pasul următor și setăm diapazonul 192.168.0.200-192.168.0.210 și în continuare lăsăm opțiunile implicite pentru a nu folosi un server RADIUS pentru autentificare.
  23. În continuare ne apare mesajul care ne informează că trebuie să configurăm proprietățile Agentului DHCP și apăsăm OK.

Implementarea VPN SSTP

Configurare CLIENT1

Interfața de rețea al CLIENT1 va fi conectat la același switch virtual al interfeței publice VPN1, pașii succesivi sunt:

  1. Redenumim clientul în CLIENT1
  2. Atribuim interfeței de rețea adresa IP 131.107.0.3, subnet mask 255.255.0.0
  3. Neavând un server DNS în partea publică, creem o înregistrare în fișierul hosts al clientului pentru servrul vpn1.contoso.com. Deschidem cu Notepad  fișierul %windir%\system32\drivers\etc\hosts și adăugăm linia respectivă:  131.107.0.2    vpn1.contoso.com
  4. Testăm conexiunea cu serverul VPN1 făcând un ping vpn1.contoso.com
  5. Implementarea VPN SSTPÎn cazul când ping-ul nu este reușit modificăm setările firewall-ului pe serverul VPN1 pentru a accepta ping-urile pe interfața Public

Implementarea VPN SSTP

Configurarea conexiunii VPN PPTP

Vom testa acum o conexiune VPN PPTP pentru a verifica că totul a fost configurat corect.  De la CLIENT1 creem o nouă conexiune de rețea de tipul Connect to a workplaceImplementarea VPN SSTP

alegem Use my Internet connection (VPN)  și apoi I’ll set up an Internet connection later,  ca adresă introducem vpn1.contoso.com  și ca utilizator/parolă cele create în AD,user1/P@ssw0rd.

Odată finisată configurarea conexiunii ne putem conecta apăsând pe iconița din lista de conexiuni VPN:

Implementarea VPN SSTP

când conexiunea va fi stabilită vom putea să verificăm configurările de rețea cu comanda ipconfig:Implementarea VPN SSTPașa cum vedem a fost atribuită adresa 192.168.0.203. Dacă ne uităm la starea conexiunii VPN ne dăm seama că folosim PPTP:Implementarea VPN SSTP

La această etapă ne putem deconecta și în serverul VPN1 să configurăm firewall-ul pentru a bloca  protocolul GRE, altfel blocând protocolul PPTP:Implementarea VPN SSTPdupă care dacă încercam să ne conectăm la VPN trebuie să obținem o eroare și conexiunea nu va fi stabilită.

Configurarea conexiunii VPN SSTP

Un client VPN pentru a folosi o conexiune STP trebuie să aibă instalat certificatul de la root CA care a eliberat certificatul utilizat de server. În timpul fazei de autentificare SSL clientul verifica certificatul serverului.

Pentru a obține certificatul de la root CA este de ajuns de a merge la adresa http://vpn1.contoso.com/certsrv și clicând pe Download a CA certificate, Certificate Chain, or CRL și apoi Download CA certificate.

În fereastra care se deschide alegem Open

Implementarea VPN SSTPși în proprietățile certificatului apăsăm Install Certificate… pentru al instala.Implementarea VPN SSTPCertificatul va fi instalat în datastore-ul utilizatorului,  pe care trebuie să îl mutăm în cel al calculatorului pentru al putea utiliza la conexiuni VPN. Pentru a face aceasta, deschidem o consola MMC adăugăm de 2 ori snap-in Certificates.

Deschidem calea Console Root\Certificates – Current User\Intermediate Certification Authorities\Certificates, unde trebuie să vedem certificatul eliberat pentru contoso-VPN1-CA, prin o operație Cut&Paste îl mutăm la Console Root\Certificates (Local Computer)\Trusted Root Certification Authorities\CertificatesImplementarea VPN SSTPDeschidem acum proprietățile conexiunii VPN și în tab-ul Security setăm tipul VPN la Secure Socket Tunneling Protocol (SSTP):Implementarea VPN SSTP

după care ne putem conecta. Dacă totul va merge bine și conexiunea VPN se va stabili corect, în proprietățile conexiunii vom vedea tipul SSTP:Implementarea VPN SSTPDeci în concluzie conexiunea noastră va folosi exclusiv portul TCP 443 (HTTPS)Implementarea VPN SSTP

Leave A Reply