web-dev-qa-db-fra.com

Existe-t-il un moyen sécurisé de transmettre les paramètres d’authentification du proxy aux applications?

Je suis derrière un serveur proxy et j'ai besoin de spécifier des paramètres d'authentification pour accéder à Internet. Pour cela, j'ai exporté mon nom d'utilisateur, mot de passe, hôte et port_no dans mon fichier /home/$USER/.bashrc et dans le fichier /etc/apt/apt.conf, qui sont lisibles par l'homme.
par exemple

Acquire::http::proxy "http://<username>:<password>@172.16.0.2:8080";
Acquire::ftp::proxy "ftp://<username>:<password>@172.16.0.2:8080/";
Acquire::https::proxy "https://<username>:<password>@172.16.0.2:8080/";

Cela fait que mon mot de passe est ouvertement visible pour toute personne ayant un accès en lecture à ces fichiers.

Existe-t-il un moyen sécurisé de transmettre ces paramètres aux applications nécessitant des paramètres d'authentification proxy sans avoir à écrire sous une forme aussi lisible par l'homme?

Note: Il serait bon de connaître les méthodes permanentes. Je sais que je peux le faire temporairement en exportant chaque fois que j'ouvre une nouvelle session. Mais je devrai le faire à chaque fois que j'ouvrirai une nouvelle session, ce que je veux éviter.

3
jobin

Désolé pour la longue réponse, mais apt.conf est une question très délicate du système. Il faut donc effacer tous les aspects.

Autant que je sache, ~/.bashrc et /etc/apt/apt.conf n'acceptent vos paramètres de proxy que s'il leur est donné sous une forme lisible par l'homme, vous pouvez tout au plus les forcer à lire des fichiers différents. Je vais exploiter cela. Je conserverai les informations d'identification du proxy dans des fichiers qui ne sont accessibles à personne d'autre qu'à l'utilisateur root/sudoer. Mais il faut dévoiler les paramètres de proxy à apt-get et/ou software-center avant de les utiliser à chaque fois.

Moyen sûr de fournir un proxy à l'environnement Shell

Couper tout le conten que vous avez mis dans votre ~/.bashrc afin de fournir les paramètres de proxy dans l'environnement Shell et le coller dans un fichier dit ~/.mybashproxy. Changez la propriété ~/.mybashproxy en root et supprimez l’autorisation de lecture-écriture pour le groupe et autres, afin que seuls les utilisateurs sudoers puissent y accéder.

Sudo chown root:root ~/.mybashproxy
Sudo chmod go-rw ~/.mybashproxy

Faites l'alias suivant dans ~/.bashrc ou dans ~/.bash_aliases, je préférerais utiliser ce dernier.

alias begin_proxy='Sudo cat .mybashproxy > .tmp; source .tmp; rm .tmp'

Utilisation

Vous devez activer le proxy dans votre environnement Shell à l'aide de la commande begin_proxy du terminal en indiquant votre mot de passe Sudo. De cette façon, personne ne connaîtra vos identifiants de proxy. Mais après avoir utilisé begin_proxy si vous autorisez quelqu'un à accéder au même terminal, il pourra peut-être voir vos informations d'identification à l'aide de la commande env | grep proxy dans le terminal. Pour des raisons de sécurité, n'autorisez personne à utiliser le même terminal où vous avez utilisé begin_proxy.

Moyen sûr de fournir un proxy à apt-get

apt-get et software-center utilisent le fichier /etc/apt.conf pour conserver les paramètres du proxy. Créez un fichier /etc/apt/myproxy.txt et mettez le contenu de votre /etc/apt/apt.conf depuis le terminal en l’ouvrant en tant que,

Sudo gedit /etc/apt/myproxy.txt

ensuite, copiez le contenu souhaité et enregistrez le fichier. Supprimez l'autorisation de lecture/écriture de /etc/apt/myproxy.txt pour le groupe et les autres, comme indiqué ci-dessus, à l'aide de chmod.

Créez un fichier temporaire nommé say tmproxy.txt dans /etc/apt/ et donnez-lui l'autorisation en lecture-écriture comme suit,

Sudo touch /etc/apt/tmproxy.txt
Sudo chmod go+rw /etc/apt/tmproxy.txt

Je vais fournir les paramètres de proxy à apt-get et software-center à partir de celui-ci lorsque cela est nécessaire. Ajoutez la ligne suivante dans /etc/apt/apt.conf pour lire les paramètres de proxy à partir de /etc/apt/tmproxy.txt.

#inclued /etc/apt/tmproxy.txt;

à l'exception de la ligne ci-dessus, /etc/apt/apt.conf ne doit rien contenir. Maintenant, créez les alias suivants dans ~/.bash_aliases

alias able_apt='Sudo cat /etc/apt/myproxy.txt > /etc/apt/tmproxy.txt'
alias disable_apt='echo "0;" > /etc/apt/tmproxy.txt'

Utilisation

Avant d'utiliser apt-get et/ou software-center, vous devez utiliser la commande able_apt en fournissant votre mot de passe Sudo. Tous vos identifiants de proxy seront alors stockés dans /etc/apt/tmproxy.txt et apt-get et/ou software-center pourront l’utiliser. Après avoir fermé software-center ou après avoir utilisé apt-get pour supprimer les informations d'identification du proxy de /etc/apt/tmproxy.txt, utilisez la commande disable_apt. Dans ce processus également, personne ne pourrait voir vos informations d'identification de proxy, à moins que vous ne les laissiez dans /etc/apt/tmproxy.txt en oubliant d'utiliser disable_apt.

Notes et résumé

  1. Dans l'alias disable_apt le point-virgule (;) après zéro est important, sinon vous obtiendrez erreurs "Extra junk à la fin du fichier" Une icône d'erreur rouge peut également apparaître en haut panneau de droite.
  2. Si vous n'avez pas ~/.bash_aliases, créez-en un. Et source ~/.bashrc afer en s'assurant que ~/.bashrc contient les lignes suivantes,
   if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
    fi
  1. Immédiatement après avoir effectué les réglages ci-dessus pour activer les alias, vous devez soit vous déconnecter et vous connecter une fois, soit utiliser source ~/.bash_aliases dans le terminal.
  2. À la fin de l'histoire, vous avez trois alias à utiliser:

    • begin_proxy - pour démarrer le proxy dans l'environnement Shell. Dure jusqu'à ce que le terminal soit ouvert.
    • able_apt - pour activer apt-get et/ou softwere-center et pour stocker les informations d'identification du proxy dans /etc/apt/tmproxy.txt
    • disable_apt - pour désactiver apt-get et/ou softwere-center et pour effacer les informations d'identification du proxy de /etc/apt/tmproxy.txt

J'espère que cela vous sera utile.

0
souravc