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

3

Estou atrás de um servidor proxy e preciso especificar parâmetros de autenticação para acessar a Internet. Para isso, eu exportei meu nome de usuário, senha, host e port_no no meu arquivo /home/$USER/.bashrc e no arquivo /etc/apt/apt.conf , que são legíveis para humanos. para o 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 precisar escrever de forma legível?

Nota: Seria bom saber de métodos permanentes. Eu sei que posso fazer isso temporariamente exportando cada vez que abro uma nova sessão. Mas terei que fazer isso toda vez que eu abrir uma nova sessão, o que eu quero evitar.

    
por jobin 11.11.2013 / 09:54

1 resposta

0

Desculpe por escrever uma resposta longa, mas apt.conf é uma questão muito delicada do sistema. Por isso, é necessário limpar todos os aspectos.

Até onde eu saiba, ~/.bashrc e /etc/apt/apt.conf aceitam suas configurações de proxy somente se forem apresentadas em formato legível, no máximo você pode forçá-las a ler arquivos diferentes. Eu vou explorar isso. Mantenho as credenciais de proxy para arquivos que não são acessíveis a ninguém, exceto ao usuário root / sudoer. Mas é preciso desvendar as configurações de proxy para apt-get e / ou software-center antes de usá-las todas as vezes.

Modo seguro de fornecer proxy ao ambiente de shell

Corte todo o conteúdo que você coloca em seu ~/.bashrc para fornecer configurações de proxy no ambiente de shell e colar em um arquivo, digamos ~/.mybashproxy . Altere a propriedade ~/.mybashproxy para a raiz e retire a permissão de leitura e gravação para o grupo e outros, de modo que apenas os usuários possam acessá-los.

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

Faça o seguinte alias em ~/.bashrc ou em ~/.bash_aliases , prefiro usar o último.

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

Uso

Você precisa habilitar o proxy no seu ambiente de shell pelo comando begin_proxy do terminal, fornecendo sua senha sudo . Desta forma ninguém vai 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 o comando env | grep proxy no terminal. Para ser seguro, não permita que ninguém use o mesmo terminal em que você usou begin_proxy .

Modo seguro de fornecer proxy para o apt-get

apt-get e software-center usam o arquivo /etc/apt.conf para preservar as configurações de proxy. Crie um arquivo /etc/apt/myproxy.txt e coloque o conteúdo de seu /etc/apt/apt.conf nele 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 / gravação de /etc/apt/myproxy.txt para o grupo e outros como mostrado acima usando chmod .

Crie um arquivo temporário denominado tmproxy.txt at /etc/apt/ e conceda permissão de leitura / gravação para todos do seguinte modo,

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

Vou fornecer configurações de proxy para apt-get e software-center quando necessário. Adicione a seguinte linha em /etc/apt/apt.conf para ler as configurações de proxy em /etc/apt/tmproxy.txt .

#inclued /etc/apt/tmproxy.txt;

exceto 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ê precisa usar o comando able_apt fornecendo sua senha sudo . Então, todas as suas credenciais de proxy serão armazenadas em /etc/apt/tmproxy.txt e apt-get e / ou software-center poderão usá-lo. Depois de fechar software-center ou depois de usar apt-get para eliminar as credenciais de proxy de /etc/apt/tmproxy.txt , use o comando disable_apt . Nesse processo, ninguém poderá ver suas credenciais de proxy, a menos que você as deixe em /etc/apt/tmproxy.txt , esquecendo-se de usar disable_apt

Notas e resumo

  1. No alias disable_apt , o ponto-e-vírgula ( ; ) depois de zero é importante, caso contrário você obterá erros" Extra junk 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 ~/.bashrc afer certificando-se de que ~/.bashrc contenha as seguintes linhas,
   if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
    fi
  1. Imediatamente após fazer as configurações acima para ativar os aliases, é necessário efetuar logout e login uma vez ou usar o source ~/.bash_aliases no terminal.
  2. No final da história, você tem três aliases a serem usados:

    • begin_proxy - para iniciar o proxy no ambiente de shell. Dura até o terminal estar aberto.
    • able_apt - para ativar apt-get e / ou softwere-center e para armazenar credenciais de proxy em /etc/apt/tmproxy.txt
    • disable_apt - para desativar apt-get e / ou softwere-center e eliminar as credenciais de proxy de /etc/apt/tmproxy.txt

Espero que isso seja útil.

    
por souravc 07.12.2013 / 16:19