본문 바로가기

IT/IT Trend

회사 프록시 내에서 각종 어플리케이션 사용하는 방법

어느 정도 규모가 있는 회사에서는 프록시를 사용하여 직원들의 인터넷 사용을 모니터링하거나 필터링하여 회사내의 인트라넷을 외부 위협으로 막는 것이 일반적이다.

문제는 직원들 입장에서는 이런 프록시 때문에 웹브라우저가 아닌 기타 어플리케이션에서 각각의 프록시 설정을 해주는게 번거럽기도 하고, 비밀번호가 바뀌는 경우 일일이 찾아서 바꾸는 등 번거러운 점이 많다는 것. 또는 NTLM등 어플리케이션이 지원하지 않는 프록시 설정의 경우 아예 회사내에서는 사용하지 못하는 경우도 있다.


이럴 경우, 어플리케이션과 회사내 프록시 사이에서 가상의 프록시를 만들어, 다양한 어플리케이션에 대한 프록시 설정을 편하게 지원해주는 프로그램이 있어 소개한다.


Cntlm, NTLM 인증을 중간에 더해줘서 어플리케이션에서 간단한 프록시 설정으로 회사내의 프록시를 통해 인터넷을 사용할 수 있게 해주는 유틸리티.


# List of parent proxies to use. More proxies can be defined
# one per line in format <proxy_ip>:<proxy_port>
#
Proxy        10.0.0.41:8080
Proxy        10.0.0.42:8080
Listen       3128 
Username    testuser
Domain    corp-uk
Password    password
# NOTE: Use plaintext password only at your own risk
# Use hashes instead. You can use a "cntlm -M" and "cntlm -H"
# command sequence to get the right config for your environment.
# See cntlm man page
# Example secure config shown below.
# PassLM 1AD35398BE6565DDB5C4EF70C0593492
# PassNT 77B9081511704EE852F94227CF48A793
### Only for user 'testuser', domain 'corp-uk'
# PassNTLMv2 D5826E9C665C37C80B53397D5C07BBCB


설정 파일에서 Proxy에 회사내의 프록시를 써주고, Usename, Domain, Password 등을 기입하여 주면 Listen에 해당하는 Port를 통해 다른 어플리케이션이 프록시 인증을 받을 수 있다.


즉, 예전에는 각각의 어플리케이션에서 인증에 대한 정보를 써줘야 했다면, Cntlm서비스를 시작한 후에는


http://localhost:3128 처럼, 추후 변경할 필요가 없는 한번의 설정으로 프록시를 사용할 수 있게 되는 것이다.


특히 개발자의 입장에서 여러 웹서비스를 사용해야 하는 경우에 이 프로그램의 진가를 발휘한다.

즉, Github이나, Npm, Docker Hub 등의 프로그램을 사용하는 경우, 각각의 설정 파일에 매번 프록시 인증을 써줘야 하고, 비밀번호가 바뀌는 경우에는 다시 매번 파일을 찾아 변경해줘야 하지만, Cntlm을 사용하여 1회성 작업으로 프록시 설정을 추후 변경없이 사용할 수 있다. 



- 참고 -


http://stormpoopersmith.com/2012/03/20/using-applications-behind-a-corporate-proxy/

http://scottoffen.com/2013/10/29/solving-proxy-problems-with-cntlm/