【GoAccess】解析レポートに見知らぬIPv6アドレスが!Apacheログから謎のBot「MJ12bot」の正体を暴いて対策するまで

GoAccess

GoAccessでアクセス解析ダッシュボードを眺めていると、見慣れない海外のIPv6アドレス(2a01:4f9:...2001:41d0:... など)が上位にランクインしていることがあります。

「これって不正アクセス?それとも無害なBot?」 そんな不安を解消するために、Apacheの生ログから訪問者の正体を一発で突き止める調査手順と、今回判明した「MJ12bot」の対策についてまとめました。

1. 謎のIPアドレスの身元を調べるコマンド

GoAccessの画面上ではIPアドレスしか分かりませんが、Apacheの生ログ(access_log)には訪問者が名乗っている身分証明書(User-Agent)が記録されています。

まずはターミナルから grep コマンドを使い、そのIPアドレスの通信ログだけをピンポイントで抽出します。

Bash
# 特定のIPアドレスのログを抽出する
[root@almalinux ~]# grep "2a01:4f9:4a:2aa5::2" /var/log/httpd/access_log
[root@almalinux ~]# grep "2001:41d0:303:f29::1" /var/log/httpd/access_log

実際のログ出力例

コマンドを実行すると、以下のような生ログが吐き出されます。

Plaintext
2a01:4f9:4a:2aa5::2 - - [22/Jun/2026:13:37:00 +0900] "GET /robots.txt HTTP/1.1" 304 - "-" "Mozilla/5.0 (compatible; MJ12bot/v1.4.8; http://mj12bot.com/)"
2a01:4f9:4a:2aa5::2 - - [22/Jun/2026:13:44:46 +0900] "GET /category/ds224%EF%BC%8B/ HTTP/1.1" 404 309501 "-" "Mozilla/5.0 (compatible; MJ12bot/v1.4.8; http://mj12bot.com/)"

注目すべきは、ログの一番お尻にある " で囲まれた文字列(User-Agent)です。ここに MJ12bot/v1.4.8 とバッチリ身元が記録されていました。

2. 判明した「MJ12bot」の正体と実害

 User-Agentに記載されていたURL(http://mj12bot.com/)の通り、このログの主はイギリスの Majestic(マジェスティック) というSEO会社が運用しているクローラー(自動巡回プログラム)です。

 世界中のウェブサイトを巡回し、リンクの繋がり(被リンク)を調査して独自のデータベースを構築しています。

  • 危険性はあるか?:ウイルスやサイバー攻撃の類ではなく、規約に則って動く無害なBotです。
  • ブログへの実害は?:Googlebotとは異なるため、このBotにいくらサイト内を巡回されてもGoogleの検索順位が上がることはありません。それどころか、存在しない古いURLを執拗に叩いて 404エラー を発生させるなど、サーバーのCPUパワーや回線帯域を無駄に消費するノイズになります。

3. MJ12botをブロック・除外する2つの対策

 個人ブログや自宅サーバー環境において、MJ12botの巡回はメリットがほぼありません。以下のいずれかの方法で「アクセスを拒否する」か「レポートから除外する」対策をとるのが賢明です。

対策①:robots.txt でサイトへの立ち入りを禁止する(推奨)

 MJ12botは比較的お行儀が良いBotのため、サイトのルートディレクトリにある robots.txt の指示に従います。
 ファイルに以下の2行を追記することで、次からの巡回を自動で諦めて帰ってくれるようになる。

Bash
User-agent: MJ12bot
Disallow: /

対策②:GoAccessの集計スクリプトでログから除外する

「アクセス自体は拒否しなくてもいいが、GoAccessのダッシュボードが汚れるのを防ぎたい」という場合は、集計用のシェルスクリプトの grep -v -E の除外キーワードに MJ12bot を追記します。
 また、この手法を使えば、動的IP環境(NURO光など)でコロコロ変わる「自分のアクセス」も綺麗に除外・クリアできるので一石二鳥です。
 自分のIPv6アドレスのセグメントに加えて、自分のIPv4アドレスもあわせてパイプラインで一括カットするようにする。

Bash
[root@almalinux ~]# vi /root/update_report.sh
#!/bin/bash
export LANG="ja_JP.UTF-8"

# 既存の除外条件(WP管理画面や自分のIPv6)の間に、今回の「219.104.134.96|(自IPv4)」を追加
/usr/bin/grep -v -E '/wp-admin/|/wp-login\.php|240d:f:660|219.104.134.96|[0-9a-f]{32}\.txt|/wp-cron\.php|MJ12bot' /var/log/httpd/access_log | /usr/bin/goaccess - -o /var/www/html/report.html --log-format=COMBINED

まとめ

 GoAccessで見つかる謎の海外IPの多くは、こうした海外のSEO会社のクローラーやBotです。
 Apacheの生ログを一行読み解くだけで、相手が「誰で」「何を目的に来ているか」が手に取るように分かります。さらに、Botだけでなく自分自身のIPv4/IPv6の足跡もまとめて集計スクリプトで弾いてあげることで、ダッシュボードの精度は劇的に向上します。

ノイズのない、純粋な一般読者だけのアクセス統計(PV)に研ぎ澄まされたダッシュボードを見ながら、快適なサイト運用を続けていきましょう!

コメント