2011年1月23日 星期日

How to set SSH tunnel, dummy way, step by step...

應多多的需求,
來寫篇SSH Tunnel的教學,
以最基本最基本的為主,先不考慮任何進階的用法。

架構如下
一般來說經由正常方式連線,中間容易被第三者竊聽,除非是經過HTTPS等加密的Protocol
如果像是MSN或HTTP則是可以一覽無遺,
例如firesheep則是在未加密的無線網路環境竊聽http packet,
還順便幫你整理好讓你不用去看packet structure。



透過Tunnel連到Internet,分成兩個部份來看
Client到SSH host端經過加密,因此中間的第三者唯一能看到的是你連線到SSH Host
但他無法得知你中間到底傳什麼?
但SSH Host以及SSH Host到Internet之間還是可以竊聽,
端看你對於SSH Host的信任程度。
因為我們只要避開已知的竊聽者:)


Requirement:

  1. Putty (SSH Client, http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe)
  2. SSH Host
執行Putty的畫面,Host Name填入SSH主機的位址,
Saved Sessions填入名稱,以便之後可以直接連線不用再設定一次,但還沒設定完...
Tip: 在Host name輸入帳號@主機位址,代表要直接以指定帳號登入,登入時就不會再詢問帳號

在左邊有列出各個設定,選擇Connection→SSH→Tunnels,就會看到如上的頁面,
Source Port是指在本機的Socks Server開啟的Port,不清楚是什麼就填入8080
Destination空白,下面的選項填入Dynamic,代表我們需要一個不指定目的地的Socks server
設定後在左邊的分類,回到第一頁的Session,並在前一步驟輸入名稱的右邊按下Save
下次使用直接點Session name就可以使用了
按下Open後會提示問帳號跟密碼,如果前面設定Host name時有指定帳號,這裡就不會再詢問帳號
這張圖片中我把許多資訊拿掉了,因此很多地方是黑的XD
登入後,Putty就可以先縮小放著不管了,除非你有要做其他操作?
接著開啟命令提示字元,輸入指定Netstat -an
這個指令會列出目前這台電腦的所有連線,在這當中尋找一個127.0.0.1:8080
後面跟著IP為0.0.0.0:0 狀態為Listening
代表已經成功讓Putty變成Socks Server,並且已經在傾聽狀態

接著,設定需要經過Socks Server的程式
首先設定IE的Proxy,許多Client的Proxy有個自動取得,即是refer到IE的Proxy設定
開始→控制台→網際網路選項
或是IE的工具列→工具→網際網路選項
若瀏覽器是Chrome,選項→進階選項→變更代理伺服器設定

切換到連線分頁

連線→區域網路設定
勾選"在您的區域網路使用Proxy伺服器"
位址跟連接埠空白,接著點進階
在Socks的欄位,位址填127.0.0.1,連接埠填入8080
127.0.0.1是指本機的意思,因為我們在同一台電腦上開啟Socks Server
8080則是在前面設定SSH tunnel時開啟的連接埠
接著設定MSN

工具→選項→連線分頁→連線設定

MSN的Proxy可以設定Http Proxy或Socks Proxy
在更新MSN前印象中MSN可以直接走IE設定的HTTP Proxy
但更新後好像沒有辦法?因此還是要獨立設定SOCKS Proxy
設定方式跟前面類似,設定好之後可以按下測試看看是否設定正確
設定之後,我們可以藉由Netstat來看看連線的狀況
一樣開啟命令提示字元,打netstat -an
若有與127.0.0.1:8080建立連線就代表正常
或透過小工具
Sysinternals出的TCPView
不過Sysinternals被Microsoft買下來了:~
http://technet.microsoft.com/en-us/sysinternals/bb897437
圖片中可以看見不同的程式透過127.0.0.1:8080連線出去

以上,就是最基本的SSH Tunnel設定,進階版則包括以下設定

  1. Putty設定自動登入(設定Putty的Private Authentication Key)
  2. 利用plink在command line模式直接連線
  3. 搭配wifi manager的功能實現不同網路直接建立Proxy並且更換設定(例如像我設定好連上公司無線網路後,自動開啟連線建立Socks proxy,並切換Proxy到指定proxy)
以上,有需要再自己想辦法XD

沒有留言:

張貼留言

how do i fix an error with libc6-dev-armhf-cross in linux mint upgrade

先前升級公司用的工作機碰到這個問題 Log就不貼了,我手邊也沒有,可以參考下列連結 https://askubuntu.com/questions/1079797/how-do-i-fix-an-error-with-libc6-dev-armhf-cross-in-ubuntu...