Archives

gravatar

FON AP: Always Turn On SSH

在 /www/cgi-bin/webif/upgrade.sh 中,有這樣的步驟,會把原先設定的一些資料保存下來,不會因為 FON AP 使用 web 管理界面的 upgrade 把整個 NVRAM 給 flash 掉而消失。而設定要怎麼保存?

tar czf /tmp/config.tar.gz /etc/config/
mtd write /tmp/config.tar.gz config > /dev/null

簡單的說就是把 /etc/config 整個 tar 起來後,透過 mtd 把設定寫入,之後 upgrade 完成後,應該也是照反向方法把設定取回。所以先前設定的像是 public/private SSID、WPA 密碼、network 設定等等,都會保存著。所以我想透過 /etc/config 裡面的修改,嘗試看看讓原本修改 /etc/init.d/dropbear 和 /etc/firewall.user 的方式,變成不需要更動,而依然可以保有 SSH login 功能。原理在於 /etc/config/openports 這個 script,是提供 port forwarding 的設定,以下是我嘗試的修改:

#!/bin/sh
. /etc/functions.sh
iptables -t nat -A prerouting_rule -i $1 -p tcp –dport 22 -j ACCEPT
iptables -A input_rule -i $1 -p tcp –dport 22 -j ACCEPT
[ ! -f /var/run/dropbear.pid ] && /usr/sbin/dropbear
# 在 web 上設定的 port forwarding 會被 append 在後面
open_port $1 22 192.168.10.10 22 udp
open_port $1 22 192.168.10.10 22 tcp

/etc/config/openports 是在啟動時候,由 /etc/init.d/S45firewall 所執行,啟動的命令列大概是 /etc/config/openports eth0。所以 iptables 會把 eth0 的 port 22 打開,同時如果發現 /var/run/dropbear.pid 不存在,則去執行 dropbear 來啟動 SSH daemon。

註:單純理論上測試,還沒真正完全 upgrade 0.7.1r2 ROM image 試驗過。

gravatar

啟用 La Fonera 的 SSH

參考打開0.7.1r1的SSH,由於 0.7.1.1 (0.7.1r1) 的 Firmware 在 Router 網頁管理界面上有漏洞,因此可以透過 HTML Form 的方式把指令 submit 給 AP 上的 CGI 執行,依序先讓 iptables 允許 port 22 的連線,接著把 SSH (dropbear) deamon 啟動。接著就可以透過 ssh 連接到 FON 然後登入。
但是,我收到的 AP firmware 是 0.7.1.2 (0.7.1r2) 版本,這個漏洞已經被修掉了,所以沒辦法如法炮製。但是看到不少論壇或是 BBS 有很多人說無法由 0.7.1.2 downgrade 到 0.7.1.1,但是我試了卻沒有問題,可以回到 0.7.1.1 的 firmware。首先下載 0.7.1.1 的 firmware,官方網站已經不提供這個版本下載,但是可以透過 google search 找到例如這個網站,裡面有不少版本的 firmwares。下載之後,看要把分享器的 ADSL 關閉,還是 HUB 的 WAN 拔掉,總之讓他無法連到 internet,然後拔掉電源重新啟動 FON AP(註1)。
然後等一段時間讓 FON AP 開機後,透過無線網路連到任何網站。因為沒有 internet 連線,所以 FON 會顯示連線問題的頁面,接著就到 Advanced 的 Firmware Upgrade 去把 0.7.1.1 的韌體更新上去。更新後他會自己重新開機,同時也不要讓他可以連到 internet。同樣一段時間後,也是可以透過無線連接他的 Router 管理界面。接著就是做下面的事情,允許 port 22 的連線,


<html>
<head>
</head>
<body>
<center>
<form method=”post” action=”http://192.168.10.1/cgi-bin/webif/connection.sh” enctype=”multipart/form-data”>
<input name=”username” value=”$(/usr/sbin/iptables -I INPUT 1 -p tcp –dport 22 -j ACCEPT)” size=”68″ >
<input type=”submit” name=”submit” value=”Submit” onClick=”{this.form.wifimode.value=’”;’ + this.form.wifimode.value +’;”‘}” />
</form>
</body>
</html>

啟動 SSH daemon (dropbear)


<html>
<head>
</head>
<body>
<center>
<form method=”post” action=”http://192.168.10.1/cgi-bin/webif/connection.sh” enctype=”multipart/form-data”>
<input name=”username” value=”$(/etc/init.d/dropbear)” size=”68″ >
<input type=”submit” name=”submit” value=”Submit” onClick=”{this.form.wifimode.value=’”;’ + this.form.wifimode.value +’;”‘}” />
</form>
</body>
</html>

分別存成兩個 html 檔案後,以 browser 開啟後按 Submit 送出。完成之後,就可以開啟 Terminal 執行

ssh root@192.168.10.1

接著就會出現登入提示,打入在 Router Web 管理界面設定的密碼後,就可以登入了。
Fonera CLI
同樣,依照前面提的文章,就可以把預設開啟 port 22 和啟動 SSH daemon (dropbear),以後不管重新啟動都可以使用 SSH 登入 FON。接著把網路接回去或是讓 FON AP 連到 ADSL modem 或是重新設定網路,重新讓 FON AP 啟用 internet connection。

