Home » 2014 » March

架設 Tor 的 Hidden Service

會想要寫這篇是因為前陣子警察施暴影片YouTube 上一直被下架。

Tor 最常用到的是「隱藏使用者」的功能:使用者從 Internet 連到 Tor network 的進入節點 (entry node) 後,透過全世界的 Tor 節點加密傳輸,最後在出口節點 (exit node) 再連回 Internet 上的服務,藉此隱匿行蹤。

另外一個比較少被提到的用途是「架站」,也就是 Hidden Service。

在傳統的 Internet 架構上,知道 IP address 就容易發現機器所在地,要抄台或是在 ISP 端直接 ban IP address 也就相對容易。而 Hidden Service 就是想把服務藏到 Tor network 裡,讓外部不知道是哪一台伺服器,達成無法審查內容的目標。

官方的文件是「Configuring Hidden Services for Tor」這份。而這邊以 Ubuntu 12.04 的環境為例。

首先是先架設 web server,可以是 apache 或是 nginx,這不是本篇文章的重點 :p

然後在 /etc/tor/torrc 裡面加上:

HiddenServiceDir /var/lib/tor/hidden_service/
HiddenServicePort 80 127.0.0.1:80

表示 hidden service 的相關資料會放在 /var/lib/tor/hidden_service/ 下,並且提供 port 80 的服務 (轉到本機 127.0.0.1 的 port 80)。

接下來重跑 tor:

service tor restart

然後看 hostname 是什麼:

cat /var/lib/tor/hidden_service/hostname

會看到一個 *.onion 格式的 hostname,像我架設的機器就會看到:

btyz5lgqirxipopo.onion

*.onion 的網址必須透過 Tor 的機制連,對一般人會比較麻煩。所以這邊要教的是透過 proxy 提供服務:

這樣就變得有很多用途...

用 php-cs-fixer 自動將程式碼以 PSR-2 規則修正

PHP Coding Standards Fixer 是在不破壞相容性的情況下,將 PHP 的程式碼往 PSR-2 的方向修正。

安裝的方式很簡單,直接抓下來:

wget http://cs.sensiolabs.org/get/php-cs-fixer.phar -O php-cs-fixer
chmod a+x php-cs-fixer

看是要丟到 /usr/local/bin 下,還是丟到自己的目錄裡都可以。

裝完後就玩:

php-cs-fixer fix foo.php

如果 PHP 程式碼有進版本控制系統,在執行後就可以用 diff 看看改了什麼。

也可以對整個目錄修正:

php-cs-fixer fix foo/

預設是 PSR-2 以及一些作者自訂的規則,如果要強制只用 PSR-2 的話可以用 --level=psr2

By default, all PSR-2 fixers and some additional ones are run.

有一些要注意的地方是,php-cs-fixer 因為是在不破壞相容性的前提下修正的,所以有些 method naming 的規則就無法修。不過比起手動修正 legacy code,可以省下不少時間...

NTIA 決定將 Root Domain 的管理權責轉移到 ICANN

NTIA (National Telecommunications and Information Administration) 決定將 root domain 管理權責移交出來:「NTIA Announces Intent to Transition Key Internet Domain Name Functions」,關於移交的 Q&A 則可以在「IANA Functions and Related Root Zone Management Transition Questions and Answers」這篇讀到。

目前是 NTIA 放出意願,請 ICANN 提出轉移計畫:

As the first step, NTIA is asking the Internet Corporation for Assigned Names and Numbers (ICANN) to convene global stakeholders to develop a proposal to transition the current role played by NTIA in the coordination of the Internet’s domain name system (DNS).

不知道要花多久時間,可能是用幾年的時間轉移。雖然是找 stakeholders,但看起來應該是會由 ICANN 掌握...

瀏覽器裡取得 Local IP 位置的方式

whatismybrowser.com 上看到 local IP address 時愣了一下,查了查資料後發現是 WebRTC 的功能:「Local IP discovery with HTML5 WebRTC: Security and privacy risk?」。

如果知道內網的 IP 後,再加上一堆問題設備,hmmm... 能做的事情好多啊 @_@

在「Can I use WebRTC Peer-to-peer connections?」可以看到 Google ChromeFirefox 都支援了...

看了看 chrome://flags 似乎沒解... 來想看看有沒有什麼其他反制的辦法 @_@

Firefox 可以參考「Where can I disable WebRTC and PeerConnection?」這邊提供的方法試看看,不過我沒測過,不知道到底有沒有效...

AWS 大降價

在「AWS Price Reduction #42 - EC2, S3, RDS, ElastiCache, and Elastic MapReduce」這邊看到 AWS 降價的消息,明顯是被 Google 壓著推出來 :p

降價的範圍包括 EC2 instance、EC2 的 reserved instance、S3,以及對應的 RDSElastiCacheElastic MapReduce

前幾天買了兩台 us-west-2 c1.xlarge 的三年 RI,結果從 USD$2804 降到 USD$2524,現虧 USD$280 (XDDD),而每小時單價從 USD$0.124 降到 USD$0.112,也就 9.7% 左右。

另外 S3 的部份則是直接從 USD$0.085/GB 一次殺到 USD$0.03/GB 了,隨著使用量的增加的 discount 差不多都消失了。

等下再來研究好了,計畫永遠趕不上變化...

ChinaList 停止維護

在「Adblock Plus 將會把預設的 ChinaList 改為 EasyList China」提到 Adblock Plus 將預設的 ChinaList 改為 Easylist China,過幾天後看到 ChinaList 決定停止維護:

在这里很遗憾地通知所有 ChinaList 项目的用户,从 2014/03/26 起,本项目不再维护,为了抗议 Adblock Plus 在没有 ChinaList 授权重定向我们的列表且多次抗议无效下做的决定。

其實就是 Adblock Plus 想賺錢,但被 ChinaList 擋住:

要想推白名单,列表肯定要抓在自己手中才行,反正我多次说过只要我还负责 ChinaList,就不会允许的。

Twitter 自動轉貼 Plurk 的程式

Twitter 拿掉 RSS 支援後原來「支援新版 Plurk API (OAuth Core 1.0a) 的 Twitter To Plurk Script」這篇提到的程式就不會動了,剛好現在在東京慢慢蹭,就花點時間改寫了。

程式一樣在 Gistgslin/982195 上。

由於不想要接 Twitter API,再加上自己的帳號是公開的,所以這邊就用 Web::Query 去爬 HTML 然後生出對應的 body 貼到 Plurk 上。

不過還是有不完美的地方,像是目前讀取的順序是顛倒的,大多數的情況下應該還好,不過有關連性的 tweet 就會看起來怪怪的 :o

Adblock Plus 將會把預設的 ChinaList 改為 EasyList China

在「Switching default blocking lists for Chinese users」這邊看到 Adblock Plus 的官方公告,新安裝的預設值將會從 ChinaList 改變成 Easylist China

依照官方的說法:

To make these improvements, we employed three people as part-time authors.

天下沒有白吃的午餐,加上這幾年 Adblock Plus 的「妥協」太多,接下來應該沒事去看一下 ChinaList 的討論,到底兩個 blocklist 的差異在哪裡。

Archives