Subject: NetBSD packages for poptop and mppe for testing
To: None <current-users@netbsd.org>
From: Darrin B. Jewell <jewell@mit.edu>
List: current-users
Date: 09/30/1999 04:35:58
I have created two netbsd `packages' for the poptop pptp server and
microsoft encryption extensions to ppp. The NetBSD package system
allows for simple installation and management of third party software
on the NetBSD operating system.
I am making them available at:
<URL: ftp://sipb.mit.edu/pub/jewell/poptop.netbsd.pkgsrc.19990930.tgz >
<URL: ftp://sipb.mit.edu/pub/jewell/ppp-mppe.netbsd.pkgsrc.19990930.tgz >
I am subscribed to current-users@netbsd.org and pptp-server@lists.schulte.org.
It is probably more useful to hold discussion in one of those forums than
it is to send me personal mail, unless you have something that needs to be
incorporated into the package.
Please read the notes below. In particular, note that the MPPE module
is not ready for production use.
Enjoy,
Darrin
Darrin B. Jewell <jewell@mit.edu> 1999-09-30T04:30:19-0400
poptop notes:
. The poptop package uses the distribution of poptop pretty much out
of the box. The only significant modification was to accept a
configure option to allow the use of an alternate pppd than the one
shipped with NetBSD.
. Setting POPTOP_USE_MPPE=yes in /etc/mk.conf will cause poptop top use
the ppp-mppe package to support microsoft point to point encryption.
. Your kernel should not be compiled with any gre(4) devices. Comment
out lines like this from your kernel config file:
#pseudo-device gre 2 # generic L3 over IP tunnel
It might be useful at some point to have pptpd be able to use the built
in netbsd gre(4) driver, but at the moment it will just keep them from
getting to the pptpd.
ppp-mppe notes:
. This is not yet ready for production use, but does work well enough that
I could bring up an encrypted connection from an NT client to a NetBSD server.
Still, it is easy to crash. Feel free to fix.
. Provides a replacement pppd and a loadable kernel module (lkm)
which provides the mppe encryption. Alternately, it could be compiled
into the kernel if you know what your are doing and don't want to use a lkm.
. It is based on the linux mppe ppp patches available from the poptop web site.
. It uses ppp-2.3.9 and openssl-0.9.2b
. STAC LZS compression is not included.
. I test it on a netbsd-1.4.1 server with an NT client, but it should work
on -current as well. I don't really use it myself, which is one
reason that I'm making it available even though it isn't really ready.
. In order to use 128 bit encryption, you probably need to increase the
value of CCP_MAX_OPTION_LENGTH from 32 (64 is a good value, but 35
should be minimal) in /sys/net/ppp-comp.h and rebuild
your kernel. Otherwise, there isn't enough room to transfer the keys
from the pppd to the kernel module.
. Your kernel config file should have at least these:
options PPP_FILTER # Active filter support for PPP (requires bpf)
pseudo-device ppp 2 # Point-to-Point Protocol
. The lkm pretty much misuses the ppp compression/decompression hooks
to perform its encryption. This creates a few bugs, some of which are
security related. Know that MPPE is not particularly secure. (<==notice!)
. Doesn't deal correctly with the ppp mtu because MPPE expands the packet size.
. Is easy to crash. It doesn't successfully recover from lost packets
or decryption failure. I can immediately bring cause it to hang
by doing a `ping -s 50000 -c 1 remote-ip'. Fixes are appreciated,
I cannot guarantee that I will address problems myself.
. Lacks documentation. UTSL.
. The patches provided in the package are rougly divided into these groups
patch-a* -- sync ppp-2.3.9 to netbsd-current
patch-b* -- add mppe to ppp-2.3.9
patch-c* -- creates a lkm for mppe that works with the ppp already in
the kernel.
patch-d* -- misc tweaks to deal with various netbsd kernel versions,
compiling as a package, and a non-function ppp lkm.
(See source for details.)
. requires the kernel source to be present to compile. This is due to
the issues discussed in netbsd PR 5377.
. Makes a gross assumption about an internal structure in the pcap library
to do ppp filtering. This allows the package to build without the
complete netbsd source code tree online.
References:
NetBSD:
<URL: http://www.netbsd.org >
The NetBSD package system:
<URL: http://www.netbsd.org/Documentation/software/packages.html >
The PoPToP pptp server:
<URL: http://www.moretonbay.com/vpn/pptp.html >
Microsoft VPN software:
<URL: http://www.microsoft.com/technet/network/vpntwk/vpntwk.htm >
Point to Point Networking standards:
<URL: http://www.ietf.org/html.charters/pppext-charter.html >
Unix PPP implementation:
<URL: ftp://cs.anu.edu.au/pub/software/ppp/ >