另外,更新 firmware 版本並不會影響這些設定,除非使用 web 界面的 Firmware Upgrade,那就會把整個 flash 內容更新掉,於是這些設定就掰掰了。FON AP 的 crontab 內部會於整點執行 /bin/thinclient。如果需要升級的話,他會透過 ssh 向 FON 核對版本資料,如果需要更新的話,會產生 /tmp/.thinclient,

cd /tmp
wget http://download.fon.com/firmware/update/0.7.1/1/upgrade.fon
/bin/fonverify /etc/public_fon_rsa_key.der /tmp/upgrade.fon
rm -f /tmp/.thinclient.sh
exit

而其中的 upgrade.fon 並不是 1.9MB fonera_0.7.1.2.fon 的 flash image,只有幾百 KB,應該是類似區域更新或是 diff 升級方式的檔案。所以不要透過 web 界面升級韌體,同樣也可以升級到 0.7.1r2,且一樣可以繼續使用 SSH 來進入 CLI 模式。

註1: 因為把 FON AP 的網路線拔掉,之後重新啟動無法啟動他的 WAN 界面,也就無法做以後的更新。

gravatar

Leopard version 9A343

聽說此版本的 Mac OS X 10.5 有不少視覺上的 improvement。Terminal.app 有 tab 的支援,而且可以在把 multiple window 的設定存在 workspace 中。另外一個主要的重點,

Apple has maintained that it does not plan to ship Leopard until sometime later this spring

看來還有得等呀呀呀呀….

gravatar

iPhone 使用 Intel Xscale CPU

Intel exec claims iPhone runs on Xscale chip 提到了 Apple iPhone 使用的 CPU 是 Intel Xscale。雖然不是 PowerPC 或是 x86;因為在 handheld、mobile device 用這些 desktop,即使是 mobile edition 是不太可能;但是把 ARM 架構的 CPU 用在 mobile devices 上倒是蠻直接可以預期的。對於 developer 來說,就要以移植的方式來發展 Applications。但對於有 PowerPC 到 x86 transition 經驗的 Apple 來說,不同平台上的移植應該不成問題了,猜想也會提供類似 Xcode 這種 seamless 的環境吧。

gravatar

FON AP 的預設密碼

La Fonera 的無限網路 AP,預設在斷電之後,會把 Router 的管理界面登入密碼回復為 “admin”。如果要永久更改,就得上 FON 的網頁,登入個人帳號後,在「安裝您的FON無限網路基地台」(Configure your FON Social Router)裡面,把新密碼打進去更新後,從此 FON AP 的 admin 密碼就會預設成那個。

gravatar

Camino trunk with specific fallbacks

這個 Camino 版本是從每天的 mozilla source code CVS 所更新和編譯出來的 trunk 版本。最主要的地方是修改了 gecko 的 thebes 中的 ATSUI font fallbacks。直接使用 hard code 的「儷黑Pro」、「Apple LiGothic Medium」、和「STHeiti」來當作預設的字形 fallbacks。感覺起來比較好看多了,總比預設不知哪來的 fallback 順序使用的日文字形和產生出來的粗細不一字體好太多了,而且跟 Safari 比起來,也比較類似。
不過 trunk 版本總是有些風險和代價,目前的 gecko 1.9 似乎還有一些 layout 上的問題,cairo 針對 Quartz Surface 和 ATSUI 也還在實驗版本階段。自己使用上起來似乎也沒有 coredump 產生,但是有些排版和 Cocoa widgets 會消失倒是不知道原因。或許就是 trunk 上的問題。有些網頁上的顯示和使用反而更慢,例如使用 google spreadsheet,在上面打字的速度真是慢到暴,但是其他網頁的輸入感覺卻蠻正常的。有興趣的人可以試用看看,不過有些網頁上顯示的問題可能也不是短時間能解的,畢竟我只是小小修改 ATSUI font fallbacks 部份,頂多顯示的字形不太一樣而已,其他的可能也幫不了什麼忙。

gravatar

FON Wireless AP

FON 的 AP 使用起來感覺還蠻讚的,但是對於進階使用者來說,還是有不少美中不足的地方。例如斷電後 admin 的密碼就會被 reset 為 admin,還好用 FON_AP 的使用者無法登入 192.168.10.1 這個設定頁;並且 MyPlace 的 WPA/WPA2 密碼不會 reset,不然就好笑了(剛好今天台電停電檢修)。另外一般 wireless AP 常見的狀態記錄,在 FON AP 上也看不到,例如連線時間,有哪些使用者登入,有哪些使用者正在使用,完全都不知道。雖然可以在一段時間後上 FON website 的個人網頁內容去看,但是記錄的內容其實也是蠻簡單的。我相信這些資訊都是有的,只是並沒有提供輸出在管理的網頁上而已。

另外也是蠻好奇到底是不是會有人會去使用他人的 FON AP。原因在於台灣目前只有 Linus 或 Bill,但沒有非 FON AP 只購買上網點數的 Bill。因此除非對方也有購買 FON AP 成為 Linus 或 Bill,他才能登入別人的 FON AP。再來,使用 FON_AP 這個 public SSID 登入 FON 的帳號後使用 internet,他並沒有 WEP/WPA 的加密保護(在 KisMac 上看到的),因此感覺安全性上有不小的顧慮。因此大概即使街坊鄰居都有 FON AP 的訊號重疊,也不會隨便用他人的 FON AP 去登入來使用 non-encryption 的 wireless AP。

Tags: , wireless