EAP-TLS patch for pppd

Home Download Documentation: Linux PKCS#11 setup

How to use a PKCS#11 device with a Linux PPTP client (smart card and hardware tokens).

OpenSSL engine support is included starting with v0.95 of the ppp+EAP-TLS patch. Currently the only engine tested is the 'pkcs11' engine (hardware token support).
This tutorial will explain how to use a hardware token for your PPTP VPN certificate/private key pair.

Before setting up the pptp client first make sure that you have created your X.509 certificates. A short tutorial on how to do that is given here.

As explained in How to run a Linux PPTP server with X.509 certificate support, there are two methods for using pptp + ppp+EAP-TLS:
  1. Using command-line options to specify the public/private keypair and CA certificate
  2. Using a file /etc/ppp/eaptls-client to specify the public/private keypair and CA certificate
For PKCS#11 support this is also true, but we will use command-line options here to specify that the certificate and private key should be retrieved from a hardware token using the PKCS#11 engine.
The procedure for using the /etc/ppp/eaptls-client file in combination with a hardware token is very similar.

For this tutorial a SafeNet (formerly Aladdin) eToken PRO 72K was used, in combination with the SafeNetAuthenticationClient 8.1. Other hardware tokens can also be used, as long as they provide a fully functional PKCS#11 interface. A fully opensource PKCS#11 package is OpenSC. Unfortunately, the eToken PRO 72K is not supported, hence we have to resort to the SafeNet driver.
You can/should also read the documentation
How to run a Linux PPTP server with X.509 certificate support