Estou atrás de um servidor proxy e preciso especificar parâmetros de autenticação para acessar a Internet. Para isso, exportei meu nome de usuário, senha, host e port_no em meu /home/$USER/.bashrc
arquivo e em /etc/apt/apt.conf
arquivo, que são legíveis por humanos.
por exemplo
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/";
Isso faz com que minha senha fique abertamente visível para qualquer pessoa que tenha acesso de leitura a esses arquivos.
Existe uma maneira segura de passar esses parâmetros para os aplicativos que precisam de parâmetros de autenticação de proxy sem ter que escrever em um formato legível por humanos?
Observação:Seria bom conhecer métodos permanentes. Sei que posso fazer isso temporariamente exportando cada vez que abro uma nova sessão. Mas terei que fazer isso sempre que abrir uma nova sessão, o que quero evitar.
Responder1
Desculpe por escrever uma resposta longa, mas apt.conf
é uma questão muito delicada do sistema. Portanto, é necessário esclarecer todos os aspectos.
Até onde eu sei ~/.bashrc
e /etc/apt/apt.conf
aceito suas configurações de proxy somente se forem fornecidas em formato legível por humanos, no máximo você pode forçá-las a ler arquivos diferentes. Vou explorar isso. Manterei as credenciais do proxy para arquivos que não são acessíveis a ninguém, exceto ao usuário root/sudoer. Mas é preciso revelar as configurações de proxy apt-get
e/ou software-center
antes de usá-las sempre.
Maneira segura de fornecer proxy para ambiente shell
Cortetodo o conteúdoque você coloca em seu ~/.bashrc
para fornecer configurações de proxy no ambiente shell e colar em um arquivo, digamos ~/.mybashproxy
. Altere ~/.mybashproxy
a propriedade para root e retire a permissão de leitura e gravação para grupos e outros, para que apenas sudoers possam acessá-los.
sudo chown root:root ~/.mybashproxy
sudo chmod go-rw ~/.mybashproxy
Faça o seguinte alias em ~/.bashrc
ou em ~/.bash_aliases
, eu preferiria usar o último.
alias begin_proxy='sudo cat .mybashproxy > .tmp; source .tmp; rm .tmp'
Uso
Você deve habilitar o proxy em seu ambiente shell por begin_proxy
comando do terminal fornecendo sua sudo
senha. Desta forma, ninguém saberá suas credenciais de proxy. Mas depois de usar begin_proxy
se você permitir que alguém acesse o mesmo terminal, ele poderá ver suas credenciais usando env | grep proxy
o comando no terminal. Para estar seguro, não permita que ninguém use o mesmo terminal que você usou begin_proxy
.
Maneira segura de fornecer proxy para o apt-get
apt-get
e software-center
use o arquivo /etc/apt.conf
para preservar as configurações de proxy. Crie um arquivo /etc/apt/myproxy.txt
ecolocar conteúdo devocê /etc/apt/apt.conf
está nele a partir do terminal abrindo-o como,
sudo gedit /etc/apt/myproxy.txt
em seguida, copie o conteúdo desejado e salve o arquivo. Remova a permissão de leitura e gravação /etc/apt/myproxy.txt
do grupo e outros, conforme mostrado acima, usando chmod
.
Crie um arquivo temporário chamado say tmproxy.txt
at /etc/apt/
e conceda permissão de leitura e gravação a todos da seguinte maneira,
sudo touch /etc/apt/tmproxy.txt
sudo chmod go+rw /etc/apt/tmproxy.txt
Fornecerei configurações de proxy de apt-get
e software-center
para ele quando necessário. Adicione a seguinte linha /etc/apt/apt.conf
para ler as configurações de proxy do arquivo /etc/apt/tmproxy.txt
.
#inclued /etc/apt/tmproxy.txt;
exceto que a linha acima /etc/apt/apt.conf
não deve conter nada. Agora crie os seguintes aliases em~/.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
e/ou software-center
você deve usar o comando able_apt
fornecendo sua sudo
senha. Então, todas as suas credenciais de proxy serão armazenadas /etc/apt/tmproxy.txt
e apt-get
/ou software-center
poderão usá-las. Depois de fechar software-center
ou usar apt-get
para eliminar as credenciais de proxy do /etc/apt/tmproxy.txt
, use o comando disable_apt
. Neste processo também ninguém poderá ver suas credenciais de proxy, a menos que você as deixe lá, /etc/apt/tmproxy.txt
esquecendo de usardisable_apt
Notas e Resumo
- No alias,
disable_apt
o ponto e vírgula (;
) depois de zero é importante, caso contrário você obteráerros "Lixo extra no final do arquivo"Um ícone de erro vermelho também pode aparecer no painel superior direito. - Se você não tiver
~/.bash_aliases
, crie um. Esource ~/.bashrc
depois de certificar-se de que~/.bashrc
contém as seguintes linhas,
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
- Imediatamente após fazer as configurações acima para habilitar aliases, você deve fazer logout e login uma vez ou pode usar
source ~/.bash_aliases
no terminal. No final da história você tem três apelidos para usar:
begin_proxy
- para iniciar o proxy no ambiente shell. Dura até que o terminal esteja aberto.able_apt
- para ativarapt-get
e/ousoftwere-center
armazenar credenciais de proxy em/etc/apt/tmproxy.txt
disable_apt
- desabilitarapt-get
e/ousoftwere-center
apagar credenciais de proxy de/etc/apt/tmproxy.txt
Espero que isso seja útil.