I seguenti appunti sono per poter configurare una VPN PPTP su macchine Debian Linux, sia per la parte server che per la parte client. Le configurazioni sono state fatte e testate su Debian Linux 9/10.
Lato server Debian Linux
1.) installare pppd
apt-get install pptpd
2.a) aggiungiamo DNS server in /etc/ppp/pptpd-options
ms-dns 1.1.1.1
ms-dns 8.8.8.8
2.b) aggiungiamo VPN user account in /etc/ppp/chap-secrets
# client server secret IP addresses
pippo pptpd password "10.0.0.100"
2.c) riserva indirizzi IP in /etc/pptpd.conf
localip 10.0.0.1
remoteip 10.0.0.100
3.) abilita il server a funzionare come router, modifichiamo /etc/sysctl.conf
net.ipv4.ip_forward = 1
4.a) configurare firewall per inoltrare il traffico da eth0 sulle altre interfacce, aggiungere a /etc/rc.local (invece di rc.local ho inserito nelle regole linux firewall utilizzando Webmin) <-- qui si potrebbe creare uno script e inserirlo in /etc/network/interfaces
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
4.b) inoltriamo le porte dal server al client (su cui gira aMule configurato con le porte indicate sotto) quando viene stabilita la connessione, aggiungiamo in /etc/ppp/ip-up, ("$5" è IP del client),
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 26824 -j DNAT --to-destination "$5"
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 42818 -j DNAT --to-destination "$5"
4.c) rimuovere le porte dal server al client quando la connessione termina, aggiungiamo in /etc/ppp/ip-down
iptables -t nat -D PREROUTING -i eth0 -p tcp --dport 26824 -j DNAT --to-destination "$5"
iptables -t nat -D PREROUTING -i eth0 -p udp --dport 42818 -j DNAT --to-destination "$5"
5.) il server pptp ha bisogno della porta tcp 1723 e del protocollo 47 (GRE) accettati in entrata sul firewall (table nat INPUT chain)
Lato client Debian Linux
1) installare pptp-linux
apt-get install pptp-linux
2) editare /etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client server secret IP addresses
pippo pptp password *
3) creare /etc/ppp/peers/compdev (alla prima riga ci va messo IP del server)
pty "pptp 80.210.152.143 --nolaunchpppd" <-- IP del server
name pippo <-- client in chap.secrets
remotename pptp <-- server in chap-secrets
require-mppe-128
file /etc/ppp/options.pptp
ipparam compdev
persist
4) per aggiungere route e far andare tutto il traffico internet attraverso VPN:
4.a) creare /etc/ppp/ip-up.d/compdev
#!/bin/bash
/sbin/route add default dev ppp0
4.b) rendere eseguibile il file creato
chmod +x /etc/ppp/ip-up.d/compdev
5) per avviare la VPN
pon compdev
e per fermarla
poff compdev
Infine se si vuole avviare automaticamente al boot la connessione VPN, si può aggiungere una riga a /etc/network/interfaces sotto l'interfaccia di rete principale (es.: eth0)
post-up pon compdev