As a Linux user and an telecommuting employee one of my biggest challenges was configuring the VPN Client to connecct to my employer's VPN server so I had access to the Knowledge Base as well as all other Internet services:
Linux, unlike Windows, requires additional routing configurations. Fortunately this is an easy step once you understand what it is Linux is looking for.
This how to uses KVPNC as the VPN manager. The Network-Manager in both KDE and Gnome has a known issue with VPN and therefore is unusable. Ideally it would be best to use it instead of adding another network managemet tool into the mix. However, KVPNC works well in both KDE and Gnome and I assume other GUI interfaces as well.
I am using Ubuntu 8.10 (Intrepid Ibex) in this example.
Start by getting the needed packages:
sudo apt-get install kvpnc pptp
NOTE: pptp-linux which is another pptp client program did not work for my VPN. This may only be a Ubuntu flavored issue. It is recommended to use pptp only.
Once you have installed KVPNC in Ubuntu it can be found in the Internet section of the menu.
Start KVPNC and run the wizard. Plug in your base information. You will not to be able input all information but at this point all we are interested in is getting the profile created. We will use the configuration editor in KVPNC to properly setup Linux to connect to the VPN.
This is the General options window. Gnome users should uncheck “Use KWallet” KDE users will most likely want to leave it checked. Leave “Do not quit by clicking close button” checked. Otherwise KVPNC will not minimize to the system tray.
You may select “Hide on startup” If you choose.
Now select General under the Profiles section.
The Profile name should be the one you gave it when you ran the Wizard.
The description is optional.
The connection type should be PPTP
The Gateway address should be the actual IP address of the VPN gateway on the Internet.
Click “Apply” if you made any changes.
Now go to Routes under the Network section
Okay here is where we have to set things up so that everything works like its supposed to. Linux unlike Windows does not automatically setup PPTP routing. This is where we run into issues. It is important you setup the VPN routing exactly as I show you otherwise your access to the Internet can be severely hampered if not outright broken. Linux's default settings will set the VPN tunnel as your only access route to and from the Internet. Most VPN servers are not designed to handle this. So we have to set a route that sends only traffic that is targeted for the VPN to go there while all other traffic uses the default system route.
First thing is tell KVPNC to “Keep default route” otherwise it will use the VPN tunnel for all traffic. The default is “Replace default route” Simply click the drop down arrow and change to “Keep default route” to get the desired behavior.
Next we need to set the VPN route for all traffic associated to the VPN. I will use 192.168.1.0 as the example. To do this click the “Add route” button. This will bring up the settings dialog box.
Set the remote network to 192.168.1.0 with a netmask (matrix) of 24 (default) leave “Use gateway” unchecked and check “Use interface” and then from the drop down select ppp0 for the device.
Click “OK” then click “Apply” in the Network Routing Window.
Now go to PPTP under Connection specific.
Okay this is the final step to get Linux to communicate with our VPN. Make sure that “Require MPPE” is unchecked if you do not use encryption. MPPE is the encryption method for PPTP so this must be off or you will not connect if your VPN doesn't use it. Ensure the “Authorization Method” is set to chap (in most cases) and not pap.
Once you have made these settings click the “Apply” button and close the settings dialog.
Click the “Connect” button and Linux should make the connection to your VPN. You should now be able to access your VPN services and the Internet without restrictions.