저는 프록시 서버 뒤에 있고 인터넷에 액세스하려면 인증 매개변수를 지정해야 합니다. 이를 위해 내 사용자 이름, 비밀번호, 호스트 및 포트 번호를 내 /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.txt
say 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_apt
sudo
/etc/apt/tmproxy.txt
apt-get
software-center
software-center
apt-get
/etc/apt/tmproxy.txt
disable_apt
/etc/apt/tmproxy.txt
disable_apt
참고 사항 및 요약
- 별칭에서 0 다음의
disable_apt
세미콜론(;
)이 중요합니다. 그렇지 않으면 다음과 같은 결과가 나타납니다.오류 "파일 끝에 추가 정크가 있습니다"오른쪽 상단 패널에 빨간색 오류 아이콘이 나타날 수도 있습니다. - 이 없으면
~/.bash_aliases
새로 만드세요. 그리고 다음 줄이 포함되어 있는지source ~/.bashrc
확인하세요 .~/.bashrc
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
- 별칭을 활성화하려면 위의 설정을 수행한 후 즉시 로그아웃하고 한 번 로그인해야 하거나
source ~/.bash_aliases
터미널에서 사용할 수 있습니다. 이야기가 끝나면 사용할 세 가지 별칭이 있습니다.
begin_proxy
- 쉘 환경에서 프록시를 시작합니다. 터미널이 열릴 때까지 지속됩니다.able_apt
- 프록시 자격 증명을 활성화apt-get
및/또는softwere-center
저장합니다./etc/apt/tmproxy.txt
disable_apt
- 프록시 자격 증명을 비활성화apt-get
및/또는softwere-center
삭제합니다./etc/apt/tmproxy.txt
이것이 도움이 되기를 바랍니다.