Configura il server VPN IKEv1 xAuth IPsec con PSK o RSA in pfSense

Il sistema operativo pfSense ci permette di configurare diversi tipi di file VPN, tra cui IPsec IKEv1 xAuth, un tipo di VPN che ci permetterà di connetterci con i nostri smartphone e tablet con Android ed iOS, e anche con i nostri computer o Mac, a patto che installiamo il software corrispondente compatibile con questo tipo di protocollo. Oggi in questo articolo ti mostreremo come configurare un server VPN IPsec IKEv1 xAuth in modo che tu possa connetterti da remoto alla tua rete locale in sicurezza.

Configurare il server VPN IKEv1 xAuth IPsec

A cosa serve un server VPN IPsec IKEv1 xAuth?

Il protocollo IPsec è uno dei protocolli VPN più diffusi e conosciuti, viene utilizzato sia a livello domestico per connetterci alla nostra casa in modo facile e veloce (router come AVM FRITZ! Incorporano questo tipo di VPN sicura), come così come per metterci in contatto a livello aziendale con l'ufficio o la piccola e media impresa. Questa VPN utilizza il protocollo IKEv1 (Internet Key Exchange) per negoziare la crittografia tra i diversi client e il server, inoltre, fa uso dell'autenticazione con nome utente e password (xAuth) che ci permetterà di autenticare i diversi client quando si connettono al server VPN. All'interno del protocollo IPsec IKEv1 xAuth, abbiamo due metodi di autenticazione:

  • Mutual PSK + xAuth: viene stabilita una password che ogni client VPN che desidera connettersi avrà, questa chiave è sia sul server che su tutti i client. Successivamente, vengono richiesti un nome utente e una password per l'autenticazione individuale alla VPN.
  • RSA reciproca + xAuth: deve essere creata una CA con certificati del server e anche certificati per i client VPN, una volta stabilita l'autenticazione con questi certificati, saranno richiesti anche un nome utente e una password per l'autenticazione nella VPN.

Un dettaglio molto importante è che non saremo in grado di utilizzare il protocollo IKEv2 poiché non è compatibile con questo tipo di VPN, dobbiamo usare sì o sì IKEv1 in modo che i client VPN possano connettersi correttamente.

In questo tutorial vedremo come configurare il protocollo IPsec IKEv1 xAuth nel sistema operativo pfSense, in modo che i client VPN possano connettersi alla rete aziendale e iniziare a condividere i dati.

Configurazione del protocollo IPsec

Prima di iniziare a configurare il protocollo IPsec IKEv1 xAuth, dobbiamo tenere presente che questo protocollo è orientato alla VPN di accesso remoto, cioè nota come "Mobile Client", quindi i client VPN saranno telefoni cellulari, tablet o computer, ma non verrà stabilito un tunnel Site-to-Site, per fare ciò è meglio utilizzare direttamente un protocollo come IPsec IKEv2, senza l'xAuth di cui ci occuperemo qui.

Configura i «client mobili»

La prima cosa che dobbiamo fare per configurare il server VPN è andare nella sezione "VPN / IPsec / Mobile Clients", dobbiamo selezionare le seguenti opzioni:

  • Abilita supporto client mobile IPsec
  • Autenticazione estesa (xAuth)
    • Autenticazione utente: database locale

Nella sezione Autenticazione estesa è anche necessario definire la sottorete in cui verranno posizionati i client VPN che si connettono.

  • Autenticazione estesa (xAuth)
    • Virtual Address Pool: fornisci un indirizzo IP virtuale ai client e mettiamo una sottorete che non è in uso, come 192.168.100.0/24.
    • DNS Server: fornire un server DNS ai client: qui possiamo mettere DNS locali o DNS pubblici come Google o Cloudflare.

La configurazione finale sarebbe la seguente:

Una volta salvato, clicchiamo su «Salva» e sopra ci metterà un pulsante verde per applicare le modifiche, clicchiamo su applica modifiche e quando si carica di nuovo, dobbiamo fare clic sul pulsante verde di «Crea fase 1».

Dobbiamo ricordare che il protocollo IPsec è chiaramente diviso in due fasi, la fase 1 è la fase di autenticazione e la fase 2 è la fase in cui vengono negoziate le cifrature simmetriche per lo scambio di informazioni. Per prima cosa dovremo configurare la fase 1 con un set di cifrari compatibili con la maggior parte dei client, per poi configurare la fase 2.

Configurare IPsec Fase 1

