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 pptpd
e ufw
. iptables
può 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/ufw
e cambia l'opzione DEFAULT_FORWARD_POLICY
da DROP
aACCEPT
10: questo passaggio presuppone che tu abbia ufw.
Modifica /etc/ufw/before.rules
e aggiungi quanto segue all'inizio /etc/ufw/before.rules
o appena prima delle *filter
regole (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/*.rules
file: 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>