인증 프록시 서버를 구성하는 방법

인증 프록시 서버를 구성하는 방법

내 회사 프록시 서버에는 Microsoft AD 도메인 사용자 자격 증명을 사용한 인증이 필요합니다. 작동 방식은 누구나 알고 있습니다. Windows 워크스테이션에 로그인하면 Internet Explorer 브라우저를 기반으로 하는 인터넷 액세스 요청이 도메인 로그인 자격 증명을 사용하여 자동으로 인증(및 인식)됩니다.

나는 Firefox가 이러한 프록시 서버에 대해서도 인증할 수 있다는 것을 발견했고 오랫동안 그들이 "뭔가 특별한 일을 했다"고 생각했습니다. 최근 한 동료가 가상 머신에 Linux Mint를 설치했는데 놀랍게도 그는 인터넷에서 업데이트를 받으느라 바빴습니다. 내가 그에게 어떻게 성공했는지 물었을 때, 그는 어깨를 으쓱하며 "그냥 효과가 있다"고 말했습니다.

이로 인해 프록시 설정을 다시 방문하라는 메시지가 표시되었습니다. 저는 Kubuntu를 실행합니다(G*와 K* 앱을 혼합했지만 GTK 앱이 K*보다 훨씬 낫다고 확신할 때만 GTK 앱을 사용합니다).

저는 여전히 VirtualBox VM에서 Windows 게스트 복사본을 실행하고 있는데, 주로 내부/회사 웹사이트를 인쇄하고 액세스하는 데 사용하며(둘 다 MS 도메인 자격 증명을 통한 인증 및 식별이 필요함) 며칠마다 도메인 암호를 변경합니다.

따라서 내 Linux 애플리케이션의 [일부/대부분/전부]가 프록시 서버를 통해 작동하도록 할 수 있다면 매우 도움이 될 것입니다. 나에게 가장 시급하게 필요한 것은 Akregator와 Muon이 작동하는 것입니다. 도움이 될 수 있는 다른 앱은 자동으로 업데이트되거나(Virtual Box Extensions 등) 브라우저에서 스스로를 래핑하는 앱입니다(더 많은 테마/배경화면 등을 가져오고 가끔 wget을 사용하는 것을 고려).

SSH/SCP 클라이언트는 인증 없이 방화벽을 통해 작동합니다.

이 기능을 구성하는 올바른 방법(도구 및/또는 프로그램)은 무엇입니까? 여러 위치에서 비밀번호를 유지해야 하면 내 계정이 잠길 수 있으므로 한 위치에서 하는 것이 좋습니다. :-/

아, Firefox "빠른 프록시" 프록시 비활성화/활성화 유틸리티와 동등한 기능을 가질 수 있다면 꿈이 실현될 것입니다. 예를 들어 로그아웃했다가 다시 로그인할 필요 없이 한 번의 클릭으로 프록시 사용을 활성화하거나 비활성화할 수 있습니다. 네트워크입니다. 실제로 생각해 보십시오. 유틸리티는 귀하의 IP 주소를 보고 언제 프록시를 사용해야 하는지 알 수 있도록 훈련 가능해야 합니다! 그러나 나는 빗나갔다.

동적으로 인증을 추가하고 필요할 때 업스트림 프록시 서버로 전달할 수 있는 로컬 프록시 서버를 실행하는 것이 유일한 실제 솔루션일 수 있다고 생각합니다.

답변1

cntlm솔루션과 일부 구성이 제공됩니다.

따라야 할 기본 단계는 다음과 같습니다.

  1. cntlm을 설치합니다.
  2. /etc/cntlm.conf에서 구성 파일을 편집하세요. 여기에는 충분히 간단하게 만들 수 있는 설명이 포함되어 있습니다.
  3. 프록시 서버(또는 두 개)를 추가합니다.
  4. 적절한 위치에 사용자 이름과 NT 도메인 이름을 지정하고 비밀번호 항목을 제거하십시오.
  5. 예를 들어 다음을 통해 cntlm 서비스를 시작합니다.

    $ sudo /etc/init.d/cntlm start
    
  6. cntlm은 프록시를 테스트하고 비밀번호를 기반으로 해시를 생성하는 방법을 제공합니다(예: 루트로).

    $ cntlm -I -M http://www.test.com
    
  7. cntlm은 도메인 비밀번호를 묻는 메시지를 표시합니다. 그런 다음 구성된 프록시 서버에 대해 다양한 인증 메커니즘을 테스트합니다. 작업 방법을 찾으면 구성 파일에 작성해야 하는 두 줄을 인쇄합니다.

  8. cntlm 서버를 중지하고 위의 6단계에서 얻은 행을 /etc/cntlm.conf.
  9. cntlm 다시 시작

