サーバーの最近のブログ記事

BBSのSPAM対策

| コメント(7)

ここ1ヶ月ほど「にが up BBS」へエロサイトの広告SPAMが毎日1件程度投稿されていた。エロ画像を添付してくるものもあったので、画像を認証しないと表示できないようにしたり、一時的に親スレを管理者のみの投稿にしてみたりしたが、一向に止む気配がない。

NGワードを設定して同じ投稿は二度と出来ないようにも対策はしていたが、NGワードに半角スペースを入れてきたり、似た文字に入れ替えたり、URLをキャラクターコード表記で書いてきたりと、敵も巧妙に網をすり抜けてくる。

たとえば「エロが」NGだとすると「エ□」に換えたり、URL項目で「niga」がNGワードなら「%6eiga」換えたり。URLはキャラクターコード表記でも半角文字と同じ扱いになるから、閲覧者がクリックすればまんまと敵のエロサイトに飛ばされてしまう。

これがロボットSPAMの仕業だとすると、キチンとエラーメッセージを読解してエラーを回避するプログラムが組み込まれているということになる。なかなかインテリジェントなやつだ。

投稿の頻度もなかなか考えられている。1日に大量に書き込まれるようなことになれば、管理人がBBSが閉鎖したり、他のcgiに変更したりという対策を取るであろうが、1日1回であれば、面倒くさくても削除の追いつく程度であり、積極的なSPAM対策をしない管理人も少なくないだろう。

ウチではしばらくの間いちいち削除&NGワード設定をしていたのだが、いい加減面倒くさくなってきたので本腰を入れることにした。まずUPP-BOARDがバージョンアップしていないか調べてみたが、残念ながらこのcgiは2002年以降更新されていない。SPAM対策のしっかりした他のcgiに乗り換えることも考えたが、過去ログをどうするかという問題もあるし、UPP-BOARDの使い勝手は気に入っているのでなるべく変えたくない。そこでUPP-BOARDのcgiを改造してCAPTCHA認証機能を付けることにした。投稿者には若干の面倒を強いることになるがエロSPAMを放置しておくわけにもいかないので致し方ないだろう。

CAPTCHA認証については、ここのサイトのプログラムを利用させていただいた。下に書いたようにUPP-BOARDのcgiに合わせてカスタマイズが必要。導入後数日経過を見ているが、広告SPAMはピタリと止んでいる。人力SPAMであれば突破してくるはずなので、やはりロボットSPAMの仕業だったようだ。

以下覚え書き。ウチと同じようにUPP-BOARDを使っているWEBマスターがいれば参考になると思う。

1.ダウンロードしたconkey.*の内容をBBSと同じ場所コピーして属性変更

image_gen.cgiとkeyinit.plは属性755として実行可能にする。
bg_gen.cgiは背景画像"bg.gif"を作製する時だけ使用するので、デフォルトのbg.gifでよい場合はコピー不要。

2.keyinit.plの編集

1)暗号化キーはデフォルトのままだと突破される恐れがあるので任意に書き換え

$crypt_key = 'xxxxxxxx';

2)フォントのパスはサーバーに合わせて変更(ウチの「vine Linux」では下記)

$font = '/usr/X11R6/lib/X11/fonts/TTF/luxirb.ttf';

3)確認キーチェックのサブルーチンの「&error」文字列をupb.cgiの仕様に合わせて「&er_」に書き換える
  尚、私はデフォルトで設定されている「キーワード」をBBS上で表記されている「確認キー」に変更した

sub key_chk {
#(確認キー,暗号キー)
    my($chk, $key) = @_;
    my($plaintext,$old_time);
    if (!$chk){&er_("確認キーを入力してください");}
    # エンコード
    ($plaintext,$old_time) = &de_key($key);

    # キー一致
    if ($chk eq $plaintext) {
        # 制限時間オーバー
        if(time - $old_time >$ef_time*60){&er_("制限時間をオーバしています"); }
        # 制限時間OK
        else{ return 1; }
    # キー不一致
    }else{&er_("確認キーが誤っています"); }

4)確認キーの文字数、背景イメージ、フォント色、 フォントサイズのカスタマイズ

$len = '4';
$bgfile = 'bg.gif';
$font_color = '#e0e0e0';
$font_size = '18';

3.upb.cgiの編集

1)冒頭に require './keyinit.pl'; を挿入。

require './jcode.pl';
require './keyinit.pl';

2)スレコメントの削除キー入力の下に以下挿入。

