Configuration du proxy sous Ubuntu

Avec les versions d'Ubuntu à interface graphique, il est aisé de configurer le proxy (ou serveur mandataire) dans le centre de configuration du système. Afin de passer le proxy via le terminal, la modification de quelques fichiers est nécessaire.

Durant cet article, les notations suivantes seront utilisées :

  • A.A.A.A : adresse IP du proxy
  • PPPP : port du proxy
  • util : nom d'un utilisateur du proxy
  • mdp : mot de passe de l'utilisateur

 

Définition du proxy de manière temporaire

La définition du proxy de manière temporaire, pour l'utilisateur en cours, se fait avec la commande export en précisant la variable d'environnement associée au protocole que vous voulez rediriger vers le proxy :

  • Pour HTTP : export http_proxy="http://A.A.A.A:PPPP/";
  • Pour HTTPS : export https_proxy="http://A.A.A.A:PPPP/";
  • Pour FTP : export ftp_proxy="http://A.A.A.A:PPPP/";

Si vous devez vous authentifier pour passer le proxy :

  • Pour HTTP : export http_proxy="http://util:mdp@A.A.A.A:PPPP/";
  • Pour HTTPS : export https_proxy="http://util:mdp@A.A.A.A:PPPP/";
  • Pour FTP : export ftp_proxy="http://util:mdp@A.A.A.A:PPPP/";

Vous pouvez également avoir besoin de définir des réseaux ou adresses qui n'ont pas à être redirigés vers le proxy. Cela se fait en valorisant la variable d'environnement no_proxy (et éventuellement NO_PROXY). Par exemple :

export no_proxy="localhost,127.0.0.1,192.168.1.0/24"

Remarques :

  • Si vous avez un ou plusieurs caractères spéciaux dans votre mot de passe, il est parfois nécessaire de le(s) coder en héxadécimal afin d'éviter les erreurs lors de la validation de la commande.
  • Dans certains cas, vous devez également valoriser les variantes en majuscule de ces variables d'environnement (HTTP_PROXY, HTTPS_PROXY et FTP_PROXY).

 

Définition du proxy de manière permanente

Pour tous les utilisateurs du système
Solution 1 : avec la commande export

La première solution pour définir les variables d'environnement dédiées au proxy pour tous les utilisateurs et d'insérer les commandes export de valorisation de ces variables (celles utilisées pour la définition temporaire d'un proxy) dans un fichier s'excutant au démarrage du système.

Vous pouvez donc ajouter ces lignes de commande :

  • A la fin du fichier /etc/profile
  • Dans un fichier de script se terminant dans .sh stocké dans le répertoire /etc/profile.d/
Solution 2 : valorisation directe des variables d'environnement

L'autre solution consiste à valoriser directement les variables dans le fichier /etc/environment qui est lu à chaque ouverture de session. Ce fichier n'accepte pas les commandes, vous n'avez donc plus besoin d'utiliser la commande export. Ajoutez donc à la fin du fichier les instructions suivantes  pour définir un proxy pour les protocoles HTTP, HTTP et FTP :

http_proxy="http://A.A.A.A:PPPP/"
https_proxy="http://A.A.A.A:PPPP/"
ftp_proxy="http://A.A.A.A:PPPP/"

Evidemment, vous pouvez indiquer un utilisateur et un mot de passe, comme avec la commande export, et valoriser la variable no_proxy pour définir des exceptions.

Pour un utilisateur particulier du système

Le passage par un proxy nécessite souvent une authentification, il est donc préférable que chaque utilisateur déclare ses propres variables d'environnement avec son identifiant et son mot de passe personnels.

Pour cela, les utilisateurs doivent ajouter les commandes de valorisation des variables d'environnement dans un fichier caché se trouvant dans le répertoire personnel (home) de l'utilisateur, comme pour le fichier /etc/profile. Il y a plusieurs fichiers possibles :

  •  ~/.profile : fichier executé lors du démarrage d'une session graphique ou d'une session en mode console.
  • ~/.bashrc : fichier executé à chaque utilisation du shell ainsi qu'a la connexion à l'environnement graphique (moins performant car exécuté à chaque nouvelle instance du terminal par exemple).

 

Définition du proxy seulement pour apt-get

Les solutions proposées ci-dessus permettent de passer un proxy quelque soit le service ou le programme utilisé. Si vous souhaitez définir le proxy seulement pour la mise à jour et l'installation des paquets, il suffit de créer un fichier dans le répertoire /etc/apt (par exemple, le fichier /etc/apt/apt.conf ou un fichier dans le répertoire /etc/apt/auth.conf.d ou le répertoire /etc/apt/apt.conf.d). A l'interieur de ce fichier, ajouter les lignes suivantes :

Acquire::http::proxy "http://A.A.A.A:PPPP/";
Acquire::https::proxy "http://A.A.A.A:PPPP/";
Acquire::ftp::proxy "http://A.A.A.A:PPPP/";

Ou, si une identification est nécessaire :

Acquire::http::proxy "http://util:mdp@A.A.A.A:PPPP/";
Acquire::https::proxy "http://util:mdp@A.A.A.A:PPPP/";
Acquire::ftp::proxy "http://util:mdp@A.A.A.A:PPPP/";