John's Linux PPP patch

NEW: RPM for RedHat 7.2.

This is a simple plugin for pppd which will do pap authentication against an NT domain.  

Getting the plugin

I have build an RPM which works with the RedHat ppp-2.4.1-3 for RedHat 7.2. Other versions might work. Download the i386 version or the source. The rpm has new multi domain config files which allow users to be authenticated against different domains. Please read the instructions.

Old patch information

The plugin was built with pppd 2.3.11.  It may work with other versions but I have not tested it. You can get pppd from  I think the new 2.4 version has moved but 2.3 is still available there.  Get the plugin code smb.c and the Makefile.  Put these file in the pppd/plugins directory.

You will need the pam_smb packege which is where I stole the authentication code from.  You can get it from  You will need one extra file which I wrote to do some advanced processing.  It is not strictly needed but I wanted to strip off the domain name the users supplied.  I also played with a list of permitted users but did away with that. smb_test.c.  To build the file into a library, add the following lines to the Makefile (after you have run configure)

smb_test: smbvalid
	gcc -DLIBRARY -c smb_test.c
	gcc -c pam_read_conf.c
	rm -f smb.a
	ar ar r smb.a smb_test.o pam_read_conf.o
	gcc -o smb_test smb_test.c pam_read_conf.o smbval/smbvalid.a

Once you have build pam_smb and smb_test you can build the plugin.  Change to the plugin directory and type make

Using the plugin

Before the plugin will work you will have to make sure that you have set up /etc/pam_smb.conf as per the pam_smb documentation.  You can test the authentication with the smb_test program. (Build it with the following command)

gcc -Wall -o smb_test smb_test.c pam_read_conf.c smbval/smbvalid.a

Using the plugin is simple.  Along with regular pppd options, add the following
plugin /path/to/plugins/

And as always, report success and failure to

Last modified 05/09/03
Maintained by John Newbigin

Back to Linux info