이제 cntlm실행하고 사용할 준비가 되었습니다. 다양한 프로그램을 구성하여 사용할 수 있는 곳은 많습니다. cntlm그러면 NT 도메인 인증 토큰이 나가는 패킷에 투명하게 추가되고 구성된 프록시 서버로 전달됩니다.

Qt/KDE 사용

Qt/KDE 기본 응용 프로그램의 경우 "수동으로 구성된 프록시 서버 사용"에서 지정하십시오.KDE 시스템 설정->네트워크 설정->프록시 설정. 프록시는 포트 3128( 변경하지 않는 한 http://localhost기본 포트 )로 지정됩니다. cntlm이러한 애플리케이션은 새로운 설정으로 동적으로 업데이트되며 설정을 업데이트하기 위해 재부팅이나 로그아웃/로그인이 필요하지 않습니다.

Dropbox 및 Google 클라이언트

많은 애플리케이션에서 셸 환경 변수를 사용할 수 있습니다. 여기서 주목할 점은 Dropbox 및 Google Earth 클라이언트입니다. 이러한 애플리케이션의 경우 다음 셸 환경 변수를 사용합니다.

no_proxy=localhost,127.0.0.0/8,*.local
NO_PROXY=localhost,127.0.0.0/8,*.local
all_proxy=socks://localhost:3128/
ALL_PROXY=socks://localhost:3128
http_proxy=http://localhost:3128
HTTP_PROXY=http://localhost:3128
ftp_proxy=http://localhost:3128
FTP_PROXY=http://localhost:3128
https_proxy=http://localhost:3128
HTTPS_PROXY=http://localhost:3128

s3cmd, 컬 및 wget

참고: 일부 앱은 소문자 이름만 사용하고 다른 앱은 대문자 이름만 사용하며 일부 앱은 먼저 대문자 이름을 시도한 다음 다른 것을 시도합니다.

s3cmd(Amazon S3 클라이언트) 원하는 경우 자체 구성 파일을 통해 구성할 수 있습니다 curl. wget이는 호출할 때마다 자체 구성 파일을 읽기 때문에 편리합니다. 이러한 프로그램은 일반적으로 수명이 짧기 때문에 유용합니다(다운로드가 완료된 후 단일 호출이 있음).

s3cmdin의 형식은 ~/.s3cfg다음과 같습니다.

proxy_host = localhost
proxy_port = 3128

wget의 형식은 다음 ~/.wgetrc과 같습니다.

https_proxy = http://localhost:3128
http_proxy = http://localhost:3128
ftp_proxy = http://localhost:3128

curlin의 형식은 ~/.curlrc다음과 같습니다.

proxy = localhost:3128

반면, 셸 구성 파일이나 기타 환경 구성 파일을 편집하려면 일반적으로 재부팅, 로그아웃, 로그백 또는 유사한 작업이 필요합니다. /etc/environment등을 살펴볼 가치가 있습니다 ~/.pam_environment. ~/.kde/env/proxy.sh이는 특히 시스템의 모든 사용자와 서비스에 영향을 미치는 쉘 환경 변수를 통해 구성된 프록시 설정을 지정하는 표준 장소이기 때문입니다.

또한 개별 파일을 사용하여 .desktop애플리케이션별로 환경 설정을 변경할 수 있다는 것을 알고 있지만 아직 시도하지 않았습니다(성공적으로).

가상 상자

VirtualBox는 GUI를 사용하거나 다음 명령을 사용하여 프록시(예: 소프트웨어 업데이트 확인 및 다운로드)를 사용하도록 구성할 수 있습니다.

$ VBoxManage setextradata global GUI/ProxySettings \
    "proxyEnabled,localhost,3128,authDisabled,,"

완전성을 위해 비활성화하려면 다음을 사용하십시오.

$ VBoxManage setextradata global GUI/ProxySettings \    
    "proxyDisabled,,,authDisabled,,"

파이어폭스 브라우저

Firefox의 경우 QuickProxy 플러그인을 사용합니다. Firefox 자체가 로컬 컴퓨터에서 프록시 서버를 사용하도록 수동으로 구성된 경우 QuickProxy는 해당 설정을 활성화/비활성화하기만 하면 됩니다.

쉬운

APT에서 사용 중인 구성 파일(시냅틱, muon 및 내부 친구들이 사용) /etc/apt/apt.conf.d/예를 들어 00proxy APT 프록시 활성화는 다음 줄을 통해 수행됩니다.

Acquire::http::Proxy "http://localhost:3128";
#Acquire::ftp::proxy "ftp://localhost:3128/";
#Acquire::https::proxy "https://localhost:3128/";

참고: add-apt-repository는 루트 구성 파일을 사용하거나 모든 http*_proxy 설정이 실패하도록 sudo를 구성할 수 있습니다.

모든 것을 지배하는 스크립트

FWIW 저는 현재 여러 프로그램에 대해 프록시를 활성화/비활성화하는 모듈식 스크립트를 작성 중입니다. 지금까지 나는 다음 모듈을 작성했습니다.

$ ls -lF proxymanager/modules/
total 60
-rwxr-xr-x 1 root root  919 Oct  8 17:27 apt*
-rwxr-xr-x 1 root root 1037 Oct  8 13:10 bashrc*
-rwxr-xr-x 1 root root  391 Oct  8 12:18 cntlm*
-rwxr-xr-x 1 root root  684 Oct  8 12:58 curl*
-rwxr-xr-x 1 root root  609 Oct  8 13:02 dropbox*
-rwxr-xr-x 1 root root  672 Oct  8 12:18 gnome*
-rwxr-xr-x 1 root root  691 Oct  8 12:18 kde*
-rwxr-xr-x 1 root root  689 Oct  8 13:03 root_bashrc*
-rwxr-xr-x 1 root root  691 Oct  8 13:03 root_curl*
-rwxr-xr-x 1 root root  827 Oct  8 13:03 s3cmd*
-rwxr-xr-x 1 root root  454 Oct  8 13:03 survive_reboot*
-rwxr-xr-x 1 root root  860 Oct  8 13:06 suse-sysproxy*
-rwxr-xr-x 1 root root  653 Oct  8 12:46 sysenvironment*
-rwxr-xr-x 1 root root  465 Oct  8 13:04 virtualbox*
-rwxr-xr-x 1 root root  573 Oct  8 13:04 wgetrc*

및 제어 응용 프로그램. 이 내용이 곧 github이나 다른 온라인 홈페이지로 옮겨지길 바랍니다.

답변2

내 Linux 워크스테이션에서 인터넷에 액세스할 수 있는 유일한 애플리케이션은 a) Firefox(자체 프록시 구성 및 Firefox에 저장된 인증 사용) 및 Windows VM에서 실행되는 애플리케이션(참고 - Windows VM은 도메인 구성원이고 사용자는 로그인 시 도메인에 대해 인증됩니다)

