迷惑メールの防止とクリーンアップを行う

Confluence サイトが一般に公開されている場合、スパムの影響を受ける場合があります。

スパムを停止する

スパムを防止する方法:

  1. Enable Captcha. See Configuring Captcha for spam prevention.
  2. Apache web サーバーの後ろで Confluence を実行し、攻撃者の IP アドレスをブロックするルールを作成します。

Apache またはシステム レベルでのスパムのブロック

スパム ボットが Confluence を攻撃している場合、おそらく1つの IP アドレスまたは狭い範囲の IP アドレスを使用しています。攻撃者の IP アドレスを見つけて、リアルタイムで Apache アクセス ログを監視し、攻撃者されているページでフィルタリングします。

たとえば、攻撃者がユーザーを作成している場合、signup.action を検索します。

$ tail -f confluence.atlassian.com.log | grep signup.action
1.2.3.4 - - [13/Jan/2010:00:14:51 -0600] "GET /signup.action HTTP/1.1" 200 9956 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" 37750

作成された実際のスパム ユーザーをログ エントリで比較し、正当なユーザーをブロックしないように注意してください。デフォルトでは、Apache はログの行の最初のフィールドにクライアントの IP アドレスを記録します。

攻撃者の IP アドレスまたは IP アドレスの範囲がわかったら、ファイアウォールのブラックリストにそれを追加します。たとえば、Linux 用ファイアウォールとして一般的な Shorewall を使用して、以下のように追加します。

# echo "1.2.3.4" >> /etc/shorewall/blacklist
# /etc/init.d/shorewall reload

IP アドレスを Apache レベルでブロックするには、Apache の vhost 設定に以下の行を追加します。

Deny from 1.2.3.4

クライアント セッションを切断すること無く変更を適用する "graceful" コマンドで Apache を再起動することができます。

これでもスパムが止まらない場合、パブリック サインアップをオフにすることを検討します。

スパムの削除

プロフィール スパム

「プロフィール スパム」とは、Confluence でアカウントを作成し、プロフェール ページにリンクを投稿するスパムのことです。

そのような作成されたスパム プロフィールが大量にある場合、SQL で簡単に削除することができます。

スパム プロフィールを削除する方法:

  1. Confluence を停止し、データベースをバックアップします。注:
    この手順は、データベースで SQL コマンドを実行する前に実行する必要があります。
  2. スパムではない最後のプロフィールを見つけます。

     SELECT bodycontentid,body FROM bodycontent WHERE contentid IN 
      (SELECT contentid FROM content WHERE contenttype='USERINFO') 
      ORDER BY bodycontentid DESC; 
  3. スパムが見つかり始めるまで、プロフィール ページの本文に目を通します。大量の範囲を特定する必要がある場合があります。
  4. killset を検索します。

    CREATE TEMP TABLE killset AS SELECT bc.bodycontentid,c.contentid,c.username FROM 
      bodycontent bc JOIN content c ON bc.contentid=c.contentid WHERE 
      bodycontentid >= BOTTOM_OF_SPAM_RANGE AND bodycontentID <= TOP_OF_SPAM_RANGE 
      AND  c.contenttype='USERINFO';
    
    DELETE FROM bodycontent WHERE bodycontentid IN (SELECT bodycontentid FROM killset);
    
    DELETE FROM links WHERE contentid IN (SELECT contentid FROM killset);
    
    DELETE FROM content WHERE prevver IN (SELECT contentid FROM killset);
    
    DELETE FROM content WHERE pageid IN (SELECT contentid FROM killset);
     
    DELETE FROM content WHERE contentid IN (SELECT contentid FROM killset);
    
    DELETE FROM os_user_group WHERE user_id IN (SELECT id FROM killset k JOIN os_user o ON o.username=k.username);
    
    DELETE FROM os_user WHERE username IN (SELECT username FROM killset);

    Confluence 5.6 以前のバージョンを使用している場合、以下の SQL コマンドを使用します。

    Confluence 5.6 以前の場合...
     CREATE TEMP TABLE killset AS SELECT bc.bodycontentid,c.contentid,c.username FROM 
      bodycontent bc JOIN content c ON bc.contentid=c.contentid WHERE 
      bodycontentid >= BOTTOM_OF_SPAM_RANGE AND bodycontentID <= TOP_OF_SPAM_RANGE 
      AND  c.contenttype='USERINFO';
    
    DELETE FROM bodycontent WHERE bodycontentid IN (SELECT bodycontentid FROM killset);
    
    DELETE FROM links WHERE contentid IN (SELECT contentid FROM killset);
    
    DELETE FROM content WHERE prevver IN (SELECT contentid FROM killset);
    
    DELETE FROM attachments WHERE pageid IN (SELECT contentid FROM killset);
     
    DELETE FROM content WHERE contentid IN (SELECT contentid FROM killset);
    
    DELETE FROM os_user_group WHERE user_id IN (SELECT id FROM killset k JOIN os_user o ON o.username=k.username);
    
    DELETE FROM os_user WHERE username IN (SELECT username FROM killset);
  5. スパムが削除されたら Confluence を再起動し、インデックスを再構築します。これによって、検索インデックスからスパムへの参照が削除されます。
最終更新日: 2023 年 2 月 21 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.