Linux下安裝配置Cntlm代理
有些公司,上網有限制,卻沒有統(tǒng)一配置網關和路由,只是提供了上外網的代理。IT設施的不完善,只能讓員工自己想辦法。當然,也有些情況是特殊的網絡策略與權限管理所致。
Cntlm是一個HTTP二級代理軟件。它主要的作用,是在能代理上網的前提下,給這個代理再做一個代理,提供給更多的下級用戶。下級用戶不需要、也不可能知道代理的賬戶密碼,這樣既保障了安全、又實現了方便。
安裝
以Debian系的安裝為例:
- sudo apt install cntlm
非Debian系的安裝,也是類似的形式。Cntlm是一個很老的軟件,在各大Linux發(fā)行版都有發(fā)布。甚至,連Windows下也有發(fā)布,可以通過choco安裝。
- choco install cntlm
下面的介紹以Linux為例。Windows下的配置,和Linux大同小異,只是文件位置不同。
配置
Cntlm安裝后,在/etc/cntlm.conf就有一份默認配置。如果需要在線查看配置,可以參考cntlm.conf。
修改cntlm.conf
以下配置,幾乎是/etc/cntlm.conf的最簡配置。
- Username USERNAME
- Domain COMPANY_DOMAIN
- Password ********
- Proxy proxy.company.com:8080
- Proxy proxy2.company.com:8080
- NoProxy localhost, 127.0.0.*, 10.*, 192.168.*, .company.com
- Listen 3128
注意:其中USERNAME、proxy.company.com:8080等,應該換成自己的場景適用的值。此外,如果使用下一節(jié)【獲取Auth】的手段,Password配置可省略。
這個配置,僅能讓本機訪問。如果要允許localhost以外的機器訪問,則需要再添加Gateway yes。
- Gateway yes
如果需要限制外部訪問,可以設置黑(Deny)白(Allow)名單。
- Allow 127.0.0.1
- Deny 0/0
獲取Auth
以上配置修改完成后,需要重載或重啟cntlm。具體方法見重載或重啟。
- $ sudo cntlm -vc /etc/cntlm.conf -M http://baidu.com
- section: global, Username = 'USERNAME'
- section: global, Domain = 'COMPANY_DOMAIN'
- section: global, Proxy = 'proxy.company.com:8080'
- section: global, Proxy = 'proxy2.company.com:8080'
- section: global, NoProxy = 'localhost, 127.0.0.*, 10.*, 192.168.*, .company.com'
- section: global, Listen = '3128'
- ...
- HEAD: HTTP/1.1 200 OK
- OK (HTTP code: 200)
- ----------------------------[ Profile 1 ]------
- Auth NTLM
- PassNT 7FA051B4B85F0E7EEBB24D3CD73E52B0
- PassLM 23A1E1A7276E84EA4846D4C9FF957C35
- ------------------------------------------------
- cntlm: Terminating with 0 active threads
添加Auth到配置
添加以下內容到剛才修改過的/etc/cntlm.conf:
- Auth NTLM
- PassNT 7FA051B4B85F0E7EEBB24D3CD73E52B9
- PassLM 23A1E1A7276E84EA4846D4C9FF957C31
重載或重啟
在使用包管理器安裝的情況下,Cntlm默認由systemd來守護,開機自啟。
修改配置后,重載即可生效:
- sudo systemctl reload cntlm
若仍未生效,可以嘗試重啟:
- sudo systemctl restart cntlm