솔루션 옵션: Windows VM에서 웹 에이전트를 실행합니다. 이 인스턴스를 프록시로 사용하도록 시스템을 설정하십시오.

Windows VM은 이미 인증되었으며 이를 통해 트래픽이 허용되므로 해당 VM 인스턴스에 SOCKS 프록시를 설정하면 인증 요구가 중앙 집중화됩니다. 그것이 당신과 당신의 상자만을 위한 것이라면 이것은 괜찮고 아마도 상당히 간단할 것입니다.

피기백의 개념은 Windows VM에서 SSHD 데몬을 실행하도록 하는 것입니다. 따라서 VM을 통해 다른 시스템에서 SSH SOCKS 터널링과 같은 작업을 수행할 수 있습니다.

ssh -D 1080 windows-user@windows-vm

문제가 있을 수 있거나 애플리케이션을 재구성하고 싶지 않은 애플리케이션의 경우 다음을 사용할 수 있습니다.SSH 터널, 트래픽을 라우팅하기 위한 iptables 규칙을 설정합니다. Linux 및 Mac 시스템에서 사용할 수 있습니다.

Windows VM 자체에 프록시를 설치하지 않으려면 Windows AD에 대해 자체 인증하도록 구성된 Squid 프록시 상자를 설정할 수 있습니다. 이를 수행하는 방법에 대한 지침은 다음과 같습니다.

솔루션 옵션: AD/NTLM으로 인증된 Squid 프록시

http://techmiso.com/1934/howto-install-squid-web-proxy-server-with-active-directory-authentication/(데드링크)

또 다른 NTLM 프록시 솔루션은 실제로 Windows 시스템에서 실행되는 것으로 생각됩니다.

솔루션 옵션: NTLM 프록시 http://cntlm.sourceforge.net/

답변3

아래 링크는 ntlm의 프록시 인증에 대해 매우 잘 설명합니다.

하지만 ntlm의 문제점은 cntlm하루에 여러 번 구성 파일을 업데이트해야 한다는 것입니다. 여러 사용자가 공용 컴퓨터를 공유하고 cntlm시스템에 로그인할 때마다 구성 파일에서 AD 비밀번호를 업데이트해야 하는 상황을 생각해 보세요 . 어쩌면 cntlm사용자가 로그인할 때 프로필을 자동으로 업데이트하는 방법이 있을 수도 있습니다 .

관련 정보