Pré-requis

  • Debian ou autre
  • Apache
  • PostgreSQL
  • mod_auth_pgsql

Configuration d'Apache

Dans cette partie l'on considère que Apache est déja installé et fonctionnel Tous d'abord nous installons le module Apache : Mod-Auth-Pgsql.

# apt-get install libapache-mod-auth-pgsql

Ensuite nous devons utiliser

# /usr/sbin/modules-config apache

Pour ajouter le chargement du module dans /etc/apache/modules.conf.

Cette manipulation n'a pas fonctionné correctement chez moi et je vous conseille de rajouter la ligne ci dessous si celle ci n'est pas présente dans votre fichier modules.conf.

LoadModule auth_pgsql_module /usr/lib/apache/1.3/mod_auth_pgsql.so

ensuite un rechargement de la configuration d'Apache pour prendre en compte ce nouveau module.

# /etc/init.d/apache reload

Configuration PostgreSQL

Du coté de PostgreSQL, il suffit de créer une table contenant un minimum de 2 champs (login, mot de passe).

CREATE TABLE users (
   id integer NOT NULL,
   login character varying(20) NOT NULL,
   nom character varying(20),
   prenom character varying(16),
   mail character varying(120),
   adresse character varying(50),
   codpos character(5),
   ville character varying(26),
   pays character varying(20),
   description text,
   gnupg character(40),
   passwd character varying(32) NOT NULL
);

Vous pouvez charger cette table via PHPPgAdmin .

Protection du répertoire

Pour cela nous utilisons les .htaccess, voici en détail la configuration que j'utilise. Dans la base, mon mot de passe est crypter en MD5.

AuthName "Mon Reseau"
AuthType Basic
Auth_PG_host localhost
Auth_PG_port 5432
Auth_PG_user kryskool
Auth_PG_pwd xxxxxxxx
Auth_PG_database test
Auth_PG_pwd_table "users"
Auth_PG_uid_field login
Auth_PG_pwd_field passwd
Auth_PG_encrypted on
Auth_PG_hash_type MD5
<LIMIT GET POST>
       require valid-user
</LIMIT>

Il faut renseigner les champs suivants avec vos valeurs

  • Auth_PG_host : Nom ou adresse IP du serveur PostgreSQL
  • Auth_PG_port : Port utilisé, par default 5432
  • Auth_PG_user : Nom de l'utilisateur PostGresql
  • Auth_PG_pwd : Mot de passe de l'utilisateur
  • Auth_PG_database : Nom de la base de données
  • Auth_PG_pwd_table : Nom de la table ou sont stockées les utilisateurs
  • Auth_PG_uid_field : Nom du champ qui contient le Login de l'utilisateur
  • Auth_PG_pwd_field : Nom du champ qui contient les mot de passe
  • Auth_PG_encrypted : Si off les mot de passe sont stockés en clair dans la table (déconseillé)
  • Auth_PG_hash_type : Soit MD5 ou CRYPT

le reste est standard au fichier .htaccess A noter qu'il existe le même module pour MySql et LDAP.

Comments