WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Mise en place d'un proxy Squid sécurisé avec authentification LDAP

( Télécharger le fichier original )
par Djiby Thiaw
Ecole Supérieure Polytechnique de Dakar - DTS Téléinformatique 2002
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

III.2. Authentification avec LDAP

Dans la mise en oeuvre jusqu'ici, nous ne faisions pas de contrôle sur les utilisateurs, seulement sur les IPs des machines clientes. Nous pouvons identifier nos utilisateurs lorsqu'ils vont surfer sur le Net. Dans ce cas, il nous faudra mettre en place un système d'identification. Il y a plusieurs méthodes disponibles pour authentifier nos utilisateurs du proxy. Elles font toutes appel à un programme extérieur, différent suivant le moyen choisi. Nous allons utiliser l'annuaire LDAP pour cette authentification.

III.2.1. Installation de LDAP

Comme annuaire LDAP, nous allons utiliser le logiciel OpenLDAP qui est un logiciel libre basé sous la licence GNU GPL. La dernière version actuelle stable est le 2.4.23. Nous allons procéder à une installation automatique afin d'obtenir toutes les dépendances nécessaires. L'installation se fait via la commande :

#apt-get install slapd

Figure 8: Installation annuaire LDAP

On remarque ainsi que le paquet slapd est installé avec quatre autres paquets supplémentaires qui participent au bon fonctionnement de l'annuaire.

III.2.2. Configuration de LDAP

Il faut tout d'abord indiquer dans le fichier /etc/default/slapd la localisation du fichier de configuration de OpenLdap qui est /etc/ldap/slapd.conf. Pour le faire, on doit ajouter cette ligne dans ce fichier :

SLAPD_CONF="/etc/ldap/slapd.conf"

Il faut par la suite modifier le fichier /etc/ldap/slapd.conf. Il faut autoriser les clients qui utilisent le protocole LDAPv2 (par défaut seuls ceux utilisant LDAPv3 sont autorisés). En effet, SQUID peut utiliser LDAPv2, donc dans ce cas il faut décommenter cette ligne qui devient indispensable :

allow bind_v2

On ajoute aussi ces lignes suivantes :

suffix "dc=esp,dc=sn"

rootdn "cn=admin,dc=esp,dc=sn"

directory "/var/lib/ldap"

rootpw secret

Pour la dernière ligne, il faut remplacer secret par un vrai mot de passe qui apparait alors

en clair ce qui est déconseillé. On peut crypter ce mot de passe via la commande : #slappasswd

Puis on copie le résultat de cette commande à la place de secret. On modifie enfin le

fichier /etc/ldap/ldap.conf et on ajoute ces deux lignes : BASE dc=esp,dc=sn

URI ldap://127.0.0.1:389

Pour terminer, on redémarre le serveur :

/etc/init.d/slapd restart

III.2.3. Ajout d'entrées dans l'annuaire LDAP

Ensuite, on peut consulter l'annuaire, ajouter, modifier, ou retirer des entrées au moyen des commandes ldapsearch, ldapadd, ldapmodify, ldapdelete (fournis avec OpenLDAP ) et de fichiers LDIF (LDAP Data Interchange Format) ou bien à l'aide d'outils graphiques comme l'interface php phpLDAPadmin. 2 nNdiginiINSErN1T 13 Sl1 NlIEWEir1NIidessous avec ce fichier ldif :

Figure 9: Fichier ldif des entrées

Puis on ajoute ces informations dans l'annuaire de la manière ci-dessous :

Figure 10: Ajout des entrées dans l'annuaire

On peut aussi ajouter d'autres utilisateurs grlce aux fichiers ldif ou bien à l'aide d'outils graphiques tel que phpLDAPadmin.

III.2.4. Configuration de SQUID pour l'authentification

Pour la configuration de SQUID, on utilise l'option squid_ldap_auth qui est ce qu'on appelle un « authentication helper », c'est-à-dire un petit programme qui détermine si un couple login/pass est correct : dans ce cas-ci, il communique avec un annuaire LDAP afin de voir s'il existe une entrée dans l'annuaire ayant le login indiqué dans un champ uid (ou cn ou autre si on le précise), et le pass correspondant dans un champ userPassword. Ce programme doit renvoyer la chaîne de caractères "OK" en cas de succès et "ERR" en cas d'échec. On ajoute dans squid.conf les lignes suivantes :

auth_param basic program /usr/lib/squid/ldap_ auth -b

ou=profs,dc=esp,dc=sn -u cn -h 127.0.0.1

auth_param basic children 5

auth_param basic realm Identification requise par firewall_esp auth_param basic credentialsttl 2 hours

Les paramètres utilisés pour squid_ldap_auth sont :

· -b ou=profs,dc=esp,dc=sn : indique la base de l'arborescence de l'annuaire à partir de laquelle on recherche l'utilisateur qui essaie de s'authentifier

· -u cn : indique le type du login que l'on tape pour s'authentifier (par exemple cn, uid...)

· -h 127.0.0.1 : adresse du serveur LDAP, il est ici sur la même machine que le proxy

Les trois dernières lignes servent à :

· auth_param basic children 5 : le nombre de processus d'authentification qui seront lancés en permanence sur le serveur, chacun ne pouvant servir qu'une demande à la fois

· auth_param basic realm Identification requise par firewall_esp : la chaîne de caractères qui suit realm sera affichée par le navigateur utilisé lors de la demande d'authentification, elle permet donc d'indiquer à l'utilisateur que c'est au proxy qu'il essaie de se connecter

· auth_param basic credentialsttl 2 hours : la durée au bout de laquelle l'authentication helper sera relancé. Cela ne veut pas dire que la fenêtre demandant le login/pass va se réafficher (cela ne dépend pas de SQUID, mais du navigateur utilisé). Concrètement, au bout du temps indiqué, il y aura de nouveau un

échange de paquets LDAP entre Squid et le serveur LDAP pour authentifier l'utilisateur, et éventuellement lui interdire l'accès.

Pour terminer on ajoute ces deux règles acl et on redémarre le serveur :

acl password proxy_auth REQUIRED http_access allow password

Cette règle indique que tous les utilisateurs authentifiés auront un accès http mais suivant sa position par rapport à d'autres règles d'accès, cet accès sera peut-être restreint.

La capture ci-dessous illustre bien cette authentification.

Figure 11: Authentification requise par le proxy

III.3. SQUID avec SquidGuard
III.3.1. Définition

SquidGuard est un module pour le serveur proxy SQUID. Ce module ajoute des fonctionnalités plus avancées en matière de filtrage basé sur une liste noire de sites web à bloquer et une liste blanche de sites à ignorer. SquidGuard est ainsi un programme redirecteur distribué sous licence GPL, c'est-à-dire que toutes les trames HTTP seront redirigées vers SquidGuard pour être analysées puis filtrées. Il est nécessaire pour cela d'indiquer à Squid que les trames devront transitées par SquidGuard avant de passer dans le cache du Proxy. La fonction de filtre de SQUID est alors optimisée dans le programme SquidGuard ce qui lui permet d'analyser des listes d'URLS en un temps record. Une fois lancé, SquidGuard apparaîtra comme un processus fils de SQUID.

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Il faudrait pour le bonheur des états que les philosophes fussent roi ou que les rois fussent philosophes"   Platon