About ~~~~~ The wmpptpd is a linux PPTP server. After few minor changes it can be used as a client, too. This server is distributed under the terms of GNU GPL license, check ``COPYING'' for details. (c) 2000, 2001 Milan Pikula and Marek Zelem . Introduction ~~~~~~~~~~~~ The PPTP, point-to-point tunelling protocol, is used to tunell a PPP connection over the local network. It is often used to build the virtual private networks using Windows 9x machines and NT server. There exists a PPTP server and PPTP client for Linux, both of them used to communicate with a windows machine: server (PoPToP): http://poptop.lineo.com client (PPTP-Linux): http://cag.lcs.mit.edu/~cananian/Projects/PPTP However, there are more implementations than the one in Windows around, and we've got a Compaq Microcom 4000 modem rack, which answers digital incomming calls and forwards the requests to a server (using PPTP of course). At first, we tried to adapt a PoPToP server or client to do the job for us, but unfortunately found many problems, so we started from scratch. Our goals were: - working PPTP implementation - extensible and flexible design - multiple connections at one time - support for as many pptp-talking clients as possible After few nights, the first versions were ready, few bugs were caught (for example, we had to throw our implementation of windows, as microcom 4000 does not use them; we found few serious design flaws of PPTP protocol itself, spent some time catching the bugs with multiple connections, ...). Then we installed this all on our production server and forgot about it. After some time, we've got some bug reports, which needed to be ironed out. So we re-visited the sources, fixed the bugs and made this release. Installing ~~~~~~~~~~ ... is almost as simple as usual GNU software installation: zcat wmpptpd.tar.gz | tar xf - ./configure make make install At this point, you have to create the wmpptp-options and wmpptpd_ppp_cmdlines, both probably located in /etc. Look at the section ``How does it work'' for details. Eventually you might want to tune some parameters. For the list of known options and their values, look at ./configure --help. Just a small footnote: to connect with Compaq Microcom 4000, use --disable-give-ack --disable-have-ack --disable-window --enable-outseq and to connect to PPTP-Linux client, use --enable-give-ack --enable-have-ack --enable-window --enable-outseq How does it work ~~~~~~~~~~~~~~~~ wmpptpd waits for client's IN_CALL_REQUEST, and then starts a pppd and connect it to client. File /etc/ppp/wmpptp-options contains the options for pppd started from wmpptpd, which should be similar to your /etc/ppp/options. File /etc/wmpptpd_ppp_cmdlines contains multiple lines, each containing a commandline arguments for pppd. When starting multiple instances of pppd, each one is given a parameter to use the wmpptp-options file, followed by one line of arguments from wmpptpd_ppp_cmdlines. Thus, the maximum number of simultaneously running pppd is limited by number of lines with command-line arguments. File /etc/wmpptpd_ppp_cmdlines will be most likely used to specify unique IP address for each pppd. A little contribution to the non-existing ``bugs and features'' chapter: In fact we support a server part of PPTP. We can communicate with linux client, compaq microcom 4000 and probably many more devices. As the various implementations of PPTP are almost as miserable as the protocol itself, you must tune the options of the wmpptp daemon at compile time to include/exclude some features, in order to communicate with other end. There is not very much work to be done to implement client mode, too - in fact, it's just copying few lines of code and make some command-line parameters for this. Plans, known bugs, todo list ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ As this is a open-source project, we encourage ANYONE to contribute. This is not our priority project, so most likely we will not do a regular support or updates. If someone wants to take over this project, (s)he's welcome. Here is the current todo list. 1. Documentation!!! This have to be written by someone, translated into few languages and kept up-to-date with software. 2. client mode 3. test this against all real pptp implementations (clients, servers) to find out, what needs to be done and what configuration options to use when communicating with the implementation. You? great, well, mail to www@terminus.sk for details.