PPTP is an wonderful utility to enable VPN on a Linux box. Its secure and compatible with Windows network. I first heard about PPTP from (this wonderful guy called) Nikolaj. I have learnt how to set it up from him.
I am detailing the steps here:
yum install pptp
###############################################################################
# $Id: options.pptp,v 1.2 2005/08/20 13:16:38 quozl Exp $
#
# Sample PPTP PPP options file /etc/ppp/options.pptp
# Options used by PPP when a connection is made by a PPTP client.
# This file can be referred to by an /etc/ppp/peers file for the tunnel.
# Changes are effective on the next connection. See "man pppd".
#
# You are expected to change this file to suit your system. As
# packaged, it requires PPP 2.4.2 or later from http://ppp.samba.org/
# and the kernel MPPE module available from the CVS repository also on
# http://ppp.samba.org/, which is packaged for DKMS as kernel_ppp_mppe.
###############################################################################
# Lock the port
lock
# Authentication
# We don't need the tunnel server to authenticate itself
noauth
persist
debug
# We won't do EAP, CHAP, or MSCHAP, but we will accept MSCHAP-V2
refuse-eap
refuse-chap
refuse-mschap
# Compression
# Turn off compression protocols we know won't be used
nobsdcomp
nodeflate
# Encryption
# (There have been multiple versions of PPP with encryption support,
# choose with of the following sections you will use. Note that MPPE
# requires the use of MSCHAP-V2 during authentication)
# http://ppp.samba.org/ the PPP project version of PPP by Paul Mackarras
# ppp-2.4.2 or later with MPPE only, kernel module ppp_mppe.o
# {{{
# Require MPPE 128-bit encryption
#require-mppe-128
# }}}
# http://polbox.com/h/hs001/ fork from PPP project by Jan Dubiec
# ppp-2.4.2 or later with MPPE and MPPC, kernel module ppp_mppe_mppc.o
# {{{
# Require MPPE 128-bit encryption
#mppe required,stateless
# }}}
lcp-echo-failure 36
lcp-echo-interval 5
lcp-max-failure 0
# Secrets for authentication using CHAP
# client server secret IP addresses
VPNUserName PPTP VPNPassword *
#pty "pptp my-company.com --nolaunchpppd"
name VPNUserName
remotename PPTP
require-mppe-128
file /etc/ppp/options.pptp
ipparam my-company-vpn
pptp my-company.com call my-company-vpn
route -n
You should see something like:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.162 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
87.61.21.102 192.168.1.1 255.255.255.255 UGH 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
If you see ppp0, it means you have successfully connected to the VPN.
route add -host 192.168.1.30 gw 192.168.1.162
Where 192.168.1.30 is my internal company IP.
vi /etc/resolv.conf
#to use when connected to the VPN my-company.com
domain my-office.my-company.com
#this, is the most important line: courtesy: Nikolaj
search my-office.my-company.com
#nameserver 192.168.1.1
nameserver 192.168.1.4
nameserver 192.168.1.5