PPTP VPN On CentOS 6 Auto Installer

This script will auto install PPTP VPN on CentOS 6 32bit. Before run this script, you need to make sure PPP is enabled on your VPS/Dedicated Server. This script has been tested on OpenVZ VPS with 128mb memory.

Check if PPP module is enable.

cat /dev/ppp

If you receive this message, PPP module is enable.

cat: /dev/ppp: No such device or address
wget http://www.rockia.com/dl/pptpd6.sh
chmod +x pptpd6.sh
./pptpd6.sh

use wget http://www.maxwhale.com/download/pptpd6.sh if above link doesn’t work.

yum install nano # if nano is not installed.

edit VPN username and password

nano /etc/ppp/chap-secrets

if you got those errors after installation:

iptables: Saving firewall rules to /etc/sysconfig/iptables: /etc/init.d/iptables: line 274: restorecon: command not found                     [FAILED]

Run following command,

yum install policycoreutils

Script Source Code:

yum remove -y pptpd ppp
iptables --flush POSTROUTING --table nat
iptables --flush FORWARD
rm -rf /etc/pptpd.conf
rm -rf /etc/ppp

arch=`uname -m`
wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-2.el6.$arch.rpm

yum -y install make libpcap iptables gcc-c++ logrotate tar cpio perl pam tcp_wrappers dkms kernel_ppp_mppe ppp
rpm -Uvh pptpd-1.3.4-2.el6.$arch.rpm


mknod /dev/ppp c 108 0 
echo 1 > /proc/sys/net/ipv4/ip_forward 
echo "mknod /dev/ppp c 108 0" >> /etc/rc.local
echo "echo 1 > /proc/sys/net/ipv4/ip_forward" >> /etc/rc.local
echo "localip 172.16.36.1" >> /etc/pptpd.conf
echo "remoteip 172.16.36.2-254" >> /etc/pptpd.conf
echo "ms-dns 8.8.8.8" >> /etc/ppp/options.pptpd
echo "ms-dns 8.8.4.4" >> /etc/ppp/options.pptpd

pass=`openssl rand 6 -base64`
if [ "$1" != "" ]
then pass=$1
fi

echo "vpn pptpd ${pass} *" >> /etc/ppp/chap-secrets

iptables -t nat -A POSTROUTING -s 172.16.36.0/24 -j SNAT --to-source `ifconfig  | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk 'NR==1 { print $1}'`
iptables -A FORWARD -p tcp --syn -s 172.16.36.0/24 -j TCPMSS --set-mss 1356
service iptables save

chkconfig iptables on
chkconfig pptpd on

service iptables start
service pptpd start

echo "VPN service is installed, your VPN username is vpn, VPN password is ${pass}"

14 thoughts on “PPTP VPN On CentOS 6 Auto Installer”

  1. thanks for the script. it worked perfectly!
    i have a question. if I am running centos 6 64 bit. will i be able to use this script?

    thanks.

  2. This is really a an Auto installer.
    I used the password from the following file of my server
    /etc/ppp/chap-secrets

    usage
    cat /etc/ppp/chap-secrets

    I used it on OpenVZ CentOS6 64Bit

  3. Hi Steve… excellent work..

    Some tips.. enable PPP on OPENVZ and remember the ip_nat_pptp on FW.

  4. I’m not getting any permission denied messages in console, but it’s still not creating some files..

    error: Failed dependencies:
    ppp = 2.4.5 is needed by pptpd-1.3.4-2.el6.x86_64
    mknod: `/dev/ppp’: File exists
    ./pptpd6.sh: line 20: /etc/ppp/options.pptpd: No such file or directory
    ./pptpd6.sh: line 21: /etc/ppp/options.pptpd: No such file or directory
    ./pptpd6.sh: line 28: /etc/ppp/chap-secrets: No such file or directory

  5. This is the best installer that I found.
    I try to solve the compatibility problem between ppp and pptp for 2 days, everything is working perfectly thruogh this script.
    Just sit and wait .

    Thanks

  6. I run this script and it work well. No error.
    After that I cant connect to my vpn server. Checked and port 1723 is OPEN. Iptables has been disabled. Can you help me?

Leave a Reply

Your email address will not be published. Required fields are marked *