Il modo più semplice per configurare Ubuntu come server VPN


68

So che ci sono molti tutorial in rete per configurare client e server VPN.

Se ne trovi uno semplice / breve , sono interessato solo alla parte del server.

Per il client, userò OS X, quindi preferisco una soluzione che utilizza L2TP over IPseco PPTPperché suppongo che Cisco IPsec costerebbe qualcosa.

Non voglio passare troppe ore a configurarlo. Sai, forse qualcuno ha già creato uno script di installazione :)

Nota: sto usando una microistanza EC2 che esegue Ubuntu 12.04 su di essa.


3
Nota: CISCO IPSec può essere realizzato tramite StrongSwan e molte configurazioni, ma è complicato. PPTP non è più sicuro. E L2TP su IPSec richiede sia la configurazione L2TP che IPSec. Scegli a tuo piacimento, anche se la mia risposta spiega PPTP
Thomas Ward

Risposte:


24

AGGIORNAMENTO : A partire da Sierra, macOS non supporta più vpn PPTP. Questa risposta non è valida per i client macOS Sierra e oltre.

PPTP tramite PoPToP è semplice

  1. apt-get install pptpd
  2. modificare /etc/pptpd.confe impostare l'opzione remoteip su un intervallo sulla rete NON servito dal server DHCP.
  3. modifica /etc/ppp/chap-secretse aggiungi un nome utente e una password

per esempio

vpnuser pptpd vpnpassword *

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


Mi chiedo anche quali valori localip e remoteip siano i più sicuri, considerando che mi collegherò a questo server da qualsiasi posizione. Sicuramente i valori predefiniti con 192.168.0.e 192.168.1.sono probabilmente uno dei peggiori possibili.
Sorin,

12 maggio 13:28:06 zork pppd [9447]: Plugin /usr/lib/pptpd/pptpd-logwtmp.so caricato. 12 maggio 13:28:06 zork pppd [9447]: pppd 2.4.5 avviato da root, uid 0 maggio 12 13:28:06 zork pppd [9447]: Utilizzo dell'interfaccia ppp0 12 maggio 13:28:06 zork pppd [9447 ]: Connect: ppp0 <--> / dev / pts / 3 12 maggio 13:28:36 zork pppd [9447]: Hangup (SIGHUP) 12 maggio 13:28:36 zork pppd [9447]: Hangup modem 12 maggio 13 : 28: 36 zork pppd [9447]: Connessione terminata. 12 maggio 13:28:36 zork pppd [9447]: Exit.Non funziona ancora! La tua guida è incompleta (ancora);)
sorin

Sì, questo non funziona.
Bkerensa,

1
non ha funzionato per me
Tyler Gillies,

@SorinSbarnea quelle ips sono private e non vanno mai su Internet, quindi non so cosa intendi per "più sicuro". Avrai la migliore fortuna se non sono della stessa gamma IP del bar o del posto di lavoro da cui ti stai collegando. Prova 192.168.42. * :)
Jay _silly_evarlast_ Wren il

86

ATTENZIONE: PPTP È UN PROTOCOLLO INSECURO! Non solo la crittografia è stata violata, ma invia la tua autenticazione in testo chiaro ed è facilmente intercettata. È stato stimato che la quantità di tempo richiesta per forzare la password della password è approssimativamente equivalente al tempo richiesto per forzare la forza di un singolo tasto DES. Prendi in considerazione l'utilizzo di OpenVPN o di un'altra architettura VPN anziché PPTP!

Ho usato questa guida per configurare un server VPN PPTP sul mio server Ubuntu 12.04.


Per riassumere i punti principali nel collegamento, tuttavia:

1: Installa pptpde ufw. iptablespuò essere usato al posto di ufw, ma per motivi di semplicità, ufwè meglio se non lo sai iptables.

sudo apt-get install pptpd ufw

2: aprire le porte necessarie. La guida suggerisce 22 (SSH) e 1723 per il pptp vpn.

sudo ufw consentire 22
sudo ufw consentire 1723
sudo ufw enable

3: Modifica /etc/ppp/pptpd-options. Apri il file con il tuo editor preferito (il mio è nano, quindi il comando per me è sudo nano /etc/ppp/pptpd-options) e commenta queste righe mettendole #davanti, se vuoi che funzioni universalmente su tutti i sistemi operativi:

rifiutare-pap
rifiutare-cap
rifiutare-MSCHAP

Puoi commentare questa riga se vuoi disabilitare la crittografia: require-mppe-128

4: durante la modifica /etc/ppp/pptpd-options, aggiungi server DNS per la VPN. Questo esempio utilizza server OpenDNS:

ms-dns 208.67.222.222
ms-dns 208.67.220.220