/削除キー/<input type=password name="delkey" size=4 value="$c_key"$ff><br>
</td></tr>
<tr><td align=right>確認キー/<img src="./image_gen.cgi?$ciphertext" alt="確認キー">
<input type=text name="chk" size=8 value="" maxlength=8></td></tr>
<input type=hidden name=ciphertext value="$ciphertext">

<tr><td align=right>
<input type=submit value=" レス "$fm>
<input type=reset value="リセット"$fm>

3)ログ書き込みサブルーチンの冒頭に下記挿入

sub wri_ {
&key_chk($chk,$ciphertext);

4)フォームなどのデコードの項目に下記追加。

$mo =$FORM{"mo"};
$hr =$FORM{"hr"};
$chk =$FORM{"chk"};
$ciphertext=$FORM{"ciphertext"};

5)フォームサブルーチンの冒頭に下記追加。

sub form {
$ciphertext = &en_key;

6)フォームの「送信する」ボタンの直前に下記挿入。

print <<"_KEY_";
</td></tr>
<tr><td bgcolor=$ttb>確認キー</td><td colspan=3>/<font color="red">右の$len文字($charset[$chr])を入力してください。</font> (キーは<font color="red">$ef_time分有効</font>)
<img src="./image_gen.cgi?$ciphertext" alt="確認キー">
<input type=text name="chk" size=8 value="" maxlength=8></td></tr>
<input type=hidden name=ciphertext value="$ciphertext">

<tr><td align=right colspan=4><input type=submit value="送信する"$fm>

ブログ再構築

| コメント(6)
blogimage.jpg

2年寝かせて発酵してしまった(うまくアクセスできなくなった)ブログをアップデートして再構築してみた。なかなかマニュアル通りに事が運ばず試行錯誤の連続ではあったが、辛うじて見れる程度には設定できた。しかしまだ不完全。コメントが全て表示されずに尻切れになってしまったり、新しいコメントが付けられなかったり。原因をいろいろ調べているが、今のところ不明。とりあえずテスト。

サーバー改造完了

| コメント(7)

PS2lxdf.jpg
先週サーバーの突然HDDが動かなくなったのだが、症状から推察してどうも電源のワイヤーがHDDと筐体の間に噛み込んで潰されて内部で微妙な断線を起こしていたと結論して、ワイヤーの引き直しを行った。一応HDDはこれで復活している。

ついでにこれまでの運用でHDD下の放熱板が結構熱くなっていたので、夏に備えて冷却強化の改造を行った。ミネベアの6センチ12V高出力ファンを5Vで動かして静音ファンとして使っているので騒音レベルはあまり上げずに済んだ。デザイン的にはコブ付きになってしまったが、これから訪れる暑い季節を乗り切るためには致し方あるまい。ただ、ホコリや昆虫の侵入を防ぐ金網は必要かも。

サーバー故障

| コメント(7)

ps2lxdide.jpg
昨夜突然サーバーが無反応になり、調べたらいつのまにかHDDが停止していた。突然のHDDご臨終かと慌てて調べたらなんのことはない、以前に施した配線の半田付けが1カ所取れいただけだった。

このサーバーの運営当初は、HDDをスリム光学ドライブ用コネクタの変換ケーブルを作成して繋いでいたが、低温環境下で接触不良によるサーバー停止が頻発したため、画像のようなコネクタ横の空きパッドにジュンフロン線を半田付けしてIDEコネクタに変換する改造を行っていた。半年ほどはトラブルなく運用できていたが、所詮は手配線なので半田付けが甘い部分があったようだ。

ノート用マザーの活用にはIDEの40pの配線は避けて通れないのだが、ノートでもシリアルATAが普及すればこういう苦労は減るのだろうか…。

再開のお知らせ

| コメント(12)

転勤と2回の引っ越しの末、ようやく自宅ネット環境が復活しました。
1ヶ月と20日の自宅ネットのない生活は辛い物でありました。Bフレッツのマンションタイプを契約したのですが、NTTの手際の悪さで20日も待たされましたよ…。さすがNTT、嫌いな企業ナンバー3に入るだけのことはありますな。

復活に際しては特に新ネタはありませんが、今後ともどうぞご愛顧のほどを。

にがHP(母屋)

このアーカイブについて

このページには、過去に書かれたブログ記事のうちサーバーカテゴリに属しているものが含まれています。

前のカテゴリはゲームです。

次のカテゴリはジャンクです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

Powered by Movable Type 5.04