cntlm 구성 파일에 프록시 정보를 입력하는 방법은 무엇입니까?


80

Cntlm 은 NTLM / NTLM 세션 응답 / NTLMv2 인증 HTTP 프록시로서 Microsoft 독점 세계의 사슬에서 벗어날 수 있도록 도와줍니다.

다음 형식의 프록시 URL이 있습니다.

http://user:passwords@my_proxy_server.com:80

그리고이 정보를에 제공해야합니다 cntlm. 구성 파일 cntlm.ini에는 다음과 같은 구조와 매개 변수가 있습니다.

Username 
Domain
Password    
Proxy   

이 네 가지 옵션을 채우기 위해 원래 프록시 속성을 어떻게 분리해야하는지 잘 모르겠습니다.

답변:


111

에서 사용자, 도메인 및 프록시 정보를 업데이트 cntlm.ini한 다음 다음 명령을 사용하여 프록시를 테스트합니다 (Cntlm 설치 폴더에서 실행).

cntlm -c cntlm.ini -I -M http://google.ro

비밀번호를 묻고 필요한 인증 정보를 인쇄합니다. cntlm.ini

샘플 cntlm.ini:

Username            user
Domain              domain

# provide actual value if autodetection fails
# Workstation         pc-name

Proxy               my_proxy_server.com:80
NoProxy             127.0.0.*, 192.168.*

Listen              127.0.0.1:54321
Listen              192.168.1.42:8080
Gateway             no

SOCKS5Proxy         5000
# provide socks auth info if you want it
# SOCKS5User          socks-user:socks-password

# printed authentication info from the previous step
Auth            NTLMv2
PassNTLMv2      98D6986BCFA9886E41698C1686B58A09

참고 : Linux에서 구성 파일은cntlm.conf


도메인을 알아낼 수 있습니까 http://user:passwords@my_proxy_server.com:80? 아니면 시스템 관리자에게 문의해야합니까?
Dilawar

Domain domain줄에 주석을 달고 테스트를 실행하면 작동 할 수 있습니다.
alexandrul 2012

또한 Password my-password줄 을 추가 할 수 있습니다 . 안타깝게도 여기에서는 설정을 복제 할 수 없습니다.
alexandrul 2012

2
Linux (Mint)에서 구성 파일은 cntlm.conf이며이 명령은 작동합니다 (.exe 부분 제외)
Carl Pritchett

1
흥미 롭군. 후손을 위해 /etc/cntlm.conf우분투 14.04 에서 방금 찾았습니다 .
weberc2

54

솔루션은 두 단계를 거쳐야합니다!

먼저에서 사용자, 도메인 및 프록시 필드를 완료합니다 cntlm.ini. 사용자 이름과 도메인은 사무실에서 Windows에 로그인 할 때 사용하는 모든 것이어야합니다.

Username            employee1730
Domain              corporate
Proxy               proxy.infosys.corp:8080

그런 다음 다음과 같은 명령을 사용하여 cntlm을 테스트합니다.

cntlm.exe -c cntlm.ini -I -M http://www.bbc.co.uk

암호를 묻습니다 (Windows_에 로그인 할 때 사용하는 모든 항목). 바라건대 어딘가에 'http 200 ok'를 인쇄하고 몇 가지 비밀 토큰 인증 정보를 인쇄합니다. 이제 추가 이것들을 하는 cntlm.ini, 예를 :

Auth            NTLM
PassNT          A2A7104B1CE00000000000000007E1E1
PassLM          C66000000000000000000000008060C8

마지막으로 http_proxyWindows 에서 환경 변수를 다음과 같이 Listen설정합니다 (기본적으로 설정되어 있는 필드를 변경하지 않았다고 가정 3128).

http://localhost:3128

15

구성없이 다음 명령을 실행하기 만하면 됩니다 (사용자 정보 수정 myusername및 수정 mydomain).

cntlm -u myusername -d mydomain -H

또는

cntlm -u myusername@mydomain -H

의 암호를 묻고 myusername다음과 같은 출력을 제공합니다.

PassLM          1AD35398BE6565DDB5C4EF70C0593492
PassNT          77B9081511704EE852F94227CF48A793
PassNTLMv2      A8FC9092D566461E6BEA971931EF1AEC    # Only for user 'myusername', domain 'mydomain'

그런 다음 파일을 만듭니다. cntlm.ini (또는 cntlm.conf(당신의 교체 다음과 같은 내용으로 기본 경로를 사용하여 Linux에) myusername, mydomain그리고 A8FC9092D566461E6BEA971931EF1AEC정보 및 이전 명령의 결과를 함께) :

Username    myusername
Domain      mydomain

Proxy       my_proxy_server.com:80
NoProxy     127.0.0.*, 192.168.*

Listen      127.0.0.1:5865
Gateway     yes

SOCKS5Proxy 5866

Auth        NTLMv2
PassNTLMv2  A8FC9092D566461E6BEA971931EF1AEC

그러면 로컬 포트에 로컬 오픈 프록시가 있고 로컬 포트에 5865SOCKS5 프로토콜을 이해하는 다른 프록시가 있습니다 5866.


3

다음은 cntlm 사용 방법에 대한 가이드입니다.

cntlm이란 무엇입니까?

cntlm은 NTLM / NTLMv2 인증 HTTP 프록시입니다.

프록시의 주소를 받아 청취 소켓을 열어 각 요청을 상위 프록시로 전달합니다.

왜 cntlm인가?

cntlm을 사용 choro, pip3, apt-get하면 명령 줄에서 와 같은 도구를 실행할 수 있습니다.

pip3 install requests
choco install git

cntlm의 주요 장점은 암호 보호입니다.

