Informatique

Configuration de cntlm

La gestion des passerelles authentifiantes sous bash est souvent problématique. Configurer la  passerelle se fait alors par un export http_proxy dans lequel le mot de passe est en clair. Il est évident que cette solution n’est pas satisfaisante. Dans la suite de ce billet ja vais présenter l’installation de cntlm qui permet de régler ce problème de manière simple et sécurisée.

Installation et configuration de cntlm

Informations nécessaires

Avant de commencer, il faut connaitre son nom d’utilisateur, son mot de passe et le domaine dans lequel on travail. Dans la suite de cette explication ils seront remplacés par name, password et domain.

Évidement il faudra aussi connaitre l’adresse IP de la passerelle utilisée par le système, sous Windows on l’obtient avec la commande ipconfig.

Installation de cntlm

Sous Ubuntu (et les descendants comme Mint,…) cntlm est dans les dépôts :

sudo apt-get install cntlm

Dès l’installation le service cntlm est lancé, la configuration n’étant pas faite, il faut commencer par arrêter le service (sudo service cntlm stop). Il reste à configurer les principaux éléments en éditant le fichier /etc/cntlm.conf en superutilisateur  (par exemple sudo gedit /etc/cntlm.conf &). Les éléments importants du fichier sont les suivants :

#
# Cntlm Authentication Proxy Configuration
#
# NOTE: all values are parsed literally, do NOT escape spaces,
# do not quote. Use 0600 perms if you use plaintext password.
#

Username    name
Domain      domain
Auth       
PassNT     

Proxy       192.168.1.5:8080
NoProxy     localhost, 127.0.0.*, 10.*, 192.168.*

Listen      3128

Les différents champs sont assez explicites. Pour l’instant les champs Auth et PassNT sont laissés vierges.

Le champ Listen correspond au port qui sera utilisé par cntml, sauf si vous utilisez déjà ce port, ne le changez pas.

Il reste à remplir le mot de passe avec son condensé (hash). La solution la plus simple (qui permet en même temps de tester le reste de la configuration) et d’utiliser cntlm en ligne de commande :

sudo cntlm -v -I -M http://www.google.fr

Le mot de passe doit être saisit ensuite et le résultat doit contenir les lignes suivantes (bien entendu les valeurs de condensés (hash) ne seront pas les mêmes) :

Config profile  1/4... Connection closed
Config profile  2/4... OK (HTTP code: 200)
----------------------------[ Profile  1 ]------
Auth            NTLM
PassNT          FF72C0DFC1C0D237CCEA5F7D53A17557
PassLM          48AC20D4C99F6423D42DDF2A2C6D325A
------------------------------------------------

On ferme tous les terminaux et on relance dans un nouveau terminal (sudo cntlm -v pour voir ce qui passe par le proxy).Sous Mint (sous les autres interfaces on retrouvera les mêmes principes) on utilise l’applet réseaux pour configurer un serveur mandataire pour tout le système en http://127.0.0.1:3128.

Il est aussi possible de relancer le service mais dans ce cas, rien ne sera visible en cas de problème (sudo service cntlm start).

Utilisation

Si le service est lancé au démarrage, rien à faire. Sinon le lancer dans un terminal qui restera ouvert comme ci-dessous.

Références

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *