星期日, 十二月 30, 2007

sshfs

sshfs (SSH Filesystem) 這個使用方式更妙。可以透過 ssh 的方式掛載特定的目錄。比如說研究室有個伺服器專門放些分享檔案。原本是用 Samba 的方式,當然只要有開 ssh 就可以使用 sshfs,比起 Samba 更方便。安裝 sshfs 後,執行以下指令:

sshfs -omodules=iconv,from_code=CP950 yurenju@140.130.120.111:/samba/ samba/


馬上就可以掛載原本 samba 的目錄,並且透過 CP950 的編碼轉換成 UTF-8。而我們研究室的 檔案伺服器原本只開放給內網使用,不過只要配和 SSH VPN 加上 sshfs,不論到哪個地方,都可以輕易的存取檔案伺服器的資源啦!


Read more!

SSH VPN

這幾天都在研究 SSH (Secure Shell) 神奇的妙用。其中一個就是 ssh 在 4.3 以後已經內建支援 VPN (Virtual Private Network),只要配合多數 Linux 都支援的 iptables 就可以使用了。我幹嘛用 SSH VPN 勒?如果有筆記型電腦的人一定常在外面無線上網,但是沒有加密的無線網路可是很危險的阿,想像一下每個有無線網路的咖啡館都有個佈告欄,上面公告著每個人使用無線網路的帳號密碼,包括網站、BBS、電子郵件的。而使用 SSH VPN 可以將自己的訊息先用 SSH 加密後,再透過遠端的伺服器傳送,雖然這樣會拖慢速度,不過使用起來還是安心點囉。

注意,以下都必須使用 root 權限。

以下面這個例子來說,我在研究室有台 SSH Server S (假設 IP 是 140.130.120.110),而我的筆記型電腦 Laptop C (IP 不固定)。首先要有 tun 這個 Tunnel 驅動程式。請在 S, C 中都下這個指令:

modprobe tun
接下來所有的動作都在筆記型電腦 C 上執行。如果要開機的時候自動載入驅動程式,請將 tun 加入 /etc/modules 裏面。接下來要使用 SSH VPN 要有以下資訊是在每個咖啡館都不一樣的:
  1. 你所處無線網路的網路與網路遮罩 (Network/netmask) - $NETWORK
  2. 你所處無線網路的閘道器 (Gateway) - $GW
現在我們要用 ssh 開啟兩端 tun0 介面的 VPN 網路:
ssh -w 0:0 -f 140.130.120.110 "ifconfig tun0 10.0.2.1 netmask 255.255.255.252 pointopoint 10.0.2.2 ;echo 1 > /proc/sys/net/ipv4/ip_forward ;/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE ;route add -net $NETWORK gw 10.0.2.2 dev tun0"
下面介紹一下參數

-w 0:0
開啟 tunnel,第一個是本機 C 的 tun 編號,第二個是伺服器 S 的 tun 編號。如果改成 1:2 就代表 C 用的 VPN 介面是 tun1,S 用的 VPN 介面是 tun2。

-f "command"
登入 ssh 以後在遠端主機 S 要執行的命令。

ifconfig tun0 10.0.2.1 netmask 255.255.255.252 pointopoint 10.0.2.2
設定伺服器 S tun0 介面的 IP 位址、網路遮罩以及點對點另一端 C 的 IP 位址

echo 1 > /proc/sys/net/ipv4/ip_forward
開啟 IP 轉送的功能

/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
設定 NAT。注意這只是簡單的設定,為了安全起見請 K 一下網路上的 iptables 資料,很充足。

route add -net $NETWORK gw 10.0.2.2 dev tun0
加入路由資訊,只要傳送給 C 所處網路的資訊都由 tun0 介面的 10.0.2.2 去傳送

上面那個指令就可以把伺服器 S 設定完成,接下來要設定筆記型電腦 C。請執行以下指令:
ifconfig tun0 10.0.2.2 netmask 255.255.255.252 pointopoint 10.0.2.1
(設定 C 的 tun0 介面)

route add -net 140.130.120.0/24 gw 10.0.2.1 dev tun0
(加入路由資訊)

route add 140.130.120.110 gw $GW
(這蠻重要的,傳送給 140.130.120.110 的封包經由 $GW 傳送)

route add default gw 10.0.2.1 tun0
(將預設 gateway 改成 tun0 的 10.0.2.1)

route del default gw $GW
(刪除原本的 gateway)
這樣就可以傳送了。你可以上 My IP 來確定一下自己的 IP。


Read more!

星期六, 十二月 29, 2007

ssh vpn 之一發不可收拾

今天在咖啡館心血來潮,想把 ssh vpn tunnel 搞定,無奈不得要領常常搞到 ssh 斷線。後來回到研究室後,終於是把 SSH VPN 搞定了。心滿意足的感到自己在無線網路中終於不受監控,想說來寫的簡單的 VPN GUI 好了。沒事幹嘛把 SSH VPN 搞得這麼複雜…。

那怎麼拿 interface list 勒?回想一下 GNOME 有哪些地方拿到網路列表…想起了無線網路偵測的 nm-applet。後來想說應該看 network-admin,接著發現這是 gnome-system-tools 的工具,再追下去,原來是 call liboobs 這個函式庫。

追到這裡,一天就過了…,浪費了一天都沒幹到正經事,!*&#^*&@!^%$…。


Read more!

星期日, 十二月 23, 2007

KaLUG Eee PC 簡報

這次人真的來超多的,沒想到換到風尚咖啡館包廂還是爆滿了。這次認識的人頗多,而且又見識到曼特寧老師帶來的新玩具 AW-300,還蠻值回票價的。

這次簡報在


Read more!

星期日, 十二月 16, 2007

lifelog

很有趣的概念,先記錄起來 :-)

火車時刻表與 lifelog


Read more!

Google Profile

這幾天 Google Reader 新增閱讀好友分享內容後,有另外一個小服務也浮現出來:Google Profile。看起來他是可以用在任何 Google 的服務上,用來呈獻自己的一些基本資料用的。看起來沒什麼,不過要用在跨越很多服務的時候還是有點小小的用處啦。

不過要注意的一點就是上面的內容全部都是公開的就是了,可別忘了。


Read more!