Tutorial per configurare i server VPN su Ubuntu. Il modo più semplice per configurare Ubuntu come server VPN. Istituzione di un'autorità di certificazione

If ($contatore_risposte == 1): ?> endif; ?>

AGGIORNARE. Per quanto riguarda Sierra, macOS non supporta più VPN PPTP. Questa risposta non è valida per i client macOS Sierra e altri.

PPTP su PoPToP è facile

  1. apt-get install pptpd
  2. modifica /etc/pptpd.conf e imposta l'opzione remoteip su un valore sulla tua rete che NON è servito dal tuo server DHCP.
  3. modifica /etc/ppp/chap-secrets e aggiungi nome utente e password

Per esempio.

vpnuser pptpd vpnpassword*

Questo è tutto ciò che serve per installare pptp. Ora provalo con il tuo client OS X.

Ha risposto Jay _silly_evarlast_ Wren il 04/06/2012 alle 23:24

ATTENZIONE: PPTP È UN PROTOCOLLO NON SICURO! Non solo la crittografia è stata violata, ma invia la tua autenticazione in chiaro ed è facilmente intercettabile. È stato stimato che la quantità di tempo necessaria per forzare la password è più o meno equivalente al tempo necessario per forzare una singola chiave DES. Prendi in considerazione l'utilizzo di OpenVPN o di un'altra architettura VPN invece di PPTP!

Ha risposto Qasim il 06/10/2013 alle 16:09

Le altre risposte su questo thread erano solo risposte parziali nel mio caso. Ecco cosa ha funzionato per me su Ubuntu 12.04.3

sudo apt-get install pptpd

