Twitterで不審なログインをするとスパム判定されてアカウントのロックがかかり電話番号認証が求められたりする.

Twitterご利用のアカウント(@hogehoge)に不審なログイン操作がありました(20xx年x月xx日)

TwitterはIPを覚えている. 具体的にはcreation_ipといって作成したIP, 過去3ヶ月に渡るログイン記録, そしてAPIによるアクセス記録. IPには設置されている国が紐付けれられているので頻繁に異なるエリアでログインをすると怪しまれる.

これを回避するための常套手段としてプロキシサーバを契約してプロキシ経由でアクセスする方法, またはVPNサービスを利用してTwitterにアクセスする方法がある. しかし月額いくらというようにお金がかかるのでこれを節約したい.

いろいろ実験してみると, TwitterはログインのIPはチェックしているが一度セッションを貼ってしまえばそのセッション経由でアクセスする限りアクセス元をチェックしていない. ということは作成時IPとセッションをちゃんと管理すればいいということになる.

そうすると常にプロキシサーバを借りている必要はなく, ログインのためのセッションを貼るために一時的なプロキシサーバがほしい.

WimaxのIP変更はタイミングが読みづらい

はじめはWimaxをつかって一時的なIPを手に入れていた. Wimaxは固定のグローバルIPが割り当てられるわけではない. 端末をOff/Onするか, Web管理画面からプロファイルを更新 という方法で変更することができる.

しかしこの変更のタイミングはその行為を行った直後ではなく, どうやらそれによってほかのユーザにIPが割り当てられたタイミングで変わるようなのでタイミングが不規則.

グローバルIPを自作の監視スクリプトで調査したのだが, すぐ変わる場合もあれば10日経ってようやく変わる場合もあった.

Squidでプロキシサーバを自分で立ち上げる

クラウドサービスで仮想サーバをレンタルすると, 一時的なIPが割り当てて仮想サーバを破棄するタイミングでIPが変更される. これが使えそうだ. つまり自分でプロキシサーバを立てればよい. 昔, Squidというオープンソースでプロキシサーバを立てた経験があるのでそれでやってみたらかんたんにプロキシサーバは構築できた(詳細略).

ref. SquidをつかってWindows環境化でプロキシサーバを立ててみる | Futurismo

昔の記事なので 格安VPS(月額349円)のWebARENA Indigoを契約して利用する方法 | ジコログ の記事がおすすめ. わたしもindigoサーバを契約してプロキシサーバを実際に構築した. ある程度知識があればプロキシサーバレンタルよりこっちのほうが安上がり.

Google Compute Engineにプロキシサーバ 構築

月額の常駐型サーバを契約するのもよいが, さらに安上がりにかつ自由にプロキシサーバを立てるエリアを変更するは Google Compute Engine をつかうのがいい.

GCEでサーバを立ち上げるとlocationにおける空いているIPが動的に割り当てられる. そしてその上でSquidを経由させることでGoogleのIPを経由させることができる.

Google Compute Engineを停止するとIPは開放され, 再び立ち上げると別のIPが割り当てられる. しかしどうもなんども立ち上げ直しても1日に2つのIPが割り当てられてそれを使いまわす仕様のよう. そしてそれは別の日になると別の2つのIPとなる.

GCE マシンイメージを使ってプロキシサーバをコピー

1日に何度も別のIPをつかうならば立ち上げたSquidサーバを含むVMインスタンスから Machine images の機能を利用することでイメージを作成することが出来, そのイメージを元に別のVMインスタンスをたちあげることで実現できる.

さらに嬉しいのは, 立ち上げる先のlocationを変更することができる. つまり一つのSquidイメージがあればそれをほかのlocationにかんたんに移すこともできる. これをやるならばDockerの設定を書くのがスマートだが, とりあえずごにょごにょいじって立ち上げたSquid環境をコピーしたければこれで十分.

個人的な思い出は, GCPの前の世代でvmwareやvirtualboxをつかっていたころはローカルでイメージを保持するのだがこれがとても容量が大きすぎて苦労した.

ノートパソコン内にバックアップを取ろうものならあっという間に容量を食う. また開発環境をあるVM内で作成してそれをコピーすることでチーム開発で環境を共有するにしてもファイルサーバにVMをおくとダウンロードに時間がかかる.

そんなこんなな苦労をクラウドでできるのは素晴らしい時代だ.

Firefox コンテナ技術をつかってクッキー管理

最後にTwitterにログインするときはFirefoxコンテナをつかえばいい. これはコンテナと呼ばれる単位でクッキーを保持してくれるfirefoxの機能でそれを活用するためのFirefoxプラグインと合わせてつかう.

ref. Twitterが凍結しないFirefoxコンテナノウハウとは

クッキー管理ができていればなんでもいいのだがブラウザからアクセスするならこれが楽.

スパムスクレイピング悪用厳禁!

大抵のサービスはIPで悪意のあるアクセスを判断しているので一時的なプロキシサーバを経由させたいと思う人はこのノウハウに需要があるのではとおもって記事を書いた.

まあお金がある人はいくらでもIPを借りたりVPNサービスを経由させればいいだけの話なので需要があるかはわからない.

しかしこのノウハウを使いたい人はたいてい悪者かもしれない. 悪用厳禁!と声をおおきく注意喚起しておく.