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/.bashrc
archivo y en /etc/apt/apt.conf
el 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.conf
es una cuestión muy delicada del sistema. Por eso es necesario aclarar todos los aspectos.
Hasta donde yo sé ~/.bashrc
y /etc/apt/apt.conf
acepto 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-get
antes software-center
de usarlo cada vez.
Manera segura de suministrar proxy al entorno shell
Cortartodos los contenidosque usted puso en su ~/.bashrc
para proporcionar la configuración de proxy en el entorno de shell y pegarlo en un archivo, por ejemplo ~/.mybashproxy
. Cambie ~/.mybashproxy
la 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 ~/.bashrc
o 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_proxy
un comando desde la terminal que proporcione su sudo
contraseña. De esta forma nadie conocerá sus credenciales de proxy. Pero después de usarlo, begin_proxy
si permite que alguien acceda a la misma terminal, es posible que pueda ver sus credenciales usando env | grep proxy
el 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-get
y software-center
utilice el archivo /etc/apt.conf
para conservar la configuración del proxy. Crea un archivo /etc/apt/myproxy.txt
yponer contenido deestás /etc/apt/apt.conf
en é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.txt
de grupos y otros como se muestra arriba usando chmod
.
Cree un archivo temporal llamado say tmproxy.txt
at /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-get
y software-center
desde él cuando sea necesario. Agregue la siguiente línea /etc/apt/apt.conf
para 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.conf
no 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-get
y/o software-center
tienes que usar el comando able_apt
proporcionando tu sudo
contraseña. Luego, todas sus credenciales de proxy se almacenarán /etc/apt/tmproxy.txt
y apt-get
/o software-center
podrán utilizarlo. Después de cerrar software-center
o después de usar apt-get
para 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.txt
olvidadas de usar.disable_apt
Notas y resumen
- En el alias,
disable_apt
el 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. - Si no lo tienes
~/.bash_aliases
, crea uno. Ysource ~/.bashrc
después de asegurarse de que~/.bashrc
contenga las siguientes líneas,
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
- 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_aliases
en la terminal. 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 habilitarapt-get
y/osoftwere-center
almacenar credenciales de proxy en/etc/apt/tmproxy.txt
disable_apt
- para deshabilitarapt-get
y/osoftwere-center
borrar las credenciales de proxy de/etc/apt/tmproxy.txt
Esperamos que esto sea útil.