どうも違法薬物販売のスパムっぽいのだけれど、
tor経由で身元を隠してるくせに、連絡先は日本国内の固定電話っぽい。
臨時用2ch串を普通の書き込みに使われる分にはいいのだけれど、
こういう事に使われるのは気分が悪い。
もちろん、中の人に嫌疑がかかるような事態も望ましくない。
放置するわけにもいかないので、警視庁の情報提供フォームにリモートホストを添えて報告しておいた。
それとは別に、tor経由の書き込みを拒否ってログに記録するように変更。
が、ゴミが混じったせいで1時間ちょっと臨時用2ch串が動作不能に陥る。
それと、隠語っぽいのをNGワードに突っ込んでおいた。
電話番号っぽいのを検出して弾くスクリプトも書いてみたけれど、
どの程度の影響が出るのか判断できないので、ひとまず保留する。
海外からのアクセスを拒否してしまえば対策はほぼ完璧なのだけれど、
海外在住の人が海外ドメイン規制を回避して臨時用2ch串で書いている事例もあるので、
全部拒否する訳にもいかない。
臨時用2ch串をクローズドにして、会員制にしようかとも考えたのだけれど、
認証機構をあまり重くすると、ユーザ負担になるのでそっちも躊躇してしまう。
中の人としては、管理責任云々もあるのでメールアドレスのような
識別情報を持つような事はしたくない。
他に考えられる案としては、
「字句解析を導入して、単語で重み付け、一定値を超えた場合に書きこみ拒否を行う」
というのもあるのだけれど、上手くしきい値をつけてやらないと
普通の書き込みまで拒否してしまう諸刃の剣になる。
さじ加減が難しいのだけれど、細かい調整に手間を取られたくはない。
手詰まりだなぁ……
konata.netのIPは公開プロクシとして焼かれているので、
中の人が2chを読み書きするときにも臨時用2ch串を使っている。
専用ブラウザがCookieを食わなかったりするので、多少手を入れて使っているのだけれど。
そんな訳で、中の人は専用ブラウザから臨時用2ch串を使っているのだけれど、
普通の人はブラウザ経由で2chを見ることになる。
けれども、今時ポップアップの一つもできないようだとキツイだろうなぁ……
という訳で、多段ポップアップを作ってみた。
が、中の人はJavaScriptについては素人さんなので、まずは調査から始める。
幸いなことにGoogle先生に聞けばネタは日本語のが転がってるし、
多段ポップアップ自体もちょっとしたWebサイトなら割と見かけるのでそんなにキツい事もあるまい。
とか思っていたのだけれど、中の人のレベルがアレなので思いの外時間がかかった。
フルスクラッチで10kbちょっとのソースで賞味4日位。
答えは臨時用2ch串にアクセスしてソース見ればいいので、簡単にポイントをおさらい。
・Webでひっかけた情報を元に、まずは単体のポップアップを実装する。
・apacheのmod_extfilterを使って、read.cgiで取得するhtmlデータにJavaScriptの <script> タグを追加。
・多段ポップアップの実装、イベントとか、要素のサイズとか座標を取る方法が判らなくて難航
・複数ブラウザでの動作確認および修正
・2chのJavaScriptとのonloadイベントの取り合い回避
組み終わってみれば大したことのないスクリプトなのだけれど、
前提となる知識を知らない間は、これがなかなか難しい。
あと、IE8対応が面倒くさい。IE系が開発者に嫌われてる理由が分かる気がする。
jQueryとかがそういう所を意識しないで済むのは偉大なんだと実感。
なにはともあれ、めでたくリリース。
バグ持ちだろうけど、細かいことは気にしない。
まぁ、端的に言うと、書き込めるtorノードが尽きた。
決まった時刻ではないものの、定期的にtorノードが焼かれている状態は
ここ一ヶ月ほど変わりなく、NGとなったノードは1500ちょい。
torの再起動を知らせるcronのメールがものすごい勢いで溜まっていく。
中には動的IPでtorノードではなくなったIPを使おうとして失敗したものもあるはずなので、
再利用可能なIPも一部にはあるのだろうけれど、なんらかのブレイクスルーがあるわけでもなし。
結局は消耗戦なので、いつまでも続けられるわけでは無い。
こちらの使っているノードを見つけて云々という訳ではなさそうなのが救いか。
とりあえず、キャッシュを消してノードの再取得で使えるノードを得ることができた。
いつまで凌げるかは判らないけれど、コードも追加しておく。
2ch卒業の日も近いかなぁ……
とりあえず、簡単に時系列に示すことにする。
12/13日
16:41 これまで使っていたノードが焼かれる。
16:45 別のノードに自動で切り替えたのだが、このノードが既に存在していない為に接続エラーとなる。
19:00 事態に気がつくが、現在地が会社なので、とりあえずメンテ状態に落として帰宅
↓
なんかいろいろやる
↓
21:30 ひとまず、書き込みが出来ることを確認。メンテ状態解除。
原因はtorノードリストが古くてのExitノードが使えないので毎回タイムアウトに
なっていたらしい。
タイムアウトを制御するのと、タイムアウト時にもtorのノード更新をすることで対処。
ここ毎月なんだかんだで、ノードが焼かれている。
ここ数日にいたっては、粘着されてるんじゃなかろうかと思うほどノードが焼かれる。
今はまだ、ノードの余裕があるから良いのだけれど、一度狙われると多分芋づる式にノードが潰されるんだろうなぁ……
串焼くと、2chの組織内でのポイントが上がるみたいな形で評価が上がったりするんだろうか?
あの組織で評価が上がって良いことがあるとも思えないのだけれど。
終わりのないディフェンスでもいいよ~♪なんて歌を歌えるほど楽観的にはなれる
状況でもない。
ノード数にだって限りがある。
こっちがどのノードを使ってるかは、2ch側に書きこまれ無い限り判らないわけで
そうすると、臨時用2ch串の利用者の中にいわゆるこちらのノードを抜くためだけに
書きこみをする人がいると思うのだけれど、それっぽいデータもない。
はたして、いつまで続けられることやら。
あんまり手の内晒すようなのもアレなのだけれど、
過去の臨時用2ch串は、許可ワードとNGワードが存在していて、
「httpのリンクなんかは広告荒らしに使われやすいので拒否したい、けど、JPG画像のリンク位やyoutube等の特定サイトは許可したい」
という時に、まず、許可ワードに「youtube」を設定して、NGワードに「ttp:」を指定。
1、許可ワードがある場合、書き込みOK。
2、NGワードがある場合、書き込みNG。
3、その他、書き込みOK。
という処理順番になっていたのだけれど、やはり緩めの制限がダメだったのか、
許可ワードつきで、NGワードを含む連続書き込みをする迷惑な人が出没する様になった。
mod_security側で上手く出来れば良いのだけれど、面倒くさくなったので、
1、NGワードがある場合、書き込みNG。
2、その他、書き込みOK。
に条件を変更した。
加えて、迷惑な人が迷惑な書き込みをする関係で忍法帖のLvがしょっちゅうリセットされるので、
特権IPは別の忍法帖を使うように変更。
水遁スレを監視して、水遁原因の書き込みを特定。
臨時用2ch串経由のログと照合してリモートホスト名から該当ISPを一定時間アクセス拒否
という案もあるにはあったのだけれど、正直実装がめんどくさい上、
スレ名が変わると追随は手作業になるのでメンテもめんどくさいので速攻でお蔵入り。
臨時用2ch串のログを見ると、アクセス元の殆どは規制されていないISP経由だったりする。
かといって、そんなに身元を隠したそうな書き込みが有るわけではない。
正直、良くわからない。