In questo menu dovremo configurare correttamente il protocollo IPsec per usarlo con IKEv1 con xAuth, non tutte le configurazioni funzioneranno con questo protocollo. Inoltre, un dettaglio molto importante è che le impostazioni di sicurezza potrebbero cambiare se utilizzi client VPN per Android, iOS, programmi esterni per Windows, ecc. Useremo una configurazione conservativa, compatibile con la maggior parte dei client VPN, ma è necessario tenerne conto perché potrebbe essere necessario modificare alcuni parametri.

Le opzioni che dobbiamo configurare perché funzioni correttamente sono le seguenti:

  • Informazione generale
    • Versione Key Exchange: IKEv1, se ne selezioniamo un'altra non funzionerà.
    • Protocollo Internet: IPv4 o IPv6
    • Interfaccia: Internet WAN
    • Descrizione: inseriamo una descrizione.
  • Proposta di fase 1 (autenticazione)
    • Metodo di autenticazione: PSK reciproco + xAuth
    • Modalità di negoziazione: aggressiva; selezionando "Principale" è più sicuro, ma i client VPN potrebbero non connettersi. Se la VPN è in grado di connettersi bene con la configurazione che offriamo, puoi passare successivamente a "Principale" per vedere se funziona anche tu.
    • Il mio identificatore: il mio indirizzo IP
    • Identificatore peer: nome distinto dell'utente - redeszone@redeszone.net o quello che vuoi.
    • Chiave precondivisa: 12345678
  • Proposta Fase 1 (crittografia)
    • Algoritmo di crittografia: AES 128 bit, SHA1, DH Gruppo 2 (1024 bit).

pfSense è un sistema operativo professionale, il problema è che i client VPN potrebbero non supportare una maggiore sicurezza, per questo motivo non abbiamo utilizzato algoritmi più robusti come SHA-512 o un gruppo DH superiore. Per configurarlo con la massima sicurezza, dobbiamo vedere i log IPsec e sapere quali “proposte” ci invieranno i client VPN per poterci connettere, in base a queste proposte ricevute potremo scegliere la più sicura di tutte.

Il resto delle opzioni di configurazione possono essere lasciate come vengono fornite per impostazione predefinita.

Una volta configurata la fase 1, avremo un piccolo riassunto di quanto abbiamo appena configurato, come puoi vedere qui:

Una volta configurata la fase 1 di IPsec xAuth, configureremo la fase 2.

Configurare IPsec Fase 2

In questo menu la prima cosa che dobbiamo scegliere è la modalità di funzionamento, abbiamo scelto “Tunnel IPv4” come puoi vedere nell'immagine. Inoltre, dovremo anche inserire il «Local Network NetPoulSafe»Che vogliamo che i client VPN abbiano accesso, verrà inviato loro un percorso per l'accesso. Potremo dare loro un indirizzo IP specifico, una sottorete che vogliamo, la sottorete WAN e persino la sottorete LAN che abbiamo in pfSense. Nell'opzione «NAT» lo lasceremo su «nessuno».

In questo menu di configurazione dobbiamo inserire quanto segue:

  • Informazione generale
    • Modalità: tunnel IPv4
    • Rete locale: sottorete LAN
    • Descrizione: una descrizione che vogliamo.
  • Proposta di fase 2 (SA / Key Exchange):
    • Protocollo: ESP
    • Algoritmo di crittografia: AES a 128 bit e AES-128-GCM a 128 bit

Nella foto seguente potete vedere la versione finale:

  • Proposta di fase 2 (SA / Key Exchange)
    • Algoritmi di hash: selezioniamo SHA-1 e SHA-256
    • Gruppo chiavi PFS: disattivato, non supportato dal protocollo.

Il resto delle opzioni possiamo mettere quelle predefinite e fare clic su Salva per salvare tutte le modifiche.

Una volta terminato, possiamo vedere il riepilogo della configurazione effettuata.

Ora che abbiamo configurato il server IPsec xAuth VPN, dobbiamo creare gli utenti in pfSense e dare loro i permessi per connettersi alla VPN, altrimenti non saranno in grado di connettersi e darà un errore.

Crea utenti in pfSense per l'autenticazione con xAuth

Per creare i diversi utenti, dobbiamo andare a " Gestore di sistema / utente "E creare un nuovo utente con il nome utente e la password corrispondenti, fare clic su Salva, quindi immettere nuovamente per modificarlo. Ora possiamo aggiungere autorizzazioni di accesso a diversi servizi e parti del sistema operativo pfSense. Dobbiamo aggiungere l'autorizzazione a:

  • Privilegi assegnati: Utente - VPN-IPsec xauth Dialin

