How to install PPTPD on CentOS VPS

Here is a very straight forward script that will install PPTPD on CentOS in no time:


chmod +x


This is basically it, the script should give you a username and password (randomly generated) at the end, and it only takes a few seconds to install.

Here is the complete script if you’re curious to know how it does it:

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`

yum -y install make libpcap iptables gcc-c++ logrotate tar cpio perl pam tcp_wrappers dkms kernel_ppp_mppe ppp
rpm -Uvh pptpd-1.4.0-1.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” >> /etc/pptpd.conf
echo “remoteip” >> /etc/pptpd.conf
echo “ms-dns” >> /etc/ppp/options.pptpd
echo “ms-dns” >> /etc/ppp/options.pptpd

pass=`openssl rand 6 -base64`
if [ “$1” != “” ]
then pass=$1

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

iptables -t nat -A POSTROUTING -s -j SNAT –to-source `ifconfig | grep ‘inet addr:’| grep -v ‘’ | cut -d: -f2 | awk ‘NR==1 { print $1}’`
iptables -A FORWARD -p tcp –syn -s -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}”


A good place to get a VPS and use as a PPTPD would be
check them out!

This has made my life easier and just to clarify; I didn’t come up with this idea, it was already out there but I found it broken, so I thought i’d fix it and make it available for everyone.