iT邦幫忙

DAY 15
1

emacs的30天學習筆記系列 第 34

Web Service 之外:微軟 的ISA Proxy server

  • 分享至 

  • xImage
  •  

一直以來,不管是 vm ware下裝 linux,或是 andlinux(colinux) ,在公司區網內,就是沒法連出去。

近來發現一個專案,發現 ntlmaps(<ntlmaps.sourceforge.net>),
發現 原來,ISA PROXY SERVER是可以客製的,還以為proxy 就是國際標準,大家做的都差不多,以前待傳產時,好像兩光的硬體firewall 小盒子,裏面就有附proxy,
或是不用把proxy on 起來,或是兩條專線對外,可以動能切換,反正筆者對proxy及網路的常識都很粗淺。

下找源碼包,解壓後, 看了一下README(readme.txt), 其中寫到,

  1. HISTORY BEHIND THE 'NTLM Authorization Proxy Server'.

I got the idea for 'NTLM Authorization Proxy Server' when admin in our network
swiched MS Proxy so that we had to use 'NTLM'. It was simply disaster. Everything
stopped working but IE5.5.

So then I had realized that there was no solution to make my favorite programs work with
it I decided to do something. And here you are.

原作者說,他的區網切換到MS Proxy ,必須用'NTLM'.那真是災難/慘劇**(disaster)**,然後他就不用能他喜愛的程式,他就決心做點事#$%><,然後筆者在多年後就看到了!!

真是很純的hacker 精神(指的是古典的定義),那裏有限制,就從那裏突破。

不少技術,都是因應某大軟體公司的產品產生的需求。光是vmware這類的模擬器,也是要在
windows上跑非windows的os,才有了市場,先能生存,之後就愈來多用途了。流傳一時的
LiveCD, 也是不想破壞PC上預載的windows,記憶體大一點就可以跑了,
最近在用的andlinux(colinux)也是。

在做了種種努力之後,筆者發現,hacker的門檻頗高。仍沒連上網。
首先在windows(xp)下,跑ntlmaps,作者是用python寫的。所以要先安裝python。
到官網,把windows版本的(msi格式),下一步下一步就裝起來了。
筆者的預設路徑,是C:\Python27
在ntlmaps的目錄下,筆者也放在C:\ntlmaps
,原作者貼心的寫了一個runserver.bat,

@echo off
"c:\program files\python\python.exe" main.py

可能年代久遠了,覺得python的路徑,目錄名都不一樣。
但是可以參考程式的執行方式

在install.txt裏有講使用方式,

把server.cfg 改幾個參數,
筆者是改

PARENT_PROXY:isa2004

NT_DOMAIN:gtoc

USER:tim_lo

PASSWORD:@@@@999

USER/PASSWORD是用開機登入網域的帳號/密碼,上面的密碼是假的。萬一有一天邦友來敝公司登入筆者的pc,這密碼是無效的。請登入自己的。

然後 ,在C:\ntlmaps下。

C:\Python27/python main.py

NTLM authorization Proxy Server v0.9.9.0.1
Copyright (C) 2001-2004 by Dmitry Rozmanov and others.
Now listening at USER348 on port 5865

然後,把chrome google 瀏覽器,的proxy設定,改成 localhost port 改成 5865,

仍可以上網,而且仍不可以上facebook,youtube,
然後還有一個現象:

我明明是用google 瀏覽器chrome,但是卻回覆我,
你用舊版本的IE,在
server.cfg裏,有一段寫著,

#========================================================================
[CLIENT_HEADER]

This section describes what and how the server should change in the clients headers.

Made in order to prevent parent proxy from seeing that you are using wget instead of IE5.5

Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, */*
User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)

for windows 2000 emulation ;)

User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT5)

可看出這個原作者的程式有點久遠,意外的收獲是,我們可以自己切換 訊息格式裏的內容。

所以 ntlmaps是做isa proxy的proxy。最後還是會經過isa proxy。並沒有繞過的效果。

再來是在andlinux(colinux)上的實作。

原理是大同小異,設定是一模一樣。

先看一下,沒有on ntlmaps之前,

timloo@andLinux:~$ wget tw.yahoo.com
--2011-11-10 23:04:42-- http://tw.yahoo.com/
Resolving isa2004.xxxx.com.tw... 10.10.7.2
Connecting to isa2004.xxxx.com.tw|10.10.7.2|:8080... connected.
Proxy request sent, awaiting response... 407 Proxy Authentication Required ( The ISA Server requires authorization to fulfill the request. Access to the Web Proxy filter is denied. )
2011-11-10 23:04:42 ERROR 407: Proxy Authentication Required ( The ISA Server requires authorization to fulfill the request. Access to the Web Proxy filter is denied. ).

而照google的結果,筆者的**.wgetrc**, 裏也有修改,

http_proxy = http://isa2004.xxxx.com.tw:8080

use_proxy = on

proxy-user = tim_lo

proxy-passwd = !@#$%^

然後,把ntlmaps server on 起來,

把**.wgetrc**改成

http_proxy = http://127.0.0.1:5865
ftp_proxy=http://localhost:5865
use_proxy=on
wait = 30

再試一下,而且是用
$ sudo python main.py on ntlmaps prxy 。
效果是:

$ wget tw.yahoo.com
--2011-11-11 01:07:15-- http://tw.yahoo.com/
Connecting to 127.0.0.1:5865... connected.
Proxy request sent, awaiting response... No data received.
Retrying.

--2011-11-11 01:07:16-- (try: 2) http://tw.yahoo.com/
Connecting to 127.0.0.1:5865... connected.
Proxy request sent, awaiting response... No data received.
Retrying.

還是連不出去,但訊息不一樣了。

筆者又google了一堆資料,因為python不熟,所以不太知道怎麼trace python的code。

然後,該是停損,和網管同事請教的時候。想一想該怎麼提問:

我找了一張圖,不知道是不是問題的所在,

左邊是在用 xp的指令列,ping isa server,右邊是在andlinux(colinux)下,ping isa serevr,
一個ping得到,一個ping不到。

當然andlinux(colinux)的TAP 連接,也是另一個探尋的起頭。

筆者另外測一下區網,ssh連上tiptop的主機,連區域網路沒問題,
如下圖:

筆者又轉移了焦點。能夠抓貓的,就是好貓,顯然,要解決問題,還要一些火候。

作者又推見另一作者的cntlmhttp://cntlm.sourceforge.net/

有興趣的邦友們,可以試試。

**小結:**突破版權軟體的限制,除了打打嘴砲,常常需要口水之外的馬步功。
而其中講話苛薄不留情的史托曼先生,突破最大/最終的限制,就是gcc/linux,
當然其功力,不在話下。


上一篇
懷舊C語言:1988 The C Programming Language 2nd Edition(PART IV)
下一篇
Web Service 閒談- 1998年 XML-RPC談起
系列文
emacs的30天學習筆記38
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言