Existe uma maneira segura de passar parâmetros de autenticação de proxy para aplicativos?

Existe uma maneira segura de passar parâmetros de autenticação de proxy para aplicativos?

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/.bashrcarquivo e em /etc/apt/apt.confarquivo, 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 ~/.bashrce /etc/apt/apt.confaceito 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-gete/ou software-centerantes de usá-las sempre.

Maneira segura de fornecer proxy para ambiente shell

Cortetodo o conteúdoque você coloca em seu ~/.bashrcpara fornecer configurações de proxy no ambiente shell e colar em um arquivo, digamos ~/.mybashproxy. Altere ~/.mybashproxya 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 ~/.bashrcou 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_proxycomando do terminal fornecendo sua sudosenha. Desta forma, ninguém saberá suas credenciais de proxy. Mas depois de usar begin_proxyse você permitir que alguém acesse o mesmo terminal, ele poderá ver suas credenciais usando env | grep proxyo 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-gete software-centeruse o arquivo /etc/apt.confpara preservar as configurações de proxy. Crie um arquivo /etc/apt/myproxy.txtecolocar conteúdo devocê /etc/apt/apt.confestá 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.txtdo grupo e outros, conforme mostrado acima, usando chmod.

Crie um arquivo temporário chamado say tmproxy.txtat /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-gete software-centerpara ele quando necessário. Adicione a seguinte linha /etc/apt/apt.confpara 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.confnã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-gete/ou software-centervocê deve usar o comando able_aptfornecendo sua sudosenha. Então, todas as suas credenciais de proxy serão armazenadas /etc/apt/tmproxy.txte apt-get/ou software-centerpoderão usá-las. Depois de fechar software-centerou usar apt-getpara 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.txtesquecendo de usardisable_apt

Notas e Resumo

  1. No alias, disable_apto 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.
  2. Se você não tiver ~/.bash_aliases, crie um. E source ~/.bashrcdepois de certificar-se de que ~/.bashrccontém as seguintes linhas,
   if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
    fi
  1. Imediatamente após fazer as configurações acima para habilitar aliases, você deve fazer logout e login uma vez ou pode usar source ~/.bash_aliasesno terminal.
  2. 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 ativar apt-gete/ou softwere-centerarmazenar credenciais de proxy em/etc/apt/tmproxy.txt
    • disable_apt- desabilitar apt-gete/ou softwere-centerapagar credenciais de proxy de/etc/apt/tmproxy.txt

Espero que isso seja útil.

informação relacionada