프록시용 인증 매개변수를 애플리케이션에 전달하는 안전한 방법이 있습니까?

프록시용 인증 매개변수를 애플리케이션에 전달하는 안전한 방법이 있습니까?

저는 프록시 서버 뒤에 있고 인터넷에 액세스하려면 인증 매개변수를 지정해야 합니다. 이를 위해 내 사용자 이름, 비밀번호, 호스트 및 포트 번호를 내 /home/$USER/.bashrc파일과 사람이 읽을 수 있는 파일로 내보냈습니다 /etc/apt/apt.conf.
예를 들어

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

이로 인해 이 파일에 대한 읽기 액세스 권한이 있는 모든 사람에게 내 비밀번호가 공개적으로 표시됩니다.

사람이 읽을 수 있는 형식으로 작성할 필요 없이 프록시 인증 매개변수가 필요한 애플리케이션에 이러한 매개변수를 전달하는 안전한 방법이 있습니까?

메모:영구적인 방법을 알아두시면 좋을 것 같습니다. 새 세션을 열 때마다 내보내기를 통해 일시적으로 이 작업을 수행할 수 있다는 것을 알고 있습니다. 하지만 새 세션을 열 때마다 이 작업을 수행해야 하는데, 이를 피하고 싶습니다.

답변1

긴 답변을 써서 죄송합니다. apt.conf시스템의 매우 민감한 문제입니다. 그러므로 모든 측면을 정리할 필요가 있습니다.

내가 아는 한 프록시 설정은 사람이 읽을 수 있는 형식으로 제공되는 경우에만 허용되며 기껏해야 다른 파일에서 읽도록 강제할 수 있습니다 ~/.bashrc. /etc/apt/apt.conf나는 이것을 이용하려고 한다. 루트/sudoer 사용자 외에는 누구도 액세스할 수 없는 파일에 대한 프록시 자격 증명을 유지하겠습니다. 그러나 매번 프록시 설정을 사용하기 전에 공개해야 합니다 apt-get.software-center

쉘 환경에 프록시를 제공하는 안전한 방법

자르다모든 내용~/.bashrc쉘 환경에서 프록시 설정을 제공하고 파일에 붙여넣기 위해 ~/.mybashproxy. 소유권을 루트로 변경 ~/.mybashproxy하고 그룹 및 기타에 대한 읽기/쓰기 권한을 제거하여 sudoer만 액세스할 수 있도록 합니다.

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

~/.bashrc또는 에서 다음 별칭을 만드세요 ~/.bash_aliases. 저는 후자를 사용하는 것을 선호합니다.

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

용법

begin_proxy비밀번호를 제공하는 터미널의 명령을 통해 쉘 환경에서 프록시를 활성화해야 합니다 sudo. 이렇게 하면 누구도 귀하의 프록시 자격 증명을 알 수 없습니다. 그러나 누군가가 동일한 터미널에 액세스하도록 허용하면 사용한 후 터미널에서 명령을 begin_proxy사용하여 해당 사람이 귀하의 자격 증명을 볼 수 있습니다 . env | grep proxy보안을 위해 귀하가 사용한 터미널을 다른 사람이 사용하도록 허용하지 마십시오 begin_proxy.

apt-get에 프록시를 제공하는 안전한 방법

apt-get그리고 software-center파일을 사용하여 /etc/apt.conf프록시 설정을 보존합니다. 파일을 생성 /etc/apt/myproxy.txt하고내용을 넣어/etc/apt/apt.conf터미널에서 다음과 같이 열어서 들어가세요 .

sudo gedit /etc/apt/myproxy.txt

다음으로 원하는 내용을 복사하고 파일을 저장하세요. /etc/apt/myproxy.txt을 사용하여 위에 표시된 대로 그룹 및 기타에 대한 읽기/쓰기 권한을 제거합니다 chmod.

tmproxy.txtsay at 이라는 임시 파일을 만들고 /etc/apt/다음과 같이 모든 파일에 대한 읽기-쓰기 권한을 부여합니다.

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

필요한 경우 프록시 설정을 제공 apt-get하고 제공할 예정입니다 . 에서 프록시 설정을 읽으려면 software-center다음 줄을 추가하세요 ./etc/apt/apt.conf/etc/apt/tmproxy.txt

#inclued /etc/apt/tmproxy.txt;

위 줄에는 /etc/apt/apt.conf아무것도 포함되어서는 안 됩니다. 이제 다음 별칭을 만듭니다.~/.bash_aliases

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

용법

사용하기 전에 apt-get및/또는 비밀번호를 제공하는 software-center명령을 사용해야 합니다 . 그러면 귀하 의 모든 프록시 자격 증명이 저장되거나 사용할 수 있게 됩니다. 을 닫거나 를 사용하여 에서 프록시 자격 증명을 지운 후에 는 명령을 사용하십시오 . 이 과정에서 귀하가 프록시 자격 증명을 사용하는 것을 잊어버리지 않는 한 누구도 귀하의 프록시 자격 증명을 볼 수 없습니다.able_aptsudo/etc/apt/tmproxy.txtapt-getsoftware-centersoftware-centerapt-get/etc/apt/tmproxy.txtdisable_apt/etc/apt/tmproxy.txtdisable_apt

참고 사항 및 요약

  1. 별칭에서 0 다음의 disable_apt세미콜론( ;)이 중요합니다. 그렇지 않으면 다음과 같은 결과가 나타납니다.오류 "파일 끝에 추가 정크가 있습니다"오른쪽 상단 패널에 빨간색 오류 아이콘이 나타날 수도 있습니다.
  2. 이 없으면 ~/.bash_aliases새로 만드세요. 그리고 다음 줄이 포함되어 있는지 source ~/.bashrc확인하세요 .~/.bashrc
   if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
    fi
  1. 별칭을 활성화하려면 위의 설정을 수행한 후 즉시 로그아웃하고 한 번 로그인해야 하거나 source ~/.bash_aliases터미널에서 사용할 수 있습니다.
  2. 이야기가 끝나면 사용할 세 가지 별칭이 있습니다.

    • begin_proxy- 쉘 환경에서 프록시를 시작합니다. 터미널이 열릴 때까지 지속됩니다.
    • able_apt- 프록시 자격 증명을 활성화 apt-get및/또는 softwere-center저장합니다./etc/apt/tmproxy.txt
    • disable_apt- 프록시 자격 증명을 비활성화 apt-get및/또는 softwere-center삭제합니다./etc/apt/tmproxy.txt

이것이 도움이 되기를 바랍니다.

관련 정보