[월:] 2013년 02월

  • Installing pptpd on Ubuntu

    Recently I had to set up VPN server on my Ubuntu server 10.04.

    Yes, Ubuntu 10.04 is old but the following guide  will also work for latest  Ubuntu systems as well.

    pptpd is the VPN server that provides microsoft VPN protocol, which will mostly work fine with any vpn connection from Windows, OSX, or iOS systems.

    Anyway, here are the steps for installing and configuring pptpd:

    1. Install pptpd

    sudo apt-get install pptpd

    2. Configure your IP

    sudo vi /etc/pptpd

    (Use nano if you are not familiar with vi/vim)

    At the last two bottom lines, pptpd would already have configured localip and remoteip according to your system. If not, you should modify it.

    For example, if your server’s IP is 192.168.0.20, then you may configure as follows:

    localip 192.168.0.20
    remoteip 192.168.0.230-239

    It will make pptpd to use server ip address as 192.168.0.20 while vpn clients that access to this server will use remove ip range from 192.168.0.230 – 192.168.0.239. It also means, you will allow only 10 multiple vpn client connections at a time. You can increase it if you want, but make sure remoteip range doesn’t overlap with localip.

    3. Configure ppp options

    In your /etc/pptpd/conf file, there may be options file location. It probably will be /etc/ppp/pptpd-options. Let’s open it and make sure we have right encryption level.

    sudo vi /etc/ppp/pptpd-options

    Do not allow pap, chap, and mschap.

    refuse-pap
    refuse-chap
    refuse-mschap

    Allow ms-chapv2 (which is more secure) and mppe-128.

    require-mschap-v2
    require-mpp3-128

    I think those are already default option. If so, you don’t need to make any change.

    Also, you need to configure DNS.  Check /etc/resolve.conf if your server already have configured DNS. If that address is 22.22.22.22 and 22.22.22.23 configure ms-dns as

    ms-dns 22.22.22.22
    ms-dns 22.22.22.23

    Otherwise you may use Google’s DNS server.

    ms-dns 8.8.8.8
    ms-dns 8.8.4.4

    4. Configure account for user

    Lastly, you should configure user account for the VPN connection.

    sudo vi /etc/ppp/chap-secrets

    And add

    testuser pptpd testpassword *

    Then you may be able to connect to VPN with ID=testuser PW=testpassword.

    Note that if you use special characters like “#” in the password, that will cause trouble. I recommend to use just alphanumeric for your password. Also, make sure your chap-secrets file in unix CRLF format. (I spent couple of hours to find the problem that pptpd didn’t let me log in–it was due to chap-secrets file)

    5. Restart pptpd

    You can simply

    sudo server pptpd start

    to start the pptpd server or

    sudo server pptpd restart

    to restart pptpd.

    6. Check what’s going on with syslog

    If VPN doesn’t work, you may want to check out what’s going on under the hood. All the message will be recorded through syslog. So

    sudo tail -f /var/log/messages

    will show you any log associated with pptpd.

    I hope this helps whom wants to run VPN server on Ubuntu.

    Cheers,