grimboite/articles/sys/2013-04-05-cntlm.md

3.6 KiB

Configuration de CNTLM / NTLMaps

CNTLM est téléchargeable dans sa dernière version à l'adresse http://cntlm.sourceforge.net/. Sous Windows, il s'installera automatiquement en tant que service. Pour le contrôler, il vous suffira donc d'exécuter les commandes suivantes:

net start cntlm
net stop cntlm

Après l'installation, il reste à le configurer (proprement). Pour cela, rendez vous dans le répertoire d'installation avec un shell, pour configurer les informations suivantes :

  1. Le nom d'utilisateur, son mot de passe et le domaine d'authentification;
  2. Le serveur DNS vers lequel les requêtes seront envoyées;
  3. Le port sur lequel CNTLM va écouter les requêtes entrantes (par défaut: 3128)
  4. Un éventuel tunneling pour rediriger un certain port d'écoute vers une ip particulière.

Configuration du proxy

Commencez par remplir les variables importantes; pour cela, ouvrez le fichier cntlm.ini et remplissez les informations suivantes:

  1. Username
  2. Domain
  3. Proxy
  4. NoProxy
  5. Listen.

Pour vérifier que le proxy fonctionne bien et que le fichier cntlm.ini ne contient aucune erreur, tapez l'une des deux commandes suivantes:

  1. cntlm.exe -c cntlm.ini -I -M http://duckduckgo.com
  2. cntml.exe -H

Dans les deux cas, le mot de passe associé à l'utilisateur référencé ci-dessus vous sera demandé. Une fois obtenu, copiez le résultat dans le fichier cntlm.ini.

Démarrez ensuite le proxy en mode debug avec la commande cntlm.exe -c cntlm.ini -v. Passez ensuite à l'étape de configuration ci-dessous et vérifiez que tout fonctionne bien.

Si tout se passe bien, démarrez le service en arrière-plan: net start cntlm

Tunneling

La configuration des tunnels se fait toujours dans le fichier cntml.ini, tout à la fin. La syntaxe est super simple:

Tunnel		<port>:<ip>:<port de destination>

Pour rediriger le port interne 11443 vers le port 22 de l'ip 169.25.12.23, la configuration est la suivante:

Tunnel		11443:169.25.12.23:22

En utilisant ce port en local, vous arriverez ainsi à vous connecter sur l'hôte distant. La configuration ci-dessus permet de se connecter sur la machine 169.25.12.23:22 en utilisant l'hôte local et le port 11443; par exemple: ssh localhost -p 11443 -l my_login.

Configuration

CMD

set http_proxy=http://localhost:3128
set https_proxy=http://localhost:3128

Il est possible de configurer cmder dans les paramètres startup/environment, qui permettent de donner directement ces deux variables (COMMENT ???). Un peu comme un fichier bash_profile.

pip

Alors, pip, il est gentil, mais le paramètre --proxy semble lui poser un petit problème (que je n'ai pas plus creusé). Pour résoudre ceci, il faut en fait initialiser les variables d'environnements de la manière suivante sous Linux :

export http_proxy="localhost:3128"
export https_proxy="localhost:3128"

Sous Windows, si ce n'est pas déjà fait, il faut taper les commandes suivantes :

SET HTTP_PROXY=localhost:3128
SET HTTPS_PROXY=localhost:3128

Yarn

yarn config set proxy http://localhost:8080
yarn config set https-proxy http://localhost:8080
yarn config set https_proxy http://localhost:8080
yarn config set strict-ssl false

L'idéal étant de placer ces initialisations dans un fichier .bashrc à la racine du répertoire utilisateur. Pour un environnement full-windows, c'est set et pas export...

Réinitialisation de la configuration

set "http_proxy="
set "https_proxy="

npm config rm proxy
npm config rm http-proxy
npm config rm https-proxy