Configuration de CNTLM / NTLMaps
Publié le 05/04/2013
Table des matières
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 :
- Le nom d'utilisateur, son mot de passe et le domaine d'authentification;
- Le serveur DNS vers lequel les requêtes seront envoyées;
- Le port sur lequel CNTLM va écouter les requêtes entrantes (par défaut: 3128)
- 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:
- Username
- Domain
- Proxy
- NoProxy
- 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:
cntlm.exe -c cntlm.ini -I -M http://duckduckgo.com
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. 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 :
export http_proxy="localhost:3128"
export 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