Ricerca nel sito web

Come creare il tuo server VPN IPsec in Linux


I vantaggi derivanti dall’utilizzo di una VPN (Virtual Private Network) sono tantissimi, alcuni dei quali includono la tua sicurezza su Internet crittografando il tuo traffico e aiutandoti ad accedere a contenuti/siti/applicazioni web bloccati da qualsiasi luogo. Per non parlare del fatto che VPN ti aiuta anche a navigare in Internet in modo anonimo.

In questo articolo imparerai come configurare in modo rapido e automatico il tuo server IPsec/L2TP VPN in CentOS/RHEL, Ubuntu e Distribuzioni Linux Debian.

Prerequisiti:

  1. Un nuovo CentOS/RHEL o Ubuntu/Debian VPS (Virtual Private Server) da qualsiasi provider come Linode.

Configurazione del server VPN IPsec/L2TP in Linux

Per configurare il server VPN, utilizzeremo una meravigliosa raccolta di script di shell creati da Lin Song, che installa Libreswan come server IPsec e xl2tpd come fornitore L2TP. L'offerta include anche script per aggiungere o eliminare utenti VPN, aggiornare l'installazione VPN e molto altro.

Innanzitutto, accedi al tuo VPS tramite SSH, quindi esegui i comandi appropriati per la tua distribuzione per configurare il server VPN. Per impostazione predefinita, lo script genererà credenziali VPN casuali (chiave precondivisa, nome utente VPN e password) per te e le visualizzerà nella fine dell'installazione.

Tuttavia, se desideri utilizzare le tue credenziali, devi prima generare una password e un PSK complessi come mostrato.

openssl rand -base64 10
openssl rand -base64 16

Successivamente, imposta questi valori generati come descritto nel comando seguente, tutti i valori DEVONO essere inseriti tra "virgolette singole" come mostrato.

  • VPN_IPSEC_PSK: la tua chiave precondivisa IPsec.
  • VPN_USER: il tuo nome utente VPN.
  • VPN_PASSWORD: la tua password VPN.
---------------- On CentOS/RHEL ---------------- 
wget https://git.io/vpnsetup-centos -O vpnsetup.sh && VPN_IPSEC_PSK='KvLjedUkNzo5gBH72SqkOA==' VPN_USER='tecmint' VPN_PASSWORD='8DbDiPpGbcr4wQ==' sh vpnsetup.sh

---------------- On Debian and Ubuntu ----------------
wget https://git.io/vpnsetup -O vpnsetup.sh && VPN_IPSEC_PSK='KvLjedUkNzo5gBH72SqkOA==' VPN_USER='tecmint' VPN_PASSWORD='8DbDiPpGbcr4wQ==' sudo sh vpnsetup.sh

I principali pacchetti che verranno installati sono bind-utils, net-tools, bison, flex, gcc, libcap-ng-devel, libcurl-devel, libselinux-devel, nspr-devel, nss-devel, pam-devel, xl2tpd, iptables-services, systemd-devel, fipscheck-devel, libevent-devel e fail2ban (per proteggere SSH) e le rispettive dipendenze. Quindi scarica, compila e installa Libreswan dal sorgente, abilita e avvia i servizi necessari.

Una volta completata l'installazione, i dettagli della VPN verranno visualizzati come mostrato nello screenshot seguente.

Successivamente, devi configurare un client VPN, per desktop o laptop con un'interfaccia utente grafica, fai riferimento a questa guida: Come configurare un client VPN L2TP/Ipsec su Linux.

Per aggiungere la connessione VPN in un dispositivo mobile come un telefono Android, vai su Impostazioni –> Rete e Internet (o Wireless e reti –> Altro) –> Avanzate –> VPN. Seleziona l'opzione per aggiungere una nuova VPN. Il tipo di VPN deve essere impostato su IPSec Xauth PSK, quindi utilizzare il gateway VPN e le credenziali sopra indicate.

Come aggiungere o rimuovere un utente VPN in Linux

Per creare un nuovo utente VPN o aggiornare un utente VPN esistente con una nuova password, scarica e utilizza lo script add_vpn_user.sh utilizzando il seguente comando wget.

wget -O add_vpn_user.sh https://raw.githubusercontent.com/hwdsl2/setup-ipsec-vpn/master/extras/add_vpn_user.sh
sudo sh add_vpn_user.sh 'username_to_add' 'user_password'

Per eliminare un utente VPN, scarica e utilizza lo script del_vpn_user.sh.

wget -O del_vpn_user.sh https://raw.githubusercontent.com/hwdsl2/setup-ipsec-vpn/master/extras/del_vpn_user.sh
sudo sh del_vpn_user.sh 'username_to_delete'

Come aggiornare l'installazione di Libreswan in Linux

Puoi aggiornare l'installazione di Libreswan utilizzando lo script vpnupgrade.sh o vpnupgrade_centos.sh. Assicurati di modificare la variabile SWAN_VER sulla versione che desideri installare, all'interno dello script.

---------------- On CentOS/RHEL ---------------- 
wget https://git.io/vpnupgrade-centos -O vpnupgrade.sh && sh vpnupgrade.sh

---------------- On Debian and Ubuntu ----------------
wget https://git.io/vpnupgrade -O vpnupgrade.sh && sudo sh  vpnupgrade.sh

Come disinstallare il server VPN in Linux

Per disinstallare l'installazione VPN, procedi come segue.

Su RHEL/CentOS

yum remove xl2tpd

Quindi apri il file di configurazione /etc/sysconfig/iptables e rimuovi le regole non necessarie e modifica /etc/sysctl.conf e /etc/rc.local file e rimuovi le righe dopo il commento # Aggiunto dallo script VPN hwdsl2, in entrambi i file.

Su Debian/Ubuntu

sudo apt-get purge xl2tpd

Successivamente, modifica il file di configurazione /etc/iptables.rules e rimuovi eventuali regole non necessarie. Inoltre, modifica /etc/iptables/rules.v4 se esiste.

Quindi modifica i file /etc/sysctl.conf e /etc/rc.local, rimuovi le righe dopo il commento # Aggiunto dallo script VPN hwdsl2 , in entrambi i file. Non rimuovere exit 0 se esiste.

Facoltativamente, puoi rimuovere determinati file e directory creati durante la configurazione della VPN.

rm -f /etc/ipsec.conf* /etc/ipsec.secrets* /etc/ppp/chap-secrets* /etc/ppp/options.xl2tpd* /etc/pam.d/pluto /etc/sysconfig/pluto /etc/default/pluto 
rm -rf /etc/ipsec.d /etc/xl2tpd

Per configurare una VPN da sito a sito basata su IPSec con Strongswan, consulta le nostre guide:

  1. Come configurare una VPN basata su IPSec con Strongswan su Debian e Ubuntu
  2. Come configurare una VPN basata su IPSec con Strongswan su CentOS/RHEL 8

A questo punto, il tuo server VPN è attivo e funzionante. Puoi condividere qualsiasi domanda o fornirci feedback utilizzando il modulo di commento qui sotto.