Aggiungi quanto segue a /etc/pptpd.conf: (L'indirizzo IP non ha importanza, questi sono solo gli indirizzi IP per la tua interfaccia ppp0.)

localip 10.0.0.1 remoteip 10.0.0.100-200

Aggiungi i server DNS a /etc/ppp/pptpd-options

ms-dns 8.8.8.8 ms-dns 8.8.4.4

Abilita l'inoltro dell'indirizzo IP

sudo vim /etc/sysctl.conf

Decommenta questa riga

sudo sysctl -p /etc/sysctl.conf

Modifica /etc/ppp/chap-secrets, aggiungi l'utente VPN in questo formato:

# Segreti per l'autenticazione tramite CHAP # server client indirizzi IP segreti username pptpd supersecretpassword *

Riavvia PPTP

Riavvio del servizio pptpd

Esegui ifconfig e trova la tua interfaccia predefinita, nel mio caso lo era br0(L'ho modificato per consentire alle macchine virtuali sulla mia macchina fisica di condividere l'interfaccia. Probabilmente lo sarà en0)

backup di iptables

iptables-save > ~/iptables.save

Ora le modifiche a iptables usano la sua interfaccia predefinita come mostrato da ifconfig.

Configurazione di una connessione VPN su Debian

Ecco un esempio di configurazione di una connessione VPN per Debian Linux tramite la riga di comando. Ma non sarà meno utile per i possessori di distribuzioni basate su Debian, ad esempio Ubuntu.

  1. Per prima cosa hai bisogno del pacchetto pptp:
    # apt-get install pptp-linux
  2. Modifica (o crea, se non esiste) il file /etc/ppp/options.pptp. Dovrebbe contenere i seguenti parametri:
    serratura
    noauth
    nobsdcomp
    nodeflate
  3. Successivamente, devi aggiungere una riga come questa al file /etc/ppp/chap-secrets:
    “nome utente” PPTP “password” *
  4. Crea un file /etc/ppp/peers/XXX (XXX è il nome della rete). Inserisci quanto segue:
    pty "pptp vpn.XXX.ru --nolaunchpppd"
    nome "nome utente"
    nome remoto PPTP
    file /etc/ppp/options.pptp
    percorso predefinito
    "username" e "password" devono essere sostituiti con il tuo nome utente e password senza virgolette, come specificato nel tuo contratto. vpn.XXX.ru - indirizzo del server vpn - chiedi al tuo provider.
  5. Per sostituire automaticamente il percorso predefinito, crea il file /etc/ppp/ip-up.d/routes-up:
    # su tocca /etc/ppp/ip-up.d/routes-up
    # su chown a+x /etc/ppp/ip-up.d/routes-up

    E inserisci quanto segue:
    #!/bin/sh
    /sbin/route del default
    /sbin/route aggiunge dev predefinito ppp0
    Crea il file /etc/ppp/ip-down.d/routes-down:
    # su tocca /etc/ppp/ip-down.d/routes-down
    # su chown a+x /etc/ppp/ip-down.d/routes-down
    E inserisci quanto segue:
    #!/bin/sh
    /sbin/route del default
    /sbin/route aggiunge default dev eth0

  6. Ora puoi connetterti con il comando:
    # su XXX
    Per informazioni dettagliate sul processo di connessione, digitare:
    # su pon XXX debug dump logfd 2 nodetach
    Puoi verificare se sei connesso alla VPN digitando il comando ifconfig. Se c'è una sezione ppp0 nel suo output, allora sei connesso e puoi iniziare a lavorare con Internet. Per disabilitare, premere ctrl+c o digitare:
    # su poff XXX
  7. Affinché il tuo computer possa ricevere percorsi dal nostro server, nel file /etc/dhcp3/dhclient.conf devono essere presenti le seguenti righe:
    #
    opzione rfc3442-classless-static-routes codice 121 = array di intero senza segno 8;
    opzione ms-classless-static-routes codice 249 = array di intero senza segno 8;
    #
    richiesta maschera di sottorete, indirizzo di trasmissione, time-offset, router, nome di dominio, server di nome di dominio, ricerca di dominio, nome host, server di nome netbios, ambito netbios, interfaccia-mtu, route statica , rfc3442-percorsi-statici-senza-classi, ms-percorsi-statici-senza-classi;
    #
  8. Per connettersi automaticamente a Internet all'avvio del sistema operativo, creare il file /etc/init.d/XXX
    # tocca /etc/init.d/XXX
    # su chown a+x /etc/init.d/XXX
    # su ln -s /etc/init.d/XXX /etc/rc2.d/S99XXX
    Scriviamolo così:
    #!/bin/sh
    su /usr/bin/ponXXX

In tutti i comandi, XXX è il nome della tua rete.

Una vera rete virtuale privata o rete privata virtuale (VPN) è un tunnel connesso crittografato tra due reti che collega due punti attendibili. Questo non è il protocollo Web HTTPS, che considera tutti i client affidabili. Solo i client che dispongono di chiavi di accesso speciali possono connettersi alla VPN.

Il concetto di VPN è diventato molto teso in questi giorni, con l'avvento di reti virtuali private che si fidano di tutti e la diffusione di HTTPS. Molte delle VPN sono soluzioni commerciali con una configurazione minima per consentire ai dipendenti di accedere da remoto. Ma non tutti si fidano di queste decisioni. Una rete virtuale privata collega due reti in una, ad esempio una rete dell'ufficio e la rete domestica di un dipendente. Il server VPN è necessario affinché il server e il client possano autenticarsi tra loro.

La configurazione dell'autenticazione di server e client richiede molto lavoro e quindi le soluzioni commerciali con un minimo di impostazioni perdono in questo senso. Ma in realtà non è così difficile configurare un server OpenVPN. Avrai bisogno di due nodi su reti diverse per configurare un ambiente di test, ad esempio puoi utilizzare più macchine virtuali o server reali. Come hai già capito, questo articolo tratterà la configurazione di OpenVPN in Ubuntu per creare una rete virtuale privata a tutti gli effetti.

Entrambe le macchine dovrebbero avere OpenVPN installato, è un programma abbastanza popolare, quindi puoi installarlo dai repository ufficiali. Abbiamo anche bisogno di Easy-RSA per lavorare con le chiavi segrete. Per installare i programmi in Ubuntu, usa il seguente comando:

sudo apt install openvpn easy-rsa

Entrambi i pacchetti devono essere installati sia sul server che sul client. Saranno necessari per configurare il programma. La prima fase dell'articolo installazione e configurazione di openvpn è ora completa.

Istituzione di un'autorità di certificazione

La prima cosa da fare è configurare un'adeguata infrastruttura a chiave pubblica sul server. Consideriamo il server la macchina a cui gli utenti si connetteranno. Avere la tua CA ha diversi vantaggi, avrai la tua CA che semplifica la distribuzione e la gestione delle chiavi. Ad esempio, puoi revocare i certificati client sul server. Inoltre, ora non è necessario archiviare tutti i certificati client, sarà sufficiente che l'autorità di certificazione sappia che il certificato è firmato dalla CA. Oltre a un sistema di chiavi complesso, puoi utilizzare chiavi statiche se desideri concedere l'accesso solo a pochi utenti.

Si prega di notare che tutte le chiavi segrete devono essere in un luogo sicuro. In OpenVPN, la chiave pubblica è chiamata certificato e ha un'estensione .crt e la chiave privata è chiamata chiave, la sua estensione è .key.

Innanzitutto, crea una cartella in cui archiviare i certificati Easy-RSA. Infatti la configurazione di OpenVPN avviene manualmente, quindi la cartella può essere posizionata ovunque:

sudo mkdir /etc/openvpn/easy-rsa

Quindi copia tutti gli script easy-rsa necessari in questa cartella:

cd /etc/openvpn/easy-rsa/

sudo -i
# sorgente ./vars
# ./cancella tutto
# ./build-ca

Con il primo comando si passa alla console per conto del superutente, con il secondo si caricano le variabili di ambiente dal file ./vars. Il comando ./clear-all crea la cartella delle chiavi se non esiste e ne cancella il contenuto. E l'ultimo comando inizializza la nostra autorità di certificazione. Ora tutte le chiavi necessarie sono apparse nella cartella .keys:

Configurazione dei certificati client

sudo cp -R /usr/share/easy-rsa /etc/openvpn/

Ora dobbiamo copiare il certificato, un file .crt, nella cartella /etc/openvpn su tutti i client. Ad esempio, scarichiamo questo file per il nostro client usando scp:

sudo scp utente@host: /etc/openvpn/easy-rsa/keys/ca.crt /etc/openvpn/easy-rsa/keys

Solo ora puoi creare la tua chiave privata in base al certificato CA:

cd /etc/openvpn/easy-rsa/

sudo -i
# sorgente ./vars
# build-req Sergio

Si prega di notare che ca.crt deve essere nella cartella delle chiavi, altrimenti non funzionerà nulla. Ora l'utilità creerà una chiave, in base alla quale puoi connetterti al server OpenVPN, ma devi comunque firmarla sul server. Invia il file .csr risultante al server utilizzando lo stesso scp:

scp /etc/openvpn/easy-rsa/keys/Sergiy.csr utente@host:~/

Quindi, sul server nella cartella /etc/openvpn/easy-rsa, è necessario eseguire il comando di firma del certificato:

./sign-req ~/Sergiy

La firma del certificato deve essere verificata. Quindi il programma segnalerà che è stato firmato e aggiunto al database. Nella cartella con il certificato csr apparirà un file .crt, che dovrà essere restituito alla macchina client:

sudo scp utente@host:/home/Sergiy.crt /etc/openvpn/easy-rsa/keys

Solo dopo che il server e il client hanno tutte le chiavi necessarie per connettersi e stabilire la comunicazione. Sono rimaste alcune altre impostazioni. Se prevedi di utilizzare la crittografia TLS, devi creare un set di dati Diffie-Huffman sul server, per questo utilizzare il comando:

Configurazione di OpenVPN

Ora configurando il server OpenVPN. Per impostazione predefinita, non c'è nulla nella cartella dei file di configurazione di OpenVPN. Devi crearli tu stesso, a seconda di cosa intendi configurare, server o client. Il file di configurazione OpenVPN richiesto può essere trovato in /usr/share/doc/openvpn/examples/sample-config-files/. Innanzitutto, creiamo un file di configurazione per il server:

zcat /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz | sudo tee /etc/openvpn/server.conf

Qui è necessario regolare alcune impostazioni:

porta e proto- porta e protocollo su cui funzionerà il programma;

porto 1194
proto udp

Tutte le chiavi create devono essere registrate nel file di configurazione. Le nostre chiavi sono archiviate in /etc/openvpn/easy-rsa/keys:


cert /etc/openvpn/easy-rsa/keys/ca.crt
chiave /etc/openvpn/easy-rsa/keys/ca.key
dh /etc/openvpn/easy-rsa/keys/dh.pem

Abbiamo impostato una serie di indirizzi per la rete virtuale, il nostro server sarà disponibile sul primo di essi - 10.8.0.1:

server 10.8.0.0 255.255.255.0

Dopo aver completato la configurazione, salva le modifiche nel file, puoi incollare l'intera configurazione da solo o modificare il file con un esempio. Impostazioni del server pronto per il funzionamento:

porto 1194
proto udp
comp lzo
sintonia di sviluppo
ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
cert /etc/openvpn/easy-rsa/2.0/keys/ca.crt
dh /etc/openvpn/easy-rsa/2.0/keys/dh2048.pem
topologia di sottorete
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt

sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/client.conf

È possibile creare più file di configurazione client per connettersi a server diversi. Aprire il file di configurazione e modificare i seguenti parametri in esso:

a distanzaè l'indirizzo del tuo server OpenVPN, l'indirizzo e la porta devono corrispondere a quelli configurati sul server, ad esempio:

remoto 194.67.215.125 1194

circa- la chiave che hai ricevuto dall'autorità di certificazione, l'abbiamo trovata nella cartella /etc/openvpn/.

certificato e chiave- queste sono le chiavi pubbliche e private del client, con l'aiuto di esse ti collegherai al server. Come ricordi, li abbiamo salvati nella cartella /etc/openvpn/easy-rsa/keys/.

ca /etc/openvpn/easy-rsa/keys/ca.crt

Il resto delle impostazioni può essere lasciato così com'è. Ecco il file di configurazione completo, che puoi copiare:

cliente
sintonia di sviluppo
proto udp
remoto 194.67.215.125 1194
risoluzione-riprova infinito
senza impegno
chiave persistente
persist-tun
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/Sergiy.crt
chiave /etc/openvpn/easy-rsa/keys/Sergiy.key
tls-auth ta.key 1
comp lzo
verbo 3

Salva le impostazioni, il client è ora pronto per la connessione. Si noti che i file di configurazione devono corrispondere il più possibile, l'assenza di determinate opzioni in uno dei file può causare errori. Ciò non significa che i file saranno identici, ma i parametri di base di openvpn dovrebbero essere gli stessi. Tutto quello che devi fare è eseguire OpenVPN su questa macchina usando questo file di configurazione:

openvpn /etc/openvpn/client.conf

Fatto, ora funziona tutto, se esegui ifconfig, vedrai che l'interfaccia tun0 è stata aggiunta:

Puoi anche provare a eseguire il ping dell'indirizzo 10.8.0.1, questo è l'indirizzo che abbiamo configurato per il nostro server OpenVPN, i pacchetti di ping verranno inviati normalmente. Se i pacchetti non arrivano, o qualcos'altro non funziona, prestare attenzione all'output di entrambi i programmi, potrebbero esserci degli errori o avvisi, inoltre assicurati che il firewall del server consenta l'accesso dall'esterno tramite udp sulla porta 1194. Puoi avvia anche il server o il client impostando il livello di verbosità al massimo verbo 9 nella configurazione.Molto spesso questo aiuta a capire perché qualcosa non funziona. Ma non puoi ancora instradare il traffico attraverso il tunnel. Per fare ciò, devi abilitare l'inoltro e aggiungere alcune regole di iptables. Innanzitutto, consentiamo il transito dei pacchetti sul server:

sysctl -w net.ipv4.ip_forward=1

Quindi aggiungi queste regole. Permettiamo a tutti di connettersi al nostro server:

iptables -A INPUT -p udp --dport 1194 -j ACCEPT

Consentiamo agli utenti OpenVPN di accedere a Internet:

iptables -I FORWARD -i tun0 -o eth0 -j ACCETTO
# iptables -I FORWARD -i eth0 -o tun0 -j ACCEPT
# iptables -t nat -A POSTROUTING -o eth0 -j MASCHERA

conclusioni

In questo articolo, abbiamo esaminato come viene installato e configurato OpenVPN Ubuntu, nonché come configurare openvpn per funzionare con l'autenticazione con chiave. L'organizzazione di reti virtuali private può essere molto utile non solo nelle organizzazioni, ma anche, diciamo, per lo scambio di dati tra i due computer o per aumentare la sicurezza della rete.

Istruzione

Controlla se esiste il supporto PPP nel kernel del tuo sistema operativo. Il modo più semplice per farlo è guardare i valori delle opzioni con il prefisso CONFIG_PPP nel file di configurazione del kernel corrente. Di solito è installato nella directory /boot e ha un nome che inizia con config. Scopri il nome di questo file con il comando
ls / avvio
o
ls /boot | grep conf
Stampa le righe desiderate con il comando cat, filtrando con grep. Per esempio:
cat /boot/config-2.6.30-std-def-alt15 | grep PPP
Analizza le righe contenenti le opzioni CONFIG_PPP, CONFIG_PPP_ASYNC, CONFIG_PPP_SYNC_TTY. Se non c'è alcun carattere # davanti a loro, è disponibile il supporto per la funzionalità corrispondente (per i valori di m - sotto forma di un modulo esterno, per i valori di y - inclusi nel kernel).

Verificare se sul sistema è installato il software client per stabilire le connessioni VPN. Il pacchetto richiesto di solito ha un nome che inizia con pptp. Usa apt-cache con l'opzione di ricerca per cercare il pacchetto richiesto nei repository disponibili e rpm con l'opzione -qa per verificare se il pacchetto è installato. Quando si lavora in un ambiente grafico, può avere senso utilizzare programmi come synaptic.

Installa il software mancante. Utilizzare gestori di pacchetti adeguati (apt-get, rpm nella console, synaptic nell'ambiente grafico, ecc.). Se hai installato il pacchetto ppp con i moduli del kernel per supportare il protocollo appropriato, riavvia il computer.

Prova a configurare la VPN utilizzando script di configurazione come pptp-command o pptpsetup. Sono spesso in bundle con il software client per stabilire connessioni VPN. Per ottenere aiuto sui parametri della riga di comando di queste utilità, eseguirle con l'opzione --help. Per esempio:
pptpsetup --help
Se gli script di configurazione non sono stati installati, continuare con il passaggio successivo per configurare manualmente la VPN.

Crea una directory /etc/ppp e in essa un file chiamato chap-secrets. Apri il file in un editor di testo. Aggiungi una riga come questa:
ACCESSO PASSWORD SERVER *
I valori LOGIN e PASSWORD sono il nome utente e la password. Devono essere forniti dal provider del servizio di accesso VPN. Invece di SERVER, specificare un nome di connessione arbitrario o *.

Crea la directory /etc/ppp/peers. Creare un file al suo interno che abbia lo stesso nome del valore SERVER del passaggio precedente (o un nome arbitrario se è stato specificato *). Modifica questo file per aggiungere informazioni come:
pty "server pptp --nolaunchpppd"
nome ACCEDI
SERVER ipparam
nome remoto SERVER
serratura
noauth
nodeflate
nobsdcomp
I valori LOGIN e SERVER qui sono gli stessi del passaggio 5. Questo completa la configurazione della VPN su Linux.

Vuoi avere un accesso a Internet sicuro e protetto dal tuo smartphone o laptop quando sei connesso a una rete non sicura tramite il WiFi dell'hotel o del bar? Una rete privata virtuale (VPN) ti consente di utilizzare reti non protette come se fossi su una rete privata. Tutto il tuo traffico in questo caso passa attraverso il server VPN.

In combinazione con l'utilizzo di una connessione HTTPS, le impostazioni descritte di seguito ti consentiranno di proteggere le tue informazioni private, come accessi e password, nonché i tuoi acquisti. Inoltre, puoi aggirare le restrizioni e la censura regionali, nonché nascondere la tua posizione e il traffico HTTP non crittografato da una rete non sicura.

Puoi trasferire un profilo dal tuo computer al tuo telefono collegando il tuo dispositivo Android al tuo computer tramite USB e copiando il file. Puoi anche spostare il file del profilo utilizzando la scheda SD copiando il profilo sulla scheda e inserendo la scheda nel dispositivo Android.

Avvia l'applicazione OpenVPN e fai clic sul menu per importare un profilo.

Composto

Per stabilire una connessione, premere il pulsante Collegare. Ti verrà chiesto se ti fidi dell'app OpenVPN. Rispondere OK per stabilire una connessione. Per interrompere la connessione, vai all'app OpenVPN e seleziona Disconnetti.

Passaggio 13: test della connessione VPN

Dopo aver installato e configurato tutto, assicurati che tutto funzioni correttamente. Senza stabilire una connessione VPN, apri un browser e vai a DNSLeakTest.

Questo sito restituirà l'indirizzo IP che ti è stato assegnato dal tuo ISP. Per verificare quali server DNS sono in uso, fare clic su prova estesa.

Ora stabilisci una connessione usando il tuo client VPN e aggiorna la pagina nel tuo browser. L'indirizzo IP fornito deve essere completamente diverso. Ora usi questo nuovo indirizzo IP per tutti su Internet. Clic prova estesa di nuovo per controllare le tue impostazioni DNS e assicurarti di utilizzare ora il server DNS della tua VPN.

Passaggio 14: revoca i certificati client

Di tanto in tanto, potrebbe essere necessario revocare il certificato client per impedire l'accesso al server VPN

Per fare ciò, vai alla directory dell'autorità di certificazione e inserisci i comandi:

  • cd ~/openvpn-ca
  • sorgente var
  • ./revoca client completo3

L'output di questo comando terminerà con l'errore 23. Questo è normale. A seguito del lavoro verrà creato nella directory keys il file crl.pem con le informazioni necessarie per revocare il certificato.

Sposta questo file nella directory /etc/openvpn:

  • sudo cp ~/openvpn-ca/keys/crl.pem /etc/openvpn
  • sudo nano /etc/openvpn/server.conf

Aggiungi crl-verify alla fine del file. Il server OpenVPN controllerà il CRL ogni volta che qualcuno stabilisce una connessione al server.

/etc/openvpn/server.conf

crl-verify crl.pem

Salva e chiudi il file.

Riavvia OpenVPN per completare il processo di revoca del certificato:

Ora il client non sarà in grado di connettersi al server OpenVPN utilizzando il vecchio certificato.

Per revocare certificati aggiuntivi, completare i seguenti passaggi:

    Genera un nuovo elenco di certificati revocati utilizzando il comando source vars nella directory ~/openvpn-ca ed emettendo il comando revoke-full con il nome del client.

    Copia il nuovo elenco di certificati revocati nella directory /etc/openvpn, sovrascrivendo così il vecchio elenco.

    Riavvia il servizio OpenVPN.

Questa procedura può essere utilizzata per revocare eventuali certificati creati in precedenza.

Conclusione

Congratulazioni! Ora puoi accedere in sicurezza a Internet, tutto il tuo traffico è protetto dalle intercettazioni di censori e intrusi.

Per configurare client aggiuntivi, ripetere i passaggi 6 e 11-13 per ogni nuovo dispositivo. Per revocare l'accesso a un client, utilizzare il passaggio 14 .