上班族ssh tunnel求生手冊 [論壇 - Ubuntu 與工具程式及軟體推薦]
正在瀏覽:
1 名遊客
上班族ssh tunnel求生手冊 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員三級
![]() ![]() 註冊日期:
2005/7/22 4:43 所屬群組:
已註冊使用者 等級: 13
HP : 0 / 321
![]() |
常常阿,在上班,但是想打個BBS,上個plurk,開個msn聊聊天。但是卻擔心網管監控你的一舉一動。於是可以透過ssh tunnel來把自己的連線加密,這樣就不會被看光光啦。
範例1: 在公司,透過外面的電腦當proxy,連到外面。 ssh -NfD 8888 remote_ip 這時候,瀏覽器和msn在socks 5 proxy設定的欄位填上localhost:8888 。-N : 不執行任何命令 -f : 在背景執行 -D : 建socks5 的proxy 連出去的連驗就是加密,並且是穿過remot_ip的連線。 範例2: 在公司,透過外面的電腦連BBS。 ssh -NfL 2323:bbs.gamer.com.tw:23 remote_ip telnet localhost 2323 就可以連到巴哈,而且是加密的。-L : 將local port 轉向 也可用PCManx連localhost 2323也是一樣的意思。 範例3: 有時候假日,想要連回公司加個班。 但是公司是NAT,所以沒辦法這樣作。 可以運用TCP雙向傳輸的特性來辦到這件事。 ssh -NfR 2222:localhost:22 remote_ip 這時候,只要跑到remote_ip的機器上面-R : 將remote port轉向 ssh localhost -p 2222 就會跑到在NAT後面,公司的機器。 簡單說就是開後門啦!
2009/8/14 10:13
|
||||||||||
![]() |
回覆: 上班族ssh tunnel求生手冊 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2008/4/9 14:04 所屬群組:
已註冊使用者 等級: 31
HP : 0 / 765
![]() |
這篇好....要標記起來!!
多謝整理。
2009/8/14 11:33
|
||||||||||
![]() |
回覆: 上班族ssh tunnel求生手冊 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員三級
![]() ![]() 註冊日期:
2007/6/11 16:34 所屬群組:
已註冊使用者 等級: 14
HP : 0 / 346
![]() |
socks 5 proxy真的很好用,建議多搭配proxychains,就算是利用pcmanx連bbs也可以透過proxy連線
安裝proxychains套件 利用ssh -D建立好 dynamic port forwarding 然後編輯好proxychains的設定檔 /etc/proxychains.conf 主要是加入 socks5 127.0.0.1 8888 接著Alt + F2 執行 " proxychains pcmanx " 接下來的bbs連線都是透過socks 5 proxy了 當然msn也可如法泡製。" proxychains amsn "
2009/8/14 11:39
|
||||||||||
Wubi 10.04 runs in ASUS DiGiMatrix with P-4@2.4GHz and 2GB DDR DRAM
Jaunty LXDE runs in Fujitsu Lifebook P-1030 with Crusoe@700MHz, 112MB SDRAM, and 8GB CF SSD Lucid upgraded from Hardy runs in TWINHEAD F10-F11Y with P-M U1400@1.2GHz and 2GB DDR2 DRAM Wubi 10.04 LXDE runs in Acer Travelmate T3212WXCi with P-M 740 and 512MB RAM Wubi 8.10 runs in TOSHIBA Satellite A135-S2266 with C-M 430 and 1GB RAM |
|||||||||||
![]() |
回覆: 上班族ssh tunnel求生手冊 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
版主
![]() ![]() 註冊日期:
2008/5/13 23:12 來自 Ciudad de Kaohsiung, Taiwán
所屬群組:
網站管理員 已註冊使用者 等級: 15
HP : 0 / 369
![]() |
呵呵,有趣的文章,感謝您的分享。幫你收進精華區嚕~~~
![]()
2009/8/14 18:52
|
||||||||||
The owl of Minerva spreads its wings only with the falling of the dusk.
--- G.W.F. Hegel (1770 - 1831) |
|||||||||||
![]() |
回覆: 上班族ssh tunnel求生手冊 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
版主
![]() ![]() 註冊日期:
2008/7/14 0:03 來自 螢幕的另一端
所屬群組:
網站管理員 已註冊使用者 討論區管理群 等級: 33
HP : 0 / 808
![]() |
範例3:
那部份我還是看不太懂,你可否針對範例3詳細說一下它的原理、理論或概念。 謝謝
2009/8/14 23:15
|
||||||||||
![]() |
回覆: 上班族ssh tunnel求生手冊 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員三級
![]() ![]() 註冊日期:
2005/7/22 4:43 所屬群組:
已註冊使用者 等級: 13
HP : 0 / 321
![]() |
一般公司架構是這樣
PC(10.1.0.1) ---> (10.1.0.254)NAT translate(public_ip) ---> Internet(remote_ip) 但是外面要連進來就辦不到了,因為在NAT後方。 如果你可以控制NAT,你可以指定public_ip:2222 -> 10.1.0.1:22 但是如果你沒有這樣的權限,就沒辦法指定這件事。 ssh remote tunnel利用TCP雙向的特性,是在遠端開一個入口。 PC(10.1.0.1) <---> (10.1.0.254)NAT translate(public_ip) <---> Internet(remote_ip) PC向remote_ip建一條TCP雙向開路的通道。 remote_ip把port 2222的要求,灌給這條通道。 PC收到之後,再把要求灌給自己的port 22。 因此反向的tunnnel就建立起來了。
2009/8/14 23:39
|
||||||||||
![]() |
回覆: 上班族ssh tunnel求生手冊 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員三級
![]() ![]() 註冊日期:
2009/7/4 14:52 所屬群組:
已註冊使用者 等級: 12
HP : 0 / 277
![]() |
或許可以這樣說:
範例一的情境: 公司網路拒絕讓內部員工連線到某些網頁,比如說股票好了。但你知道外界有一個提供 SSH 服務的機器(remote_ip) 可以連到這個股票網站,而且公司網路並沒有阻擋你連線去 remote_ip! 這時候就可以利用範例一提供的功能,要求 SSH 建立一個本地 SOCKS Proxy (localhost:8888) 和一個遠端的 SOCKS Proxy (remote_ip)。並將你的瀏覽器的所有要求,透過 localhost:8888 加密後,連線到 remote_ip 進行解密,再由 remote_ip 代為連線股票網站。回程的資訊也是加密後才傳送回來。 之所以要大費周章地建立兩個 SOCKS Proxy,是因為 SOCKS 協定並沒有加密功能,必須透過本地端和遠端的 SSH 來確保傳送的來回資料的安全。 範例二的情境是: 公司內部網路鎖住連往 bbs.gamer.com.tw:23 的連線,但你知道你可以連線到一台有提供 SSH 服務的機器上(remote_ip),而且它可以連線到巴哈! 所以你就要求本地端和遠端的 SSH,將所有連往 localhost:2323 的連線,透過 SSH 加密後,全部導往 remote_ip,由 remote_ip 解開 SSH 密文後,代你連線巴哈,並將巴哈傳回來的資訊將密後傳回給你。(雖然 localhost 到 remote_ip 之間的資料有用 SSH 加密,但是由 remote_ip 連往巴哈的資料應是明文而非密文。畢竟 telnet 是看不懂 SSH 密文的。) 範例三的情況是: 公司內部網路處於 NAT 或防火牆之後,從你家(remote_ip)沒有辦法直接連線回來。 所以你就先設定好家裡電腦的 SSH 服務,用範例三的方式,先在公司建立一個公司電腦(localhost:22)和 remote_ip 之間的 SSH 連線。並要求家裡電腦將所有連往其埠號 2222 的通訊全部轉往公司電腦的 SSH 埠號 22。等你回到家後,就可以用 SSH 連線家裡電腦的埠號 2222 來登入公司電腦的 SSH 服務了。 以上三種情況,設定上和使用上都應該要小心,免得變成跳板,或者資料遭竊聽。(最好不要聆聽所有網卡,聆聽 localhost 即可。而且 remote_ip 應該是自己非常信任的機器。) 範例一和範例二差別在於 SOCKS Proxy 的建立。這是因為 HTTP Proxy 會貼上/處理/取下額外的資訊,不能直接轉送(Forwarding)。範例二就真的是照本宣科地轉送。(當然,兩者轉送之前都有加密。) 以上,有錯請指正。
2009/8/15 1:29
|
||||||||||
願我撤回自己所加給世界的目的,學習認出它的真相,因而敞開心扉,接納它的真實目的。~《奇蹟課程》,W-55.5:7
|
|||||||||||
![]() |
回覆: 上班族ssh tunnel求生手冊 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
版主
![]() ![]() 註冊日期:
2008/7/14 0:03 來自 螢幕的另一端
所屬群組:
網站管理員 已註冊使用者 討論區管理群 等級: 33
HP : 0 / 808
![]() |
pokkys 寫到: 所以說,一定要在 NAT server 上,開一個 port 對應到內部IP才行是吧? 沒有 NAT 設定的權限就做不了這事是吧? 若你是這個意思的話,那就跟我以前學到的網路概念是一樣,只是我沒聽過"建一條TCP雙向開路的通道" 這樣的術語,所以一時之間聽不懂你的意思。
2009/8/16 1:17
|
||||||||||
![]() |
回覆: 上班族ssh tunnel求生手冊 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員三級
![]() ![]() 註冊日期:
2005/7/22 4:43 所屬群組:
已註冊使用者 等級: 13
HP : 0 / 321
![]() |
因為tcp tunnel不是在NAT上面開port。
而是利用tcp的特性而已。 所以跟NAT forward的意義不一樣。 NAT forward是 ssh NAT:port 但是TCP tunnel是ssh remote_ip:port 所以是用ssh作反向tunnel不需要NAT特別設定什麼。
2009/8/16 2:06
|
||||||||||
![]() |
回覆: 上班族ssh tunnel求生手冊 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員三級
![]() ![]() 註冊日期:
2005/7/22 4:43 所屬群組:
已註冊使用者 等級: 13
HP : 0 / 321
![]() |
Mozzenior 寫到: 其實範例3的地方,不在remote_ip裡面連自己的localhost:2222也沒辦法連線。所以他預設已經限定只接受localhost連線了。^^" 另外範例2的地方,想要listen localhost以外的ip也要加'-g'才可以。
2009/8/16 2:09
|
||||||||||
![]() |
您可以查看帖子.
您不可發帖.
您不可回覆.
您不可編輯自己的帖子.
您不可刪除自己的帖子.
您不可發起投票調查.
您不可在投票調查中投票.
您不可上傳附件.
您不可不經審核直接發帖.