pptp client
 getting started
 try it
 fedora core 1
 fedora core 2
 fedora core 3
 fedora core 4
 fedora core 5
 fedora core 6
 mandrake 9.0
 mandrake 10.0
 mandrake 10.1
 red hat 9
 red hat 8.0
 red hat 7.3
 suse 10.0
 suse 9.2
 suse 9.1
 suse 8.2
 support faq
 contact us

PPTP Client

Red Hat 8.0 HOWTO

by James Cameron
18th June 2003

This describes how to install PPTP Client on a Red Hat 8.0 system. It was tested on a system installed from CD-ROM, without updates.

The process involves installing MPPE, then PPTP followed by configuration.

We have documented two methods of installing:


  1. install MPPE capability:

    MPPE is Microsoft Point-To-Point Encryption, and is described in RFC3078. You will need to install it if your PPTP Server requires it, and if your kernel is before 2.6.15. Microsoft Windows VPN Server requires MPPE. If you do not require MPPE, skip this step.

    If you can upgrade to 2.6.15 or later, do so, then skip the remainder of this step.

    1. download the ppp rpm and upgrade to it like this:

      # rpm --upgrade ppp-2.4.2_cvs_20030610-1.i386.rpm

    1. depending on the processor type and Red Hat kernel version you are using, choose a kernel module rpm from this table:

      download link kernel version processor type comment
      rpm 2.4.20-20.8 i686 errata kernel RHBA-2003:263 contributed by Martin Diamond

      Note: unlike most other download links on SourceForge, these are instant. The files are small and are frequently released.

      Note: if the version you want is not in the table, see our instructions for building the package using kernelmod. You may wish to contribute an RPM. Our policy is to show only the versions corresponding to the distribution media and the latest security update we've received. However, we may lag in our response. That's why we need contributors.

    1. download the kernel module rpm, and install like this:

      # rpm --install kernel-mppe-*.rpm

    2. ask the system to rescan the module list:

      # depmod -a

      Note: if you get command not found, it is because you have not logged in as root. You probably just used su, but doing that may leave your PATH without a reference to /usr/sbin. Use su - to force a root login.


      Note: if you get unresolved symbols warnings, then the kernel-mppe rpm is not the correct one for your system. We've found this in feedback from people using Athlon XP processors, and errata kernels. To workaround this problem, remove the kernel-mppe package, then use the instructions for building the package using kernelmod. If you're an expert, we'd like to hear from you!

    3. test that the MPPE support loads on request:

      # modprobe ppp-compress-18 && echo success

      This is what will appear:

      Warning: loading /lib/modules/2.4.20-8/kernel/drivers/net/ppp_mppe.o will taint the kernel: non-GPL license - BSD without advertisement clause
      See http://www.tux.org/lkml/#export-tainted for information about tainted modules
      Module ppp_mppe loaded, with warnings

      This is expected and does not change the operation of the module.

  2. download the PPTP client program pptp rpm (mirror link) and install it like this:

    # rpm --install pptp-linux-1.3.1-1.i386.rpm

  3. download the configuration program pptp_php_gtk rpm (mirror link) and install it like this:

    # rpm --install pptp-php-gtk-20030505-rc1.i386.rpm


  1. obtain from your PPTP Server administrator:

    • the IP address or host name of the server,
    • the authentication domain name, (e.g. WORKGROUP),
    • the username you are to use,
    • the password you are to use,
    • whether encryption is required.

  2. run pptpconfig as root, and a window should appear,

  3. enter the server, domain, username and password into the Server tab,

  4. if you decided in Installation step 1 above that you would need MPPE, and if your administrator says encryption is required, then on the Encryption tab, click on Require Microsoft Point-to-Point Encryption (MPPE),

  5. click on Add, and the tunnel will appear in the list,

  6. click on the tunnel to select it, click on Start, and a window will appear with the tunnel connection log and status,

  7. if the connection fails, you will need to gather more information, so on the Miscellaneous tab, click on Enable connection debugging facilities, click Update, try Start again, then look at the Diagnosis HOWTO for whatever error is displayed.

  8. if the connection succeeded, you can try the Ping test button. If the ping fails, you should try to find out why before proceeding. If the ping works, then the tunnel is active and you may now work on routing.

  9. decide whether all your network traffic should go via the tunnel or not. If so, Stop the tunnel, select it again, then on the Routing tab, click on All to Tunnel, then click Update and try Start again. Now try to access the network behind the server.

  10. on the other hand, if only some of your network traffic should go via the tunnel, you will need to obtain from the server administrator or folk lore a series of network routes to enter. Stop the tunnel, select it again, then click on either Client to LAN or LAN to LAN on the Routing tab, use the Edit Network Routes button to enter the routes one by one, and then try Start again. Now try to access the network behind the server.

    For further help with Routing, read our Routing HOWTO.

Upgrade Note

If you are upgrading from the old PPP-MPPE 2.4.0 package, change /etc/ppp/options.pptp, and any existing tunnels in /etc/ppp/peers, to adopt correct naming for pppd options relating to MPPE support:

PPP-MPPE 2.4.0
unofficial naming
PPP 2.4.2
official naming
mppe-40 require-mppe
(there is a +mppe-40 option, but it is probably not what you want)
mppe-128 require-mppe
mppe-stateless nomppe-stateful
(this is the default anyway, you'd have to use mppe-stateful to turn it off)
require-chapms-v2 refuse-pap refuse-chap refuse-mschap refuse-eap
(a client cannot require a method of authentication of itself, the "require" forms of these options are intended for use by servers, and if used on a client will force authentication of the server by the client)

The option naming used previously on the PPTP Client project was for an unofficial MPPE patch to PPP. Since then, the PPP project has derived their own naming that is consistent with other pppd options. For more information, see Why are the pppd options different?

Diagnosing Problems

If you have problems with the tunnel and need to ask for help, start pppd with complete logging:

# script pptp.log
Script started, file is pptp.log
# pppd call tunnelname dump debug logfd 2 nodetach
# exit
Script done, file is pptp.log

where tunnelname is the name of the tunnel you created in the configuration program. For more detail, see enabling debug logging.

This will give you a file pptp.log that you can use to search for known solutions in the Diagnosis HOWTO or attach to an e-mail to the mailing list.


If you have comments on this document, please send them to the author at quozl at laptop.org. But if you need help, use the mailing list so that we can share the load.


2003-06-18 Derived from Red Hat 9.0 HOWTO with testing.