cntlm
fournit une solution, ainsi qu'une certaine configuration.
Les étapes de base à suivre sont les suivantes:
- Installez cntlm.
- Modifiez son fichier de configuration dans /etc/cntlm.conf, les commentaires inclus le rendent assez facile.
- Ajoutez un serveur proxy (ou deux).
- Spécifiez votre nom d'utilisateur et votre nom de domaine NT aux endroits appropriés et supprimez l'entrée de mot de passe.
Démarrez le service cntlm, par exemple via
$ sudo /etc/init.d/cntlm start
cntlm fournit un moyen de tester le proxy et de générer un hachage à partir de votre mot de passe - par exemple par la commande (en tant que root)
$ cntlm -I -M http://www.test.com
cntlm vous demandera votre mot de passe de domaine. Il testera ensuite différents mécanismes d'authentification par rapport au serveur proxy configuré. Lorsqu'une méthode de travail est trouvée, elle imprime deux lignes qui doivent aller dans son fichier de configuration.
- Arrêtez le serveur cntlm et ajoutez les lignes obtenues à l'étape 6 ci-dessus à
/etc/cntlm.conf
.
- Redémarrez cntlm
Maintenant cntlm
est en cours d'exécution et prêt à être utilisé. Un certain nombre d'emplacements peuvent être utilisés pour configurer divers programmes pour l'utiliser. cntlm
ajoutera ensuite de manière transparente les jetons d'authentification de domaine NT aux paquets sortants et les transmettra au serveur proxy configuré.
Utiliser Qt / KDE
Pour les applications natives Qt / KDE, spécifiez "Utiliser un serveur proxy configuré manuellement" dans Paramètres système KDE -> Paramètres réseau -> Paramètres proxy . Le proxy est spécifié comme http://localhost
avec le port 3128 (par défaut cntlm
sauf si vous l'avez modifié). Ces applications sont mises à jour dynamiquement avec de nouveaux paramètres et aucun redémarrage ou déconnexion / connexion n'est requis pour mettre à jour les paramètres.
Clients Dropbox et Google
De nombreuses applications peuvent utiliser des variables d'environnement shell. Il convient de noter ici les clients Dropbox et Google Earth. Pour ces applications, utilisez des variables d'environnement shell comme celles-ci:
no_proxy=localhost,127.0.0.0/8,*.local
NO_PROXY=localhost,127.0.0.0/8,*.local
all_proxy=socks://localhost:3128/
ALL_PROXY=socks://localhost:3128
http_proxy=http://localhost:3128
HTTP_PROXY=http://localhost:3128
ftp_proxy=http://localhost:3128
FTP_PROXY=http://localhost:3128
https_proxy=http://localhost:3128
HTTPS_PROXY=http://localhost:3128
s3cmd, curl et wget
Remarque: Certaines applications n'utiliseront que les noms en minuscules, d'autres uniquement les noms en majuscules, certaines essaieront d'abord l'un, puis l'autre.
s3cmd
(Le client Amazon S3), curl
et wget
peut en outre être configuré via leurs propres fichiers de configuration si vous le souhaitez. C'est pratique car ils lisent leurs propres fichiers de configuration à chaque appel. Étant donné que ces programmes sont généralement de courte durée (une seule invocation existe après avoir terminé un téléchargement), cela est très utile.
Le format de s3cmd
in ~/.s3cfg
est:
proxy_host = localhost
proxy_port = 3128
Le format de wget in ~/.wgetrc
est:
https_proxy = http://localhost:3128
http_proxy = http://localhost:3128
ftp_proxy = http://localhost:3128
Le format de curl
in ~/.curlrc
est:
proxy = localhost:3128
D'un autre côté, la modification du profil du shell ou d'autres fichiers de configuration d'environnement nécessite généralement un redémarrage, une déconnexion et une reconnexion, ou similaire. Il mérite d' être étudié /etc/environment
, ~/.pam_environment
, ~/.kde/env/proxy.sh
etc que ce sont des endroits standard pour définir les paramètres proxy configurés via les variables d'environnement shell, en particulier pour affecter tous les utilisateurs et services sur le système.
Je comprends également qu'il est possible de modifier les paramètres d'environnement par application en utilisant leurs .desktop
fichiers respectifs , mais je ne l'ai pas encore essayé (avec succès).
VirtualBox
VirtualBox peut être configuré pour utiliser un proxy (par exemple pour rechercher et télécharger des mises à jour logicielles) en utilisant son interface graphique ou en utilisant la commande:
$ VBoxManage setextradata global GUI/ProxySettings \
"proxyEnabled,localhost,3128,authDisabled,,"
Par souci d'exhaustivité, pour le désactiver, utilisez:
$ VBoxManage setextradata global GUI/ProxySettings \
"proxyDisabled,,,authDisabled,,"
Firefox
Pour Firefox, j'utilise l'addon QuickProxy. Firefox lui-même s'il est configuré manuellement pour utiliser le serveur proxy sur la machine locale, donc QuickProxy active / désactive simplement le paramètre.
APTE
APT (utilisé en arrière-plan par synaptique, muon et amis) utilise un fichier de configuration dans /etc/apt/apt.conf.d/
, par exemple l' 00proxy
activation du proxy pour APT se fait en utilisant des lignes comme:
Acquire::http::Proxy "http://localhost:3128";
#Acquire::ftp::proxy "ftp://localhost:3128/";
#Acquire::https::proxy "https://localhost:3128/";
Remarque: add-apt-repository utilise le profil racine, ou vous pouvez configurer sudo pour autoriser tous les paramètres http * _proxy.
Un script pour les gouverner tous
FWIW Je suis en train d'écrire un script modulaire pour activer / désactiver le proxy pour de nombreux programmes. J'ai jusqu'à présent écrit les modules suivants:
$ ls -lF proxymanager/modules/
total 60
-rwxr-xr-x 1 root root 919 Oct 8 17:27 apt*
-rwxr-xr-x 1 root root 1037 Oct 8 13:10 bashrc*
-rwxr-xr-x 1 root root 391 Oct 8 12:18 cntlm*
-rwxr-xr-x 1 root root 684 Oct 8 12:58 curl*
-rwxr-xr-x 1 root root 609 Oct 8 13:02 dropbox*
-rwxr-xr-x 1 root root 672 Oct 8 12:18 gnome*
-rwxr-xr-x 1 root root 691 Oct 8 12:18 kde*
-rwxr-xr-x 1 root root 689 Oct 8 13:03 root_bashrc*
-rwxr-xr-x 1 root root 691 Oct 8 13:03 root_curl*
-rwxr-xr-x 1 root root 827 Oct 8 13:03 s3cmd*
-rwxr-xr-x 1 root root 454 Oct 8 13:03 survive_reboot*
-rwxr-xr-x 1 root root 860 Oct 8 13:06 suse-sysproxy*
-rwxr-xr-x 1 root root 653 Oct 8 12:46 sysenvironment*
-rwxr-xr-x 1 root root 465 Oct 8 13:04 virtualbox*
-rwxr-xr-x 1 root root 573 Oct 8 13:04 wgetrc*
Ainsi qu'une application de contrôle. Nous espérons que ceux-ci seront bientôt déplacés dans un github ou une autre maison en ligne.