cntlm을 사용하면 암호 해시를 사용할 수 있습니다.

그래서 NO 평문 암호%HTTP_PROXY%%HTTPS_PROXY%환경 변수

cntlm 설치

sourceforge 에서 최신 cntlm 릴리스를 얻을 수 있습니다.

노트! 사용자 이름 및 도메인

내 사용자 이름은 zezulinsky

내 도메인은 local

내가 사용하는 명령을 실행할 때 zezulinsky@local

명령을 실행할 때 사용자 이름을 입력하십시오.

암호 해시 생성

명령 실행

cntlm -u zezulinsky@local -H

비밀번호 입력 :

Password:

결과적으로 해시 된 암호를 얻게됩니다.

PassLM          AB7D42F42QQQQ407552C4BCA4AEBFB11
PassNT          PE78D847E35FA7FA59710D1231AAAF99
PassNTLMv2      46738B2E607F9093296AA4C319C3A259

생성 된 해시가 유효한지 확인

명령 실행

cntlm -u zezulinsky@local -M http://google.com

비밀번호를 입력하세요

Password:

결과 출력

Config profile  1/4... OK (HTTP code: 301)
----------------------------[ Profile  0 ]------
Auth            NTLMv2
PassNTLMv2      46738B2E607F9093296AA4C319C3A259
------------------------------------------------

노트! PassNTLMv2 해시가 동일한 지 확인합니다. 결과 해시가 두 명령에 대해 동일합니다.

PassNTLMv2      46738B2E607F9093296AA4C319C3A259

구성 파일 변경

생성 된 해시를 cntlm.ini구성 파일에 배치

C:\Program Files (x86)\Cntlm\cntlm.ini

당신의 cntlm.ini모습은 다음과 같습니다.

Username    zezulinsky
Domain      local
PassLM      AB7D42F42QQQQ407552C4BCA4AEBFB11
PassNT      PE78D847E35FA7FA59710D1231AAAF99
PassNTLMv2  46738B2E607F9093296AA4C319C3A259

Proxy       PROXYSERVER:8080
NoProxy     localhost, 127.0.0.*
Listen      3128

노트! cntlm.ini 끝의 줄 바꿈

cntlm.ini구성 파일 끝에 개행을 추가하는 것이 중요 합니다.

환경 변수 설정

HTTPS_PROXY=http://localhost:3128
HTTP_PROXY=http://localhost:3128

cntlm이 작동하는지 확인

cntlm.exe프로세스 탐색기로 명명 된 모든 프로세스 중지

명령 실행

cntlm -u zezulinsky@local -H

출력은 다음과 같습니다.

cygwin warning:
  MS-DOS style path detected: C:\Program Files (x86)\Cntlm\cntlm.ini
  Preferred POSIX equivalent is: /Cntlm/cntlm.ini
  CYGWIN environment variable option "nodosfilewarning" turns off this warning.
  Consult the user's guide for more details about POSIX paths:
    http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
section: local, Username = 'zezulinsky'
section: local, Domain = 'local'
section: local, PassLM = 'AB7D42F42QQQQ407552C4BCA4AEBFB11'
section: local, PassNT = 'PE78D847E35FA7FA59710D1231AAAF99'
section: local, PassNTLMv2 = '46738B2E607F9093296AA4C319C3A259'
section: local, Proxy = 'PROXYSERVER:8080'
section: local, NoProxy = 'localhost, 10.*, 127.0.0.*
section: local, Listen = '3128'
Default config file opened successfully
cntlm: Proxy listening on 127.0.0.1:3128
Adding no-proxy for: 'localhost'
Adding no-proxy for: '10.*'
Adding no-proxy for: '127.0.0.*'
cntlm: Workstation name used: MYWORKSTATION
cntlm: Using following NTLM hashes: NTLMv2(1) NT(0) LM(0)
cntlm: PID 1234: Cntlm ready, staying in the foreground

새 cmd를 열고 명령을 실행하십시오.

pip3 install requests

요청 python 패키지가 설치되어 있어야합니다.

컴퓨터를 다시 시작하십시오.

축하합니다. 이제 cntlm이 설치 및 구성되었습니다.


1

을 추가하기 위해 "pip"작업을 수행하는 경우 "--proxy = localhost : port_number"를 추가해야 할 수 있습니다.

예 : pip install --proxy=localhost:3128 matplotlib

자세한 내용을 보려면 이 링크 를 방문 하십시오.


0

파일을 생성하고 비밀번호를 변경하면 아래와 같이 실행할 수 있습니다.

cntlm -H

사용자 이름은 동일합니다. 암호를 묻고, 부여한 다음 PassNTLMv2를 복사하고 cntlm.ini를 편집 한 다음 다음을 실행합니다.

cntlm -v

-3

나를 위해 사용하는 cntlm -H것은 올바른 해시를 생성하지 않았지만 사용자 이름을 제공하는 아래 명령으로 수행됩니다.

cntlm에 대한 새 암호 해시를 생성해야하는 경우 변경했거나 강제로 업데이트해야했기 때문에 아래 명령을 입력하고 출력으로 cntlm.conf 구성 파일을 업데이트하면됩니다.

$ cntlm -u test -H
Password: 
PassLM          D2AABAF8828482D5552C4BCA4AEBFB11
PassNT          83AC305A1582F064C469755F04AE5C0A
PassNTLMv2      4B80D9370D353EE006D714E39715A5CB    # Only for user 'test', domain ''

이 게시물에는 정보가 완전히 누락되어 있으며, NTLMv2 해시가 올바르게 작동하려면 해당 도메인 및 사용자 이름을 설정해야하며이 정보를 저장하는 방법과 위치도 설정해야합니다.
Petr
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.