cd /usr/src
tar xzf linux-2.2.17.tar.gz
The following fixes a bug that may cause a segfault when debugging is on:
edit ppp-2.3.11/pppd/lcp.c around line 1541 and change the line which reads:
LCPDEBUG((LOG_INFO, "lcp_reqci: rcvd CBCP");
to read:
LCPDEBUG(("lcp_reqci: rcvd CBCP"));
First you need to patch some things that the ppp "make kernel" command did that don't work with kernel version 2.2.17:
cd /usr/src/linux
patch -p1 < ../if_ppp_2.2.17.diff
Configure your kernel as appropriate. Make sure you enable at least the following. The Netwoking options settings are needed for the firewall and masquerading. The PPP support and PTY support are required for PPTPD and PPPD.
make menuconfig
At this point you should set up LILO, or whatever you use for booting, to use the new kernel image from /boot/bzImage-2.2.17. Refer to /usr/src/linux/README and also the Kernel-HOWTO and Upgrading the Linux Kernel on Red Hat Linux systems for more details on compiling and installing a kernel. Then reboot the machine using the new kernel.
Note that both the VPN machines and the local machines have IP addresses on the same subnet. This works, and avoids the need for NAT to translate addresses from one net to the other. I am using pptpd's "./configure --with-pppd-ip-alloc" option to assign fixed IP addresses (assigned in chap-secrets) for each individual VPN user. If you don't do this (i.e. you use the default dynamic IP address assignment) the VPN machines will still be able to access the local network, but the local network machines won't be able to access the VPN machines because they won't have a fixed name-to-IP address matchup.
The Linux configuration files are:
If you can browse, but not access machines (you get "\\machinename is not accessible The network path was not found" errors when you double-click on a machine), then you are not getting proper name-to-IP resolution. The solution for this is to set up a c:\windows\hosts and c:\windows\lmhosts file containing the IP addresses and names of all of the machines on the local network. (In WinNT/2k this is in c:\winnt\system32\drivers\etc\hosts and lmhosts)
Alternatively, you can set up a wins server to aid in browsing and name resolution. To do this, add the line
ms-wins 192.168.1.1to your /etc/ppp/options.pptp file, where 192.168.1.1 must be the address of a valid WINS server (could be samba, could be winnt) for your local network. My setup is working just fine WITHOUT any WINS configuration, however.