sudo modprobe ppp-generic
sudo apt-get install pptp-linux pptpd ppp curl
sudo nano /etc/ppp/peers/myvpn
pty "pptp <IP SERVER> --nolaunchpppd"
lock
noauth
nobsdcomp
nodeflate
name vpnusername
remotename myvpn
require-mppe-128
usepeerdns
defaultroute
persist
sudo vi /etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client server secret IP addresses
vpnusername[TAB]vpnserver[TAB]vpnpassword[TAB]*
sudo nano /etc/ppp/ip-up.d/routevpn
#!/bin/bash
H=`ps aux | grep 'pppd pty' | grep -v grep | awk '{print $14}'`
DG=`route -n | grep UG | awk '{print $2}'`
DEV=`route -n | grep UG | awk '{print $8}'`
route add -host $H gw $DG dev $DEV
route del default $DEV
route add default dev ppp0
sudo chmod +x /etc/ppp/ip-up.d/routevpn
Connect / Disconnect VPN
sudo pon myvpn
sudo poff myvpn
Script auto startup
#!/bin/bash
HOST=[local IP pptp]
DATE=`date`
PINGRES=`ping -c 2 $HOST`
PLOSS=`echo $PINGRES : | grep -oP '\d+(?=% packet loss)'`
echo "$DATE : Loss Result : $PLOSS"
if [ "100" -eq "$PLOSS" ];
then
echo "$DATE : Starting : $HOST"
/usr/bin/pon myvpn
echo "$DATE : Now running : $HOST"
else
echo "$DATE : Already running : $HOST"
fi
sudo nano /etc/crontab
*/1 * * * * root /root/cron/pptp_cron.sh >> /var/log/pptp_pinger.log 2>&1