Una volta selezionato, fare clic su «Salva» per salvare le modifiche. D'ora in poi, questo utente con la sua password corrispondente sarà in grado di connettersi al server VPN.

Apri le porte nel firewall pfSense

In questa VPN è anche necessario aprire le porte su Internet WAN, nello specifico dovremo aprire la porta 500 UDP e la porta 4500 UDP. Successivamente, hai tutti i dettagli per aprire entrambe le porte.

Dovremo creare una regola nella sezione "Firewall / Regole / WAN" con le seguenti informazioni:

  • Azione: passaggio
  • Interfaccia: WAN
  • Famiglia di indirizzi: IPv4
  • Protocollo: UDP
  • Fonte: qualsiasi
  • Destinazione: indirizzo WAN sulla porta 500

La seconda regola sarebbe:

  • Azione: passaggio
  • Interfaccia: WAN
  • Famiglia di indirizzi: IPv4
  • Protocollo: UDP
  • Fonte: qualsiasi
  • Destinazione: indirizzo WAN sulla porta 4500

Come puoi vedere, abbiamo le due regole da accettare per consentire il traffico.

Salviamo e applichiamo le modifiche, assicurandoci che questa regola venga seguita. Ora andiamo alla sezione "IPsec" dove faremo un "consenti tutto". Quindi quando ci connettiamo, se vogliamo limitare l'accesso, possiamo farlo inserendo qui le regole corrispondenti.

  • Azione: passaggio
  • Interfaccia: IPsec
  • Famiglia di indirizzi: IPv4
  • Protocollo: qualsiasi
  • Fonte: qualsiasi
  • Destinazione: qualsiasi

Successivamente, puoi vedere la regola appena creata, che è l'unica che abbiamo.

Ora che abbiamo configurato il server VPN IPsec, abbiamo creato l'utente con le autorizzazioni corrispondenti e lo abbiamo anche aperto nel firewall, eseguiremo un test di connessione con Android.

Test di connessione

Nel nostro caso, abbiamo stabilito una connessione VPN con uno smartphone Android, in particolare il Huawei P30 che incorpora un client PSK xAuth IPsec. La configurazione che dobbiamo effettuare è la seguente (non possiamo mettere la cattura perché il sistema operativo la rileva come contenuto privato).

  • Nome: diamo un nome alla VPN
  • Digitare: IPsec Xauth PSK
  • Server: IP o dominio DDNS del tuo server VPN
  • Identificatore IPsec: redeszone@redeszone.net
  • Chiave condivisa IPsec iniziale: 12345678; la chiave che abbiamo inserito nella sezione "Chiave pre-condivisa".

Facciamo clic su Salva e ci colleghiamo. Al momento della connessione, ci chiederà un nome utente e una password, queste credenziali sono quelle che abbiamo registrato nel sistema operativo stesso e successivamente gli abbiamo dato i permessi per connettersi correttamente. Una volta fatto, ci collegherà senza problemi al server VPN e avremo accesso all'amministrazione di pfSense ea qualsiasi rete.

Raccomandazioni e consigli

Potremmo avere problemi di connessione con alcuni client VPN se inseriamo algoritmi di crittografia troppo sicuri, questo è del tutto normale, inoltre, a seconda del software incorporato in ogni dispositivo, possiamo configurare algoritmi più forti o più deboli. Per sicurezza, è sempre consigliabile scegliere quelli più sicuri, ma ciò impedirebbe a molti client VPN di connettersi.

Ogni volta che un client IPsec sta per connettersi, si consiglia di visualizzare i log e controllare quale "proposta" i diversi client inviano durante la connessione. Alcuni smartphone, tablet o client IPsec supportano una crittografia più recente, pertanto, dovremmo configurare la suite più sicura possibile in modo che tutti i client possano connettersi correttamente.

Con questo stesso tutorial, sarai in grado di configurare IPsec IKEv1 xAuth, modificando "Mutual PSK + xAuth" con "Mutual RSA + xAuth" e configurando i certificati server e client corrispondenti. Ti mostreremo presto come farlo. Ciò comporta anche complicazioni, perché se creiamo una CA con un certificato client che utilizza gli algoritmi più recenti, è possibile che restituisca un errore quando ci connettiamo perché non li riconoscono.