[筆記] ssh Tunnel 運用在 Linux and Windows FireFox

今天在看 gslin 部落格的一篇文章:穿越公司的 FireWall,看完之後我覺得相當不錯,可以解決我想要的 forwarding 的問題,以及繞過防火牆的機制,剛剛自己測試一下,發現還蠻好用的,其實利用這個方式還可以遠端管理很多伺服器,如:Mysql 伺服器…. SSH Tunnel必須建立於一個SSH連線上,它可以讓我們穿透防火牆,建立一個安全加密的傳輸。 例如:我們現在要透過 A主機去對 smtp 或者是 http 做連接的動作,那我們就必須先建立一個到A主機的SSH連線,然後在透過它建立 Tunnel 我們會使用到的putty和plink都可以在 這裡下載, 不過我更喜歡pietty,由piaip長輩製作。 底下是實際的例子: 實戰一: 1.假設我們現在要透過主機A利用 ftp 的方式連到 中正大學檔案伺服器,那我們就利用下面辦法 首先我們先開啟 pietty,然後連到主機A SSH_01 2. 輸入登入的帳號密碼 SSH_02 3.登入之後,在工具列上的這個putty視窗按右鍵選擇Change Settings,然後選 Tunnel SSH_03 4. 填入如下: 第一個 souce ports 就是你 local 端要連接的 ports,destinations 就是你要填你要前往的地方那這部份我們就填 ftp.ccu.edu.tw:21 後面接 ports SSH_04 然後再按旁邊的 Add 就好了 SSH_05 5.然後最後按下面的 apply,就可以使用了喔 實戰二:使用plink從win32平台至某主機A, 並透過主機A連線至主機B的port 80 (httpd) plink是putty作者提供,在win32下的命令列程式, 可以讓我們打一行指令就可以進行SSH Tunnel連線。
1. 把plink放到windows資料夾裡面(為了方便) 2. 在命令列字元打:plink -ssh -L 9000:hostB.narahuang.com:80 user@hostA.narahuang.com,如果 ssh Port 不是22,那就要加-p參數 3. 在輸入user在hostA的密碼之後,就進到hostA的Shell,這時候通到hostB的SSH Tunnel就完成了。
使用瀏覽器連線 http://localhost:9000/ ,若是可以連線到主機B就是成功了。 但是要注意的是,這段連線中安全的部分只有從local到hostA,從hostA到hostB這段是沒有加密的。 實戰三:從Unix-like的Shell開啟SSH Tunnel至hostB的POP3 port $ssh -N -f -L 9000:hostB.narahuang.com:21 user@hostB.narahuang.com -N 參數的用途是”不建立shell” -f 參數的用途是”連線後執行於背景” 輸入完密碼後即會回到原來的shell,建立Tunnel之後的操作就跟前面差不多了。 另外可以在 FireFox 裡面可以設定走 ssh tunnel 出去,設定方式如下: 先設定 SSH 部份 ssh_tunnel_03 (by appleboy46tream) Source 打自己想要的 port,destination 不要打,然後下面勾選 dynamic FireFox 部份: ssh_tunnel_01 (by appleboy46) ssh_tunnel_02 (by appleboy46) 打入 localhost port 打你剛剛打的,然後走 socks v5 參考資料: gslin長輩的 Firefox over SSH Tunnel gslin長輩的 穿越公司的Firewall sth-SSH Tunnel FreeBSD Handbook – OpenSSH SSH Tunnel