Setting up a PPTP VPN in Linux

PPTP or PopTop is a vpn implementation that is rather similar to OpenVPN. The difference is that PPTP is quite a bit less secure than OpenVPN, as it is not encrypted. That said, if you need quick VPN solution that’s easy and hassle free to set up, PPTP is the obvious choice.

The test system here is Debian 6.0 Squeeze (x64). The basic steps are the same; just use your own distro’s package manager instead.

We first need to get the software itself installed. This can be achieved using the following command:

sudo apt-get install pptpd

That will install the PPTP daemon and some of its dependencies. Wait for it to finish, it shouldn’t take long.

After that, we just need to configure it a bit. The default PPTP configuration file is located at /etc/pptpd.conf. This may vary according to your distro, the debian package also specifies /etc/ppp/pptpd-options

Let’s get down to configuring the server, shall we? Open up pptpd.conf in your favorite text editor. We only need to add two lines to it, they’re as follows:

localip 192.168.1.1
remoteip 192.168.1.100-120

The Local IP is the IP address of the server, remoteip specifies the IPs the vpn will assign its clients. Feel free to change them around as seen fit.

Next, move onto /etc/ppp/pptpd-options. This file defines some global settings for the pptp server to use. I’m pasting mine below, configure it as needed.

{codecitation}name Private.VPN

refuse-pap

refuse-chap

refuse-mschap

require-mschap-v2

require-mppe-128

ms-dns 192.168.1.1

proxyarp

nodefaultroute

lock

nobsdcomp

noipx

mtu 1490

mru 1490{/codecitation}

 

Be sure to change the ms-dns directive to your router or server’s dns server. Only thing left now is to configure the users who can use the VPN. This is done by editing the /etc/ppp/chap-secrets file.

This is what the default template looks like:

# client server secret IP addresses
user * password *

 

Specify your users according to that format and you’re almost done. Only one thing needs to be done now, that is giving the pptp server a restart.

/etc/init.d/pptpd restart

With that, your pptp server setup is complete. If you run into any problems, take a look at /var/log/syslog. Whatever went wrong will be logged there.

You can connect to this VPN server from almost any VPN client that exists. PPTP is very common nowadays.

Thanks to convexity for this Post