The Point to Point Protocol Daemon decapsulates the ppp packets, and places them in the kernels IP stack. PPPD is also able to do authentication. This is what the Clients do. First they initiate a IPsec-connection. After a successful IPsec authentication, the CHAP process takes place, which authenticates against a password database. Luckily, PPPD is mature, and can authenticate against various databases - a plain text file with authentication data in it, the Linux passwd / shadow files, even ldap or radius would be supported.
The sample configuration for options.l2tpd2.3 for me looks like this:
ipcp-accept-remote
ms-dns 192.168.0.9
ms-wins 192.168.0.9
auth
crtscts
idle 1800
mtu 1400
mru 1400
nodefaultroute
nodetach
debug
lock
proxyarp
connect-delay 5000
disconnect /etc/racoon/setup.sh
At the moment I authenticate against a plain password file called chap-secrets:
# client server secret IP addresses
wogri * "mypassword" 192.168.0.0/24
Wolfgang Hennerbichler 2004-12-21