2009年6月29日 星期一

SSH Tunnel via DD-WRT

好多公司的防火牆越來越厲害啦!越來越難穿過公司的防火牆,能破解公司防火牆大概剩下HTTP Tunnel,SSH Tunnel還有點機會,研究這些方法的,大陸人還是比較厲害一點,大概對外的世界都被鎖了,才會覺得自由可貴吧,不過這個就先不討論了。

突然想到DD-WRT 有SSH forward的功能,上網找了一下,還真的有機會做一個SSH Tunnel server,先從最簡單的Putty來試試看可行性。

先把DD-WRT管理介面打開,Service下的SSH功能當然是要先開:

圖片1


然後開啟遠端SSH管理,且改到443port,通常除了80和443port之外都被挨踢部門給封了,到此,Server部分搞定了,真的超乎想像的簡單:

圖片2


然後是Client的部分,打開Putty,設一個新的profile "SSH Tunnel",DD-WRT怎麼用DDNS的部分就跳過了,應該不會有人會裝DD-WRT卻不會用DDNS吧,下面port應該要連443port才對,忘了改:

圖片3


建立一個通道,只要電腦裡的東西丟到3000port(舉例,可隨您高興),就幫轉發到443port的tunnel上:

圖片4


以IE為例,把東西往3000port的socket丟或取,MSN或Skype設置方法亦同:

圖片5


Firefox厲害一點,可以裝個add ons "FoxyProxy",加入url pattern,只將特定(就是被挨踢檔掉的網址)的網頁,設定經過這個Proxy去找,這樣會省頻寬一些(Proxy頻寬或取決於server端的上傳頻寬,通常只有512k~2M吧!如果是架在自己家用ADSL的話),頻寬省著點用,還要留一些給挨踢檔掉的MSN跟Skype呢!!


圖片6


最好是用Firefox瀏覽,FF設定about:config裡有個功能,使用遠端的dns要打開,不然雖然突破了挨踢防火牆,但DNS被IT一覽無遺,IT還是知道您逛了哪些網站(不堪入目的!?),只是以為連不上而已(連不上怎麼還會一直連呢,這就有趣了):

設定在network.proxy.socks_remote_dns

布林值改成 "true"就行了

圖片7


好了!當然到這邊大功告成了,不過上面是陽春版的,不一定要用Putty,MyEntunnel也是個蠻好用的選擇,這也是陽春版的:

圖片11


進階版來了!有個SSH Tectia Client軟體,提供更簡單的設定,直接選擇想把哪些軟體的流量,塞到SSH Tunnel裡,不需要每個軟體設定先往3000port(以上面例子)塞,所有軟體動都不用動,網頁通常不會被檔,不過可以IE跟FF可以擇一走tunnel,當然就FF了,其他就塞MSN跟Skype進Tunnel就好了,或是還有FTP的話:


圖片8


Server在443port,當然東西就往443port塞,設定好連線profile,就算大功告成了:


圖片9


可以看到SSH-Tunnel的流量:

圖片12

SSH的好處是不易破解的加密,即便挨踢發現你對某IP的流量特別大,也無法知道上了哪些網站做了哪些事:

圖片10

下一步,換挨踢部門要頭痛痛了!!

至於SSH-Tunnel還有什麼搞頭呢!?暫時想到就是手機,中華電信的mCool方案299吃到飽,只適用於手機透過80和443port上網,如果手機也有SSH的client軟體把流量全塞到443port,那可以連上網的軟體就不受限制了,目前知道Putty有for Sybian S60的版本,還沒有試過有啥搞頭,有試過的人可以分享一下吧。

--
HOWTO: Tunneling HTTP over SSH with DD-WRT, DynDNS and Putty

Secure Web Browsing with DD-WRT/OpenWRT, Dynamic DNS, SSH, and Firefox

8 則留言:

Unknown 提到...

Hi
請問一下你是用什麼router刷DD-WRT的?
另外就是刷的DD-WRT是什麼版本?

因為我在網路上爬文,好像有提到刷好DD-WRT之後
還需要另外ipkg安裝openssh才能使用SSH -D的功能?

對不起,問題有點多...XD

Unknown 提到...

可以刷DD-WRT的很多阿, 到官方網站就有支援的AP列表, 我有用Asus RT-N16, 520GU, WL-500L 都用過, 應該任何一版DD-WRT都有(micro不確定), Standard以上應該有SSH且可以Tunnel

匿名 提到...

大哥您好,請問我在學校用Iphone上網,有些軟體都開不起來,請問這個問題可以用你上面教的方法解決嗎? 還是有其他的方法? VPN可以嗎? 麻煩您教教我,謝謝您!!

Unknown 提到...

iphone 有沒有ssh tunnel 軟體我不太確定 不過有內建pptp蠻簡單的, 就跟tunnel一樣, 學校沒有鎖1723port的話就用pptp吧

匿名 提到...

vpn pptp在youtube使用上容易出問題,同樣網路ssh就很順。iphone上聽說用iSSH軟體(好貴)可以連,不然這篇教學文可以參考看看。http://thireus.dareyourmind.net/index.php/iphone-notes/109-iphone-ssh-tunnel-socks-proxy-success-d

匿名 提到...

S60 SSH-Tunnel好像用不了
連線前沒有選項可以設定ssh tunnel的port
進了去黑底白字command部份可以再設定嗎?
但好像沒有browser支援更改socks proxy....

匿名 提到...

網上設定 SSH 的方法有很多, 比較關注的是可作 Tunneling 的軟體, 比如閣下介紹的 SSH Tectia Client, 但是這個好像是付款軟體來的, 有其他的選擇嗎? XD

casinosite777.info 提到...

Great blog article. Really looking forward to read more.
온라인카지노