DUO MFA voor SSTP VPN

Eerder hebben we de inrichting van een SSTP VPN oplossing via de Routing & Remote Access Service besproken. In deze tijd van ransomware aanvallen, social engineering etc is een extra beveiliging daarop een pré.

In deze handleiding staat beschreven hoe je een bestaande SSTP VPN via RRAS kunt aanpassen en voorzien van een multifactor beveiliging via de DUO Mobile app. In dit voorbeeld staat dit alles geinstalleerd op één en dezelfde server, een domain controller voorzien van de routing and remote access rol met intern ip-adres 192.168.22.2.

Volg dit artikel voor een basis installatie van SSTP VPN binnen RRAS. Daarop installeren we tevens de DUO authentication proxy die babbelt met het back-end van DUO Security.

Maak een “klant” aan op duosecurity.com en kies daarna ervoor om de RRAS applicatie te beschermen. Ga daarvoor naar Applications > Protect an Aplication, kies je voor Microsoft RRAS.

Daar krijg je een api-host van DUO, een ikey en een skey waarde welke je later nodig hebt in de configuratie van je duoauthproxy.

Maak een account aan waarmee DUO als service kan draaien, maar ook kan verbinden met Active Directory. Verzin ook alvast een radius secret, deze heb je nodig in je authproxy.cfg file. Vervolgens download en installeer je de DUOauthproxy, hetgeen gewoon “basic” is. De laatste versie van de DUO Authentication Proxy, download je hier.

Hieronder staat mijn minimalistische config file. Daarbij is het genoemde ip-adres 192.168.22.2 zoals eerder gemeld het ip-adres van mijn domain controller. Dit vind je samen met een AD-account onder het kopje [ad_client]. In eerste instantie zetten we de wachtwoorden even plaintext weg. Na het succesvol testen encrypten we deze middels een mee-geinstalleerde tool van DUO. Ook geen je het de notatie van je interne domein op bij search_dn=

Onder [radius_server_auto] zet je de keys en api-host die je bij het aanmaken van de applicatie beveiliging in het portal hebt gekregen. Bij radius_ip geef je het loopback adres op en een secret die je straks binnen RRAS ook moet opgeven. De port staat standaard op 1812, maar om zeker geen hinder te ondervinden van een Microsoft NPS server kiezen we ervoor om deze op 18120 te zetten. Ook dit kom je straks in het onderdeel RRAS weer tegen.

[main]
debug=true

[ad_client]
host=192.168.22.2
service_account_username=duo
service_account_password=s0m3pass\v/0rd
search_dn=DC=steijvers,DC=local

[radius_server_auto]
ikey=ikey_uit_duo_portal
skey=skey_uit_duo_portal
api_host=api-hostname_uit_duoportal.duosecurity.com
radius_ip_1=127.0.0.1
radius_secret_1=je_radius_secret
client=ad_client
port=18120
failmode=safe

Herstart de DUO service nadat je de authproxy.cfg file hebt gewijzigd. Test daarna je config met het test programma genaamd authproxy_connectivity_tool.exe. Deze vind je in “C:\Program Files\Duo Security Authentication Proxy\bin”

Nu je weet dat dit werkt, kun je de gebruikte wachtwoorden nog encrypten. Daarvoor gebruik je authproxy_passwd.exe in “C:\Program Files\Duo Security Authentication Proxy\bin”.

Let op, je dient dan wel je configuratie te wijzen door enkele labels te hernoemen. Indien je het radius wachtwoord versleuteld, pas je “radius_secret_1=” aan naar “radius_secret_protected_1=”. Versleutel je het wachtwoord van het service account, pas dan “service_account_password” naar “service_account_password_protected”.

[main]
debug=true

[ad_client]
host=192.168.22.2
service_account_username=duo
service_account_password_protected=2B4B6250655368566D597133743677397A..........
search_dn=DC=steijvers,DC=local

[radius_server_auto]
ikey=ikey_uit_duo_portal
skey=skey_uit_duo_portal
api_host=api-hostname_uit_duoportal.duosecurity.com
radius_ip_1=127.0.0.1
radius_secret_protected_1=244326462948404D635166546A576E5A7234753778214.......
client=ad_client
port=18120
failmode=safe

Herstart na de wijziging de DUO service en test nogmaals je config middels de authproxy_connectivity_tool.exe.

Als het bovenstaande allemaal succesvol is verlopen, kunnen we aan de slag binnen Routing and Remote Access. Pas de authentication provider aan van Windows Authentication naar Radius Authentication. Klik vervolgens op configure:

Geef als radius server 127.0.0.1 op en neem niet de standaard poort (1812) maar zet er bijvoorbeeld een 0 achter zoals ook in de bovenstaande config van DUOauthproxy (port=18120).

Klik ook op de knop Change bij Shared Secret en geef de shared secret op, die ook in je DUOauthproxy hebt staan. Pak hier de unencrypted shared secret 😉

Teruggekomen op het tabblad security pas je ook de Authentication Methods aan. DUO ondersteunt enkel PAP. Dat druist misschien tegen je principes in, maar het voor via de SSTP verbinding versleuteld verstuurd.

Ook al heb je geen NPS rol geinstalleerd, kan er toch een NPS Policy dwars zitten. Door binnen RRAS met rechts te klikken op Remote Access Logging kun je kiezen voor Launch NPS om de policies te controleren.

Controleer dat de gebruikers binnen active directory een “allow access” hebben op het Dial-in tabblad van hun account properties.

Ter verificatie van je instellingen, heb de beschikking over een test programma genaamd authproxy_connectivity_tool.exe. Ook deze vind je in “C:\Program Files\Duo Security Authentication Proxy\bin”

Hiermee heb je multifactor werkend.

Vergeet niet om op de clients eveneens het protocol op PAP te zetten…

Om deze verbinding toe te voegen via Powershell:

Add-VpnConnection -Name "mijnSSTPvpn" -ServerAddress "mijn.domein.ext" -TunnelType "Sstp" -AuthenticationMethod PAP -UseWinlogonCredential -AllUserConnection -PassThru -SplitTunneling  

De onderstaande links kun je doorgeven aan de users voor de app installatie op hun smartphones.
DUO Mobile Andriod
DUO Mobile IOS

(ism Rooie Dokus)