¿Existe una forma segura de pasar parámetros de autenticación para el proxy a las aplicaciones?

¿Existe una forma segura de pasar parámetros de autenticación para el proxy a las aplicaciones?

Estoy detrás de un servidor proxy y necesito especificar parámetros de autenticación para acceder a Internet. Para esto, exporté mi nombre de usuario, contraseña, host y port_no en mi /home/$USER/.bashrcarchivo y en /etc/apt/apt.confel archivo, que son legibles por humanos.
Por ejemplo

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/";

Esto hace que mi contraseña sea abiertamente visible para cualquiera que tenga acceso de lectura a estos archivos.

¿Existe una forma segura de pasar estos parámetros a las aplicaciones que necesitan parámetros de autenticación de proxy sin tener que escribir en un formato legible por humanos?

Nota:Sería bueno saber de métodos permanentes. Sé que puedo hacer esto temporalmente exportando cada vez que abro una nueva sesión. Pero tendré que hacer esto cada vez que abra una nueva sesión, lo cual quiero evitar.

Respuesta1

Perdón por escribir una respuesta larga, pero apt.confes una cuestión muy delicada del sistema. Por eso es necesario aclarar todos los aspectos.

Hasta donde yo sé ~/.bashrcy /etc/apt/apt.confacepto su configuración de proxy solo si se proporciona en un formato legible por humanos, como máximo puede obligarlos a leer desde archivos diferentes. Voy a explotar esto. Mantendré las credenciales de proxy de los archivos a los que no puede acceder nadie más que el usuario root/sudoer. Pero uno tiene que revelar la configuración del proxy apt-getantes software-centerde usarlo cada vez.

Manera segura de suministrar proxy al entorno shell

Cortartodos los contenidosque usted puso en su ~/.bashrcpara proporcionar la configuración de proxy en el entorno de shell y pegarlo en un archivo, por ejemplo ~/.mybashproxy. Cambie ~/.mybashproxyla propiedad a root y elimine el permiso de lectura y escritura para grupos y otros, de modo que solo los sudoers puedan acceder a ellos.

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

Cree el siguiente alias en ~/.bashrco en ~/.bash_aliases, preferiría usar este último.

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

Uso

Debe habilitar el proxy en su entorno de shell mediante begin_proxyun comando desde la terminal que proporcione su sudocontraseña. De esta forma nadie conocerá sus credenciales de proxy. Pero después de usarlo, begin_proxysi permite que alguien acceda a la misma terminal, es posible que pueda ver sus credenciales usando env | grep proxyel comando en la terminal. Para estar seguro no permitas que nadie utilice el mismo terminal que tú utilizaste begin_proxy.

Manera segura de suministrar proxy a apt-get

apt-gety software-centerutilice el archivo /etc/apt.confpara conservar la configuración del proxy. Crea un archivo /etc/apt/myproxy.txtyponer contenido deestás /etc/apt/apt.confen él desde la terminal abriéndolo como,

sudo gedit /etc/apt/myproxy.txt

Luego copie el contenido deseado y guarde el archivo. Elimine el permiso de lectura y escritura /etc/apt/myproxy.txtde grupos y otros como se muestra arriba usando chmod.

Cree un archivo temporal llamado say tmproxy.txtat /etc/apt/y otorgue permiso de lectura y escritura para todos de la siguiente manera:

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

Proporcionaré configuraciones de proxy hacia apt-gety software-centerdesde él cuando sea necesario. Agregue la siguiente línea /etc/apt/apt.confpara leer la configuración del proxy desde /etc/apt/tmproxy.txt.

#inclued /etc/apt/tmproxy.txt;

excepto que la línea anterior /etc/apt/apt.confno debería contener nada. Ahora cree los siguientes alias en~/.bash_aliases

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

Uso

Antes de usar apt-gety/o software-centertienes que usar el comando able_aptproporcionando tu sudocontraseña. Luego, todas sus credenciales de proxy se almacenarán /etc/apt/tmproxy.txty apt-get/o software-centerpodrán utilizarlo. Después de cerrar software-centero después de usar apt-getpara borrar las credenciales de proxy /etc/apt/tmproxy.txt, use el comando disable_apt. En este proceso, nadie podrá ver sus credenciales de proxy a menos que las deje /etc/apt/tmproxy.txtolvidadas de usar.disable_apt

Notas y resumen

  1. En el alias, disable_aptel punto y coma ( ;) después de cero es importante, de lo contrario obtendráerrores "basura adicional al final del archivo"También puede aparecer un icono de error rojo en el panel superior derecho.
  2. Si no lo tienes ~/.bash_aliases, crea uno. Y source ~/.bashrcdespués de asegurarse de que ~/.bashrccontenga las siguientes líneas,
   if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
    fi
  1. Inmediatamente después de realizar la configuración anterior para habilitar los alias, debe cerrar sesión e iniciar sesión una vez o puede usarlos source ~/.bash_aliasesen la terminal.
  2. Al final de la historia tienes tres alias para usar:

    • begin_proxy- para iniciar el proxy en el entorno shell. Dura hasta que la terminal esté abierta.
    • able_apt- para habilitar apt-gety/o softwere-centeralmacenar credenciales de proxy en/etc/apt/tmproxy.txt
    • disable_apt- para deshabilitar apt-gety/o softwere-centerborrar las credenciales de proxy de/etc/apt/tmproxy.txt

Esperamos que esto sea útil.

información relacionada