OpenVPN Connect on iOS / Android

OpenVPN 在上個月推出了 OpenVPN Connect for iOS ,連同去年推出的 OpenVPN Connect for Android,算是把產品線補齊了。今天趁過年假期,裝起來測試了一下。

先來張截圖:

設定時要注意的地方:

  • 如果要用帳號密碼認證,Client 的 .ovpn 設定檔除了要加上auth-user-pass以外,還要另外加一行:setenv CLIENT_CERT 0
  • root / intermediate CA、憑證與 Private Key 可以使用以下格式直接放在 .ovpn 檔案內:(Private Key 建議放在 Keychain 內,或是設定 client-cert-not-required

    <ca>
    —–BEGIN CERTIFICATE—–
    DlDCC…
    LMlZ=
    —–END CERTIFICATE—–
    </ca>
    <cert>

    </cert>
    <key>

    </key>

  • 先讀完 FAQ 再進行設定會省下很多時間

優點:

  • 免費的 SSL VPN(Server 是 GPL License)
  • 支援帳號密碼認證,也支援 2 Factor Authentication
  • 可以走 TCP 也可以走 UDP
  • 可以吃 Android / iOS 內建的 Keychain
  • 支援 IPv6

缺點:

  • 需要手動匯入 .ovpn 設定檔。Android 設備可以直接放到 SD Card 或是 Dropbox 裡面,但是 iOS 設備需要用 iTunes 或是 Mail App 匯入(不能用 Gmail App,一定得用內建 Mail App),麻煩不少。
  • Android 版本在通知欄會出現兩個 ICON

利用 Percona Playback warm-up MySQL 資料庫…

Percona Playback 是一套可以將事先記錄下來的 SQL Query Log 在指定的 MySQL Server 上重作一次的工具,目前最新的版本是 0.5,支援讀取 slow query log 或是 tcpdump capture file。Percona 標榜可以完全按照 Query Log 的 Pattern (包含 thread concurrency,query 所花的時間等等)來重作一次 Query,不過測試的結果還是有點落差。

首先先在 Production 的 Server 上面紀錄 Query Log。因為 Percona Playback 0.5 的 Slow Query Reader 是爛的(bug 1035217),所以只能用 tcpdump:
tcpdump -w log.dump dst port 3306 and dst ip 192.168.1.1

記錄到足夠長度的 log 之後,把 log 放到要測試的 MySQL 機器上,開始執行 percona playback。要注意的是,所有的 Log (包含 UPDATE, DELETE, INSERT 等等會修改資料庫內容的 Query)都會被執行,如果要在 Slave 上跑的話,記得要事先濾掉,才不會造成 Master Slave 不同步的狀況。
percona-playback --input-plugin=tcpdump --tcpdump-filelog.dump --tcpdump-mode=fast --mysql-host=127.0.0.1 --mysql-username=root --mysql-schema=mydb

官方文件是使用 --tcpdump-mode=accurate,速度慢很多,使用 --tcpdump-mode=fast 會快不少。

中國「春運」造成 GitHub 負載升高

中國的「春運」(台灣的春節返鄉)訂票系統 12306 在農曆春節開放訂票時常常會癱瘓無法使用。於是有個傢伙就寫了一個 Browser Plugin 12306.cn 訂票助手 來解決這件事。不過因為他把檢查更新的機制放在 GitHub 的 raw.github.com 上,所以就….XDDD

GitHub 的人開的 Issue 下面一堆中國網友在討論萬一 GFW 把 GitHub 牆了怎麼辦 XDDD

Update: GitHub 果然被牆了

Aaron Swartz 自殺…

這幾天蠻大的一個新聞,連國內媒體都第一時間報導了。(聯合報中央社

Aaron Swartz 除了是 RSS 1.0 規格的共同作者之外,也是 Reddit 的共同創辦人及 Markdown的共同作者之一。

2011 年,Aaron 來因為大量下載了 400 萬篇 JSTOR 的學術期刊而被起訴。可能是造成他憂鬱症與自殺的原因。關於學術期刊這個詭異的 ecosystem,可以讀讀 學者的智慧, 期刊的財產, 圖書館的業績…或是負擔? 這篇文章。

Nexus 7 的 NFC

如果可以讀悠遊卡內的詳細紀錄,對於記帳來說應該更方便。

一直知道 Nexus 7 有 NFC 功能,不過除了內建的 Google Wallet 之外,一直都不知道有什麼應用,直到有天看到了 NFC Tag Reader 這個 App,就到處去找 Tag 來掃。

悠遊卡是有加密過的,所以什麼都讀不出來:

據說北捷的單程票 Token 沒加密,不過我並沒有親自試過。

日本的 Suica 卡倒是可以讀出來,用 Suica Reader 還可以列出詳細資訊:

晶片護照也有加密,不過只要輸入個人基本資料就能解密:

高捷卡也有加密,所以也是什麼都讀不出來。
其他國家的卡就有待之後去旅遊的時候再來收集測試了 🙂

Airplane Mode for Mac OSX

Macbook Pro 不像其他的筆記型電腦一樣,有硬體的無線控制開關,如果在飛機上要使用電腦的話,得手動把藍芽與 Wi-Fi 關掉。之前有個小程式 Airplane Settings 很好用,不過被 Mac App Store 下架了,所以就動手寫了一個。

執行之後畫面長成這樣:

程式碼以 MIT License 放在 GitHub,有建議歡迎在 GitHub 開 Issue 討論。

FreeBSD 系統的 auditd

上個月的 17 日,FreeBSD.org cluster 中的兩台機器被入侵,起因是擁有這兩台機器 root 權限的人的 ssh private key 外洩,導致這兩台主機被不明人士登入。由於這兩台主機上有開啟 Audit 機制,因此管理員發現了 root 有異常存取 file system 的行為。今天剛好有空,於是也來幫主機加上 audit 的機制。

步驟非常簡單,只要根據 handbook 重新編譯 Kernel,設定 /etc/security 下的設定檔,再把 auditd 跑起來就可以了。不過一開始跑起來之後並沒有紀錄 Log,花了一點時間找資料,才發現原來是 auditd 跑起來之後,必須要重新登入,才會開始紀錄。

auditd 產生的紀錄大概長這樣:

header,84,11,sudo(1),0,Tue Dec 25 00:00:38 2012, + 49 msec
subject_ex,jnlin,root,wheel,jnlin,1001,93339,93339,42554,192.168.128.100
exec arg,ls,-al
return,success,0
trailer,84

參考資料:FreeBSD 這次的入侵事件