Connect with us

Linux

Come Impostare una VPN basata su IPSec con StrongSwan su Debian e Ubuntu

La configurazione di una Virtual Private Network (VPN) su sistemi basati su Debian e Ubuntu utilizzando StrongSwan è un’ottima soluzione per garantire comunicazioni sicure e criptate tra dispositivi. StrongSwan è un’implementazione open-source di Internet Protocol Security (IPSec) che supporta diverse modalità di autenticazione. In questo articolo, vedremo come configurare una VPN IPSec con StrongSwan su Debian e Ubuntu.

Requisiti

  • Due server Linux con Debian o Ubuntu installato. Uno agirà come server VPN (StrongSwan), mentre l’altro come client VPN.
  • Accesso root o privilegi sudo su entrambi i server.
  • Indirizzi IP pubblici per entrambi i server (per questo esempio, useremo IP fittizi: 192.0.2.1 per il server e 198.51.100.1 per il client).

Installazione di StrongSwan

  1. Sul Server VPN: Aggiorna l’elenco dei pacchetti e installa StrongSwan eseguendo i seguenti comandi:
    sudo apt update
    sudo apt install strongswan strongswan-pki libcharon-extra-plugins
  2. Sul Client VPN: Installa StrongSwan con lo stesso metodo descritto per il server.

Configurazione del Server VPN

  1. Generazione delle Chiavi e dei Certificati: Crea una struttura di directory per le chiavi e i certificati:
    mkdir -p ~/pki/{cacerts,certs,private}
    chmod 700 ~/pki

    Genera la chiave privata della CA (Certification Authority):

    ipsec pki --gen --type rsa --size 4096 --outform pem > ~/pki/private/ca-key.pem

    Crea il certificato della CA:

    ipsec pki --self --ca --lifetime 3650 --in ~/pki/private/ca-key.pem --type rsa --dn "CN=VPN CA" --outform pem > ~/pki/cacerts/ca-cert.pem

    Genera la chiave privata del server VPN:

    ipsec pki --gen --type rsa --size 4096 --outform pem > ~/pki/private/vpn-server-key.pem

    Crea il certificato del server VPN:

    ipsec pki --pub --in ~/pki/private/vpn-server-key.pem --type rsa | ipsec pki --issue --lifetime 1825 --cacert ~/pki/cacerts/ca-cert.pem --cakey ~/pki/private/ca-key.pem --dn "CN=192.0.2.1" --san "192.0.2.1" --flag serverAuth --flag ikeIntermediate --outform pem > ~/pki/certs/vpn-server-cert.pem
  2. Configurazione di StrongSwan: Modifica il file /etc/ipsec.conf per configurare la VPN:
    config setup
    charondebug="ike 1, knl 1, cfg 0, net 1, esp 1, dmn 1, mgr 1"

    conn %default
    ikelifetime=60m
    keylife=20m
    rekeymargin=3m
    keyingtries=1
    keyexchange=ikev2
    authby=secret
    left=%any
    leftid=@server_domain_or_IP
    leftcert=vpn-server-cert.pem
    leftsendcert=always
    leftsubnet=0.0.0.0/0
    right=%any
    rightid=%any
    rightauth=eap-mschapv2
    rightsourceip=10.10.10.0/24
    rightdns=8.8.8.8,8.8.4.4
    rightsendcert=never
    eap_identity=%identity

    conn IPSec-IKEv2
    auto=add

    Modifica il file /etc/ipsec.secrets per includere la chiave privata del server e le credenziali degli utenti:

    : RSA vpn-server-key.pem
    your_username : EAP "your_password"
  3. Abilita il Routing IP e Configura il Firewall: Abilita il routing IP modificando /etc/sysctl.conf e aggiungi:
    net.ipv4.ip_forward=1

    Applica le modifiche con sudo sysctl -p.

    Configura le regole del firewall (utilizzando iptables o ufw) per permettere il traffico IPSec e NAT attraverso la VPN.

Configurazione del Client VPN

  1. Configurazione di StrongSwan: Sul client, configura /etc/ipsec.conf e /etc/ipsec.secrets in modo simile, adattandoli per il ruolo del client.
  2. Stabilire la Connessione: Sul client, avvia la connessione VPN con ipsec up conn_name.

Verifica e Troubleshooting

  • Verifica lo stato della connessione con ipsec status.
  • In caso di problemi, consulta i log di StrongSwan per individuare l’errore.

Conclusione

Configurare una VPN con StrongSwan su Debian e Ubuntu richiede diversi passaggi, ma offre una soluzione robusta e sicura per la comunicazione crittografata. Ricorda di sostituire gli indirizzi IP, i nomi utente e le password con i tuoi dati reali durante la configurazione. Con StrongSwan, puoi facilmente configurare una VPN affidabile e sicura per le tue esigenze di networking.

Click to comment

Leave a Reply

Esegui l'accesso per Commentare

Di tendenza

Close Popup
Questo sito utilizza i cookie per migliorare servizi ed esperienza dei lettori. Se decidi di continuare la navigazione senza blocchi premi su Accetto, oppure continua tranquillamente la navigazione, nessun dato sulla tua navigazione verrà raccolto.
Close Popup
Privacy Settings saved!
Impostazioni

Quando visiti un sito Web, esso può archiviare o recuperare informazioni sul tuo browser, principalmente sotto forma di cookies. Controlla qui i tuoi servizi di cookie personali.

Questi cookie sono necessari per il funzionamento del sito Web e non possono essere disattivati nei nostri sistemi.

Cookie tecnici
Per utilizzare questo sito web usiamo i seguenti cookie tecnici necessari:
  • wordpress_test_cookie
  • wordpress_logged_in_
  • wordpress_sec
  • swpm_session

Google Adsense
Usiamo la pubblicità di Google solo per mantenere attivi i nostro sito. Con ip anonimizzati.

Rifiuta tutti i Servizi
Save
Accetta tutti i Servizi