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

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

スパムを停止する

スパムを防止する方法:

  1. Captcha を有効にします。「スパム対策のための Captcha 設定」を参照してください。
  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 を再起動し、インデックスを再構築します。これによって、検索インデックスからスパムへの参照が削除されます。
Last modified on Mar 31, 2023

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

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