Using OTP auth in Apache

From FreeAuth Wiki

Jump to: navigation, search

Contents

[edit] One Time Passwords with Apache

TODO: This page and attached code needs to be updated to utilise the FreeAuth method, rather then the old mOTP method.


See OTP Implementation for further details.


[edit] Installing the apache module

Go here and grab the latest for the version of apache you are running.


wget http://www.unixpapa.com/software/mod_auth_external-x.y.z.tar.gz
tar xzvf mod_auth_external-x.y.z.tar.gz


In debian based systems you need to make sure apache-dev (or apache2-dev) is installed.


apt-get install apache-dev


Then:


apxs -c mod_auth_external.c
apxs -i -a mod_auth_external.so


This will build and install the module, and add the load line to httpd.conf.


[edit] Apache Configuration

The usual ways to provide http authentication apply, you can configure .htaccess or in the main apache configuration, I'll only deal with the latter in this document.


In /etc/apache/httpd.conf below any module load lines put something like the following:


AddExternalAuth archive_auth /usr/bin/MOTP.php
SetExternalAuthMethod archive_auth pipe


<Directory /path/to/files/to/protect>
	AuthName "phpMyAdmin"
	AuthType Basic
	AuthExternal archive_auth
	require valid-user
	Satisfy all
</Directory>


[edit] House keeping

You will also need to make some directories to store cookies and login attempts.


mkdir -p /var/motp/cookies
mkdir -p /var/motp/cache
mkdir -p /var/motp/users


You also need to download a copy of the OTP script...


http://www.freeauth.org/images/MOTP.txt


I saved it as /usr/bin/MOTP.php, you also need to make it executable:


chmod 755 /usr/bin/MOTP.php


and that's pretty much it, make sure you restart apache etc.