会社バレせずにTwitterする方法を考えてみた(もう不要な情報)


最近のWho to followについてツイッターに問い合わせた」という記事によると、「おすすめユーザー」で同一グローバルIPアドレスからアクセスしている人がオススメされてしまうという件はTwitter社によるテストであり、既に行われていない(オススメされなくなってる)そうです。
なので、この記事は要らん子になってしまいましたが、まぁ残しておきます。

Twitter、同じIPアドレスからアクセスすると「おすすめユーザー」に表示する機能を追加? という記事がありまして、どうやら、Twitterの「おすすめユーザー」には、同一のIPアドレスでアクセスしている人が表示されるようになったそうです。
つまり、会社のパソコンや回線を使ってコッソリTweetしてた方は、職場の同僚に発見される(職場バレ)する危険性が飛躍的に高まってしまったようなのです。

私は割と堂々とTwitterしてるので別に良いんですが、知り合い数名が職場バレは嫌だと言っていたので、職場からでも、こっそりTweetする方法を考えてみました。
絵にすると、こんな感じです。

aws-twitter-outline.png

Amazon EC2にリバースプロキシを設置して、TwitterへのアクセスはAmazon EC2を経由するようにしてやれば良いのです。
今回はPoundというプロキシサーバを使ってTwitterへのアクセスをAmazon EC2上のマシンに代行させることにします。

続き↓

ちょいとメンドクサイので、Amazon Web Serviceに申し込んでAmazon EC2のマシンを用意するところまでは端折ります。
とか言いつつ、ちょっとだけスクリーンショットは撮ったので、AWSわかんねーって人は参考にしてください。

aws-twitter-01 aws-twitter-02

aws-twitter-03 aws-twitter-04

aws-twitter-05 aws-twitter-06

aws-twitter-07

まず、用意したEC2のインスタンスには、

$ slogin -i 鍵ファイル.pem ec2-user@ec2-xxx-xxx-xxx-xxx.ap-northeast-1.compute.amazonaws.com

といった具合にSSHでログインします。
要は、EC2のインスタンスを新規に用意する際に用いた鍵を使って、ec2-userとしてログインします。
このとき、鍵ファイルのパーミションは400といった他人に読まれないものでなければエラーが出ます。

AWSに用意したインスタンス(マシン)には、Poundをビルドするために必要なコンパイラやライブラリがインストールされていません。
まず、gcc, make, patch, openssl-develをインストールしましょう。

$ sudo su -
# yum install gcc
# yum install make
# yum install openssl-devel
# yum install patch

これらをインストールし終えたら、Poundのソースコードをダウンロードしてきます。

# wget http://www.apsis.ch/pound/Pound-2.5.tgz
# tar xvzf Pound-2.5.tgz

Pound 2.5は、OpenSSL 1.0のライブラリを使っているとコンパイルが通りませんでした。
このため、Poundのソースコードにpatchを当てます。

# wget http://www.apsis.ch/pound/pound_list/archive/2010/2010-02/1266065082000/1266065107756.octet-stream/download
# mv download ../pound-2.5-openssl.patch
# cd Pound-2.5
# patch > ../pound-2.5-openssl.patch

パッチを当て終えたら、ビルドします。手順は普通に

# ./configure
# make
# make install

これでPoundのインストールはおしまいです。
次にPoundの設定ファイルを書きます。

# groupadd www
# useradd -g www www
# vi /usr/local/etc/pound.cfg

で、Poundを動かすユーザを追加し、configを書いてやりましょう。

User        "www"
Group       "www"
LogLevel    3
Alive       60
Daemon      1
LogFacility local1

ListenHTTP
    Address EC2のPrivate_IP_Address
    Port    80

Service
    HeadRequire "Host: .*twitter.com.*"
    BackEnd
        Address 199.59.148.87
        Port    80
        TimeOut 30
    End
End

End

ここまでくれば、

# pound

で、起動し、

# killall pound

で、終了させることができます。

次にご自分のMacからTwitterへのアクセスを、EC2に向けるようにします。
MacのTerminalで

$ sudo vi /etc/hosts

として、hostsファイルの最後の行当たりに

xxx.xxx.xxx.xxx api.twitter.com

といった具合に、api.twitter.comを用意したAmazon EC2のインスタンスに向けてやります。

xxxの部分に入るIPアドレスは、EC2の”Public DNS:”の値を参照します。
例えば、ec2-192-168-0-60.ap-northeast-1.compute.amazonaws.comであれば、192.168.0.60となります。

aws-twitter-10

IPアドレスなどは、AWS Management Consoleから拾ってくることもできます。

できたら、YorufukurouなどのTwitterクライアントを立ち上げましょう。
AWSのほうの /var/log/messages を参照すると、EC2に用意したPoundを経由してアクセスしている様子が分かります。

May 18 07:54:49 ip-10-xxx-xxx-xxx pound: api.twitter.com xxx.xxx.xxx.xxx - - [18/May/2011:07:54:46 +0000] "GET /1/ytsuboi/lists/reading/statuses.json?per_page=80 HTTP/1.1" 200 25686 "" "YoruFukurou"

こんな感じでログが出てくれば成功です。

現状、HTTPのトラフィックしか経由してくれませんが、これでTweetしても会社バレしないような気がします。
Amazon EC2はトラフィック量やマシンを立ち上げている時間に応じてコストがかかりますし、Linuxにサーバをコンパイルしてインストールする手順なので面倒かもしれませんが、それでも職場バレしたくない人はどうぞ。
あ、それから、この設定だと誰でもアクセスできちゃいますので、Security Groupを編集して、自分の会社の回線からしかアクセスできないようにするのをお忘れ無く!