Creazione di una connessione VPN L2TP per Sophos XG tramite Group Policy

Nella KB Sophos XG Firewall: How to configure an L2TP connection for Windows 10 viene descritto come configurare una connessione VPN L2TP che utilizza tramite l’uso di una Preshared key o di un certificato digitale. Ovviamente Sophos XG consenti di creare connessioni VPN SSL anche un client nativo Sophos o tramite il client di OpenVPN, ma la connessione VPN L2TP in ambiente Windows è configurabile tramite il client integrato nel sistema operativo.

Il vantaggio dell’uso di una connessione VPN L2TP in ambiente Windows è quindi quello di non avere la necessità di utilizzare client di terze parti che dovrebbero essere mantenuti aggiornati, mentre quello integrato nel sistema operativo sarà aggiornato tramite gli aggiornamenti di sistema. Inoltre oltre alla procedura di configurazione manuale descritta nella KB Sophos XG Firewall: How to configure an L2TP connection for Windows 10 è possibile automatizzare il deploy sui clinet tramite una Group Policy.

Di seguito i passi per la creazione di connessione VPN L2TP basata su certificato digitale mediante Group Policy.

Passo 1: Generazione dei certificati digitali necessari

I certificati digitali necessari, ovvero quello autofirmato per la connessione VPN L2TP e quello della CA, possono essere creati e scaricati dalla console web del firewall Sophos XG, a riguardo si veda Sophos XG Firewall: How to configure an L2TP connection for Windows 10 – Download and install the self-signed certificate and the CA (Certificate Authority).

Passo 2: Creazione della connessione VPN LT2P tramite una Group Policy Preference

Per creare una connessione VPN LT2P è possibile usare una Group Policy Preference ad esempio di tipo Computer per configurare la connessione per tutti gli utenti, ma volendo è anche possibile usare una Group Policy Preference ad esempio di tipo User per configurare la connessione sono per alcuni utenti appartenenti alla OU a cui sarà applicata la Group Policy.

Di seguito alcuni screenshoot relativi alla configurazione:




Passo 3: Importazione dei certificati tramite uno script di avvio Computer

Come descritto nella KB Sophos XG Firewall: How to configure an L2TP connection for Windows 10 – Download and install the self-signed certificate and the CA (Certificate Authority) occorre importare il certificato della CA nello store Trusted Root Certification Authorities:


Quindi occorre importare il certificato auto firmato nello store Personal del computer locale, si noti però che l’importazione manuale importa nello store Personal del computer locale anche il certificato della CA:

Per automatizzare le tre importazioni è possibile creare sua una share di rete nascosta uno script che tramite certutil importi i certificati, di seguito un esempio di script nell’ipotesi che i file contenenti il certificato autofirmato (L2TP_Cert.p12) e quello della CA (Default.der) siano nella stessa directory dello script:

REM Import del certificato autofirmato per la connessione VPN L2TP in Personal
REM e del certificato della CA in Trusted Root Cetification Authorities
CERTUTIL -f -p Password -importpfx “%~dp0L2TP_Cert.p12”

 

REM Import del certificato della CA in Personal
CERTUTIL -f -addstore My “%~dp0Default.der”

Conclusioni e note implementative per le connessioni VPN L2TP

Una volta applicata la Group Policy verrà creata la connessione VPN che sarà disponibile tra le connessioni di rete.

Per poter utilizzare una Connessione VPN L2TP tramite MSCHAPv2 in un’infrastruttura Active Directory occorre aver distribuito un server Radius come indicato nella KB Sophos XG Firewall: How to set the authentication method for L2TP, PPTP, SSL. Sophos Connect VPN users:

Inoltre occorre tenere presente che come indicato nella KB Sophos XG Firewall: How to configure RADIUS authentication for PPTP and L2TP VPN per la connessione VPN occorrerà specificare il nome utente nel formato sAMAccountName@domain.ext:

The character “\” is not supported as part of the username, for example, DOMAIN\username. The authentication will succeed for DOMAIN\username against the RADIUS server, but the user cannot be created on the XG Firewall side because of the illegal character.

 

The XG Firewall supports authentication with the sAMAccountName username (i.e. usertest) or with the fully qualified username (i.e. usertest@domain.local), but not with the NETBIOS format which has a “\” character in the username, irrespective of the server.

 

A feature request was already submitted for this, see Allow authentication with windows credentials (domain\username) for l2tp. It is also included in the Known Issues List (KIL). This KB article will be updated once this feature is implemented.

Questo significa che non è possibile utilizzare l’opzione della connessione VPN per utilizzare le credenziali dell’utente connesso in quanto invia l’informazione dell’utente nel formato DOMAIN\username che non è supportato.

Riferimenti

Di seguito alcuni link utili per l’installazione del server Radius e la configurazione della connessione VPN L2TP:

[Update 01]

Nel post Creazione di una connessione VPN L2TP per Sophos XG tramite Group Policy ho illustrato come creare una connessione VPN tramite Group Policy, va però precisato che non tutte le impostazioni sono disponibili tramite l’interfaccia di configurazione delle Group Policy Preferences, una di questa è l’impostazione relativa all’uso del gateway sulla rete remota nel protocollo IPv4 che per default risulterà disabilitata.

Le impostazioni relative alle connessioni VPN sono contenute all’interno di file ini che sono memorizzate nei seguenti file:

  • Connessioni VPN a livello utente (create con Group Policy Utente): %appdata%\Microsoft\Network\Connections\Pbk
  • Connessioni VPN a livello di sistema (create con Group Policy Computer): %programdata%\Microsoft\Network\Connections\Pbk

L’impostazione relativa all’utilizzo del gateway sulla rete remota è configurata tramite la proprietà IpPrioritizeRemote che se impostata a 1 configura la connessione VPN ad utilizzare il gateway sulla rete remota come indicato nel post Impostazione connessione VPN tramite Group Policy Preferences. A riguardo si vedano anche le considerazioni che ho scritto nel post Group Policies Prefences e INI files.

[Update 01]

Per impostare l’opzione “Registra nel DNS gli indirizzi di questa connessione” è possibilie impostare la proprietà IpDnsFlags a 1 nel file pbk, per default IpPrioritizeRemote è impostata a 0 e nel caso venga impostata a 2 oltre all’opzione “Registra nel DNS gli indirizzi di questa connessione” verrà impostata anche l’opzione “Utilizza il suffisso DNS di questa connessione nella registrazione DNS”.

A riguardo si veda 2.2.2.2.72 IpDnsFlags:

The IpDnsFlags key specifies the DNS configuration settings on the RRAS entry. The value is a decimal number used as a bit field. The bits are defined as in the following table.

2.2.2.2.72 IPDNSFLAGS
Bit number (From LSB) DNS flag Meaning
0 This bit determines whether RRAS registers IPv4 and IPv6 addresses for the demand-dial connection with DNS server. 0 – Do not register with DNS.

1 – Register with DNS.

1 This bit specifies whether RRAS registers DNS suffixes specified as the value of the key IpDnsSuffix in the RRAS entry with the DNS server. 0 – Do not register DNS suffix with DNS.

1 – Register DNS suffix with DNS.

2 This bit specifies whether RRAS registers DNS suffixes obtained when making a demand-dial connection with the DNS server. 0 – Do not register DNS suffix with DNS.

1 – Register DNS suffix wit DNS.