5: Modifica /etc/pptpd.conf. Apri il file con il tuo editor preferito (il mio è nano, quindi il comando per me è sudo nano /etc/pptpd.conf). Devi aggiungere gli IP VPN locali per il sistema, quindi aggiungi:

localip 10.99.99.99
remoteip 10.99.99.100-199

Se il tuo sistema è un VPS, usa l'IP pubblico per "localip". Se non lo è e si trova su una rete locale, utilizzare l'IP di rete del computer. Usa IP e intervalli diversi se questi IP esistono sulla tua sottorete! Se non conosci il tuo IP pubblico del tuo VPS, trovalo eseguendolodig +short myip.opendns.com @resolver1.opendns.com

6: Modifica /etc/ppp/chap-secrets. Apri il file con il tuo editor preferito (il mio è nano, quindi il comando per me è sudo nano /etc/ppp/chap-secrets) e aggiungi i dati di autenticazione.
Il formato per /etc/ppp/chap-secretsè:

[Nome utente] [Servizio] [Password] [Indirizzo IP consentito]

Un esempio potrebbe essere: sampleuser pptpd samplepassword *

7: riavvia pptpd. Esegui questo comando nel terminale:sudo /etc/init.d/pptpd restart

8: Modifica /etc/sysctl.conf. Apri il file con il tuo editor preferito (il mio è nano, quindi il comando per me è sudo nano /etc/sysctl.conf). Annulla commento la seguente riga (rimuovendo #all'inizio di essa) in /etc/sysctl.conf: net.ipv4.ip_forward=1
Ricarica la configurazione: sudo sysctl -p

9: Questo passaggio presuppone che tu abbia ufw.
Modifica /etc/default/ufwe cambia l'opzione DEFAULT_FORWARD_POLICYda DROPaACCEPT

10: questo passaggio presuppone che tu abbia ufw.
Modifica /etc/ufw/before.rulese aggiungi quanto segue all'inizio /etc/ufw/before.ruleso appena prima delle *filterregole (consigliato):

# Regole della tabella NAT
* nat

: POSTROUTING ACCEPT [0: 0]
# Consenti inoltro traffico a eth0
-A POSTROUTING -s 10.99.99.0/24 -o eth0 -j MASQUERADE

# Elabora le regole della tabella NAT
COMMETTERE

Se hai la versione del kernel 3.18 e successive (puoi verificarla eseguendo uname -r), aggiungi anche le seguenti righe prima della # drop INVALID packets ...riga:

-A ufw-before-input -p 47 -j ACCEPT

11: Riavvia il firewall, per aggiornare i set di regole e applicare le regole che abbiamo aggiunto ai /etc/ufw/*.rulesfile: sudo ufw disable && sudo ufw enable

Avviso: se hai altre porte che devi aprire, come per HTTPS se il tuo server ospita un sito web, devi aggiungere individualmente quelle porte all'elenco consentito consudo ufw allow <PORT>


4
Ora cosa diavolo faccio: D Ho quello che funziona sul server, non ho idea di come connettermi ad esso lol
Jamie Hutber

1
@Jamie Ci sono un sacco di altri documenti e voci qui su Chiedi a Ubuntu sulla connessione a una VPN per non parlare della documentazione all'interno di Network Manager. Questa domanda riguarda solo la configurazione della VPN e del lato server. NON il collegamento ad esso parte.
Thomas Ward

: D risposta super veloce: DI penso che potrei averlo risolto, devo aver impostato qualcosa in modo errato. Detto questo ufw è attivo e consente la maggior parte delle porte.
Giocherò

@Jamie Posso darti comandi iptables da usare quando torno a casa di te preferisco iptables a ufw.
Thomas Ward

1
iptables / netfilter è usato con ufw, ufw è semplicemente più carino con regole e comandi da gestire per gli utenti finali.
Thomas Ward

19

Esempio di VPN PPTP su Ubuntu 12.04

Ecco un breve tutorial per configurare un server VPN PPTP di base su Ubuntu 12.04.

Installa i pacchetti necessari

                          sudo apt-get install ppp pptpd

Configurare gli intervalli IP PPTP sul server

                          sudo nano /etc/pptpd.conf

Aggiungi le seguenti righe alla fine

                          localip 10.89.64.1
                          remoteip 10.89.64.100-150

Questo imposta il server PPTP per utilizzare IP 10.89.64.1 mentre distribuisce l'intervallo IP da 10.89.64.100 a 10.89.64.150 ai client PPTP. Modificali come desideri purché siano indirizzi IP privati ​​e non siano in conflitto con gli indirizzi IP già utilizzati dal tuo server.

Configurare i server DNS da utilizzare quando i client si connettono a questo server PPTP

                          sudo nano /etc/ppp/pptpd-options

Modifica OPPURE Aggiungi le seguenti righe alla fine

                          ms-dns 8.8.8.8
                          ms-dns 8.8.4.4

Crea un utente PPTP

                          sudo nano /etc/ppp/chap-secrets

Aggiungi una riga in basso in modo che il tuo file assomigli a:

                          # client    server  secret          IP addresses
                          test        pptpd   abcd1234        *

Configurare NAT per connessioni PPTP

Senza questo passaggio sarai in grado di connetterti ma la tua connessione non sarà in grado di caricare alcuna connessione web da questo server.

                          sudo nano /etc/rc.local

Aggiungi quanto segue in basso a destra prima della riga "exit 0":

                          iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Supponendo eth0, è possibile utilizzare ifconfigper controllare il nome della rete.

Abilita il perwading IPv4:

                          sudo nano /etc/sysctl.conf

Rimuovi dal commento la seguente riga:

                          net.ipv4.ip_forward=1

Quindi ricaricare la configurazione:

                          sudo sysctl -p

Riavvia il tuo VPS e tutto dovrebbe funzionare a meraviglia da qualsiasi client PPTP.


Configurazione lato client

Per Mac, assicurati di aver aggiunto la connessione VPN PPTP. Oltre a ciò, devi solo impostare l'indirizzo del server, il nome account e la password nelle impostazioni di autenticazione. Nessun dolore qui.

Per Linux, NetworkManager per aggiungere connessioni VPN. Assicurati di aver aggiunto la connessione VPN PPTP. E la configurazione che uso è qui:

Come eseguire il debug e correggere la connessione client PPTP / VPN

inserisci qui la descrizione dell'immagine

E per Windows

inserisci qui la descrizione dell'immagine


Questo metodo funziona anche su Ubuntu 12.04 non-server edition? Quale numero IP deve essere utilizzato dal client per connettersi a questa rete VPN?
Rasoul,

Sì, lo è anche per l'edizione non server. Devi usare l'ip del server sul client per connetterti a vpn @Rasoul
Qasim

Non funziona, server Ubuntu 13.04. Cliente bloccato in cerca di DNS.
knutole,

@knutole verifica che le regole IPTables vengano instradate correttamente. Assicurati di avere l'interfaccia en0 e non ha un altro nome. Dovresti vedere un indirizzo IP pubblico elencato.
Nick Woodhams,

ok, quindi, nel tuo esempio quale ip è il server ip? 10.89.64.1? Quindi nel gestore di rete Ubuntu il client dovrebbe elencare 10.89.64.1 come Gateway?
dranxo,

9

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, si tratta solo di indirizzi IP per l'interfaccia ppp0).

localip 10.0.0.1
remoteip 10.0.0.100-200

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

ms-dns 8.8.8.8
ms-dns 8.8.4.4

Abilita Inoltro IP

sudo vim /etc/sysctl.conf

Annulla commento questa riga

net.ipv4.ip_forward=1

Salvare le modifiche

sudo sysctl -p /etc/sysctl.conf

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

# Secrets for authentication using CHAP
# client    server  secret          IP addresses
username pptpd supersecretpassword *

Riavvia PPTP

service pptpd restart

Esegui ifconfige trova la tua interfaccia predefinita, nel mio caso era br0 (l'ho cambiata per consentire alle macchine virtuali sulla mia macchina fisica di condividere l'interfaccia. La tua sarà probabilmente en0 )

inserisci qui la descrizione dell'immagine

Eseguire il backup di iptables

iptables-save > ~/iptables.save

Ora apporta le modifiche ai tuoi iptables utilizzando l'interfaccia predefinita come rivelato da ifconfig.

iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE
iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE
iptables -I INPUT -s 10.0.0.0/8 -i ppp0 -j ACCEPT
iptables --append FORWARD --in-interface br0 -j ACCEPT

Per mantenerlo persistente al riavvio del sistema;

sudo apt-get install iptables-persistent

Aggiungi VPN sul computer client (Mac)

Preferenze di Sistema> Rete> [+]> VPN

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

Quindi scegli Impostazioni di autenticazione> Password, quindi inserisci la password qui

inserisci qui la descrizione dell'immagine


7

Ecco un progetto piuttosto dolce che elimina il dolore di OpenVPN:

https://github.com/Nyr/openvpn-install

Basta eseguirlo e installerà open vpn e lo configurerà. Alla fine verrà visualizzato un file client.ovpn che è possibile utilizzare per configurare il client. Sembra funzionare abbastanza bene.


Mucca sacra. Funziona e basta. Mi chiedo perché non abbia un riconoscimento diffuso.
Marcus,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.