2026年8月28日
2026年8月28日
WordPressでTorアクセスをブロックする方法
はじめに
Tor(The Onion Router)は匿名性の高いネットワークであり、不審なアクセスや攻撃源として使用される可能性があります。WordPressサイトを運営する際には、Torからのアクセスをブロックすることでセキュリティを強化することができます。
症状・背景
このテーマが必要になる主な場面:
- <場面1>: 不明なIPアドレスからの大量のアクセスが発生
- <場面2>: 攻撃者からのスパイウェアによるアクセス
- <場面3>: ログイン試行回数が多い匿名ユーザーからのアクセス
- <場面4>: 一部の特定のIPアドレスからの不審なアクセス
手順・設定方法
ステップ1: Torネットワークから発生するIPアドレスを取得
# ネットワーク情報サイトやTorの公式サイトから最新のTorエクステンションを使用しているユーザーのIPアドレスリストを取得します。
wget https://check.torproject.org/exit-addresses -O tor_exit_addresses.txt
ステップ2: 取得したIPアドレスリストをApacheの.htaccessファイルに追加
# Apache用のhtaccessファイルを開きます。
nano /var/www/html/.htaccess
# 以下のような内容を追加します。この例では、先程取得したIPリストからIPアドレスのみを取り出すスクリプトを使用しています。
RewriteEngine On
for ip in $(grep -oE '\b([0-9]{1,3}\.){3}[0-9]{1,3}\b' tor_exit_addresses.txt); do echo "RewriteCond %{REMOTE_ADDR} ^$ip$" >> /var/www/html/.htaccess; echo "RewriteRule .* - [F,L]" >> /var/www/html/.htaccess; done
ステップ3: Torからのアクセスをブロックするためのファイアウォールルールを作成
# Torネットワークから発生したIPアドレスリストに基づいて、iptablesで特定のIPアドレスへのアクセスをブロックします。
for ip in $(grep -oE '\b([0-9]{1,3}\.){3}[0-9]{1,3}\b' tor_exit_addresses.txt); do iptables -A INPUT -s $ip -j DROP; done
ステップ4: 保守と監視のための定期的な更新スクリプトを作成
# Torからのアクセスをブロックするルールが最新であることを確認するために、定期的にIPアドレスリストを更新し、iptablesルールも更新します。
crontab -e
注意事項
- <実践的な注意点1>: 上記の手順で生成された.htaccessファイルはバックアップを取ることを忘れないでください。
- <実践的な注意点2>: 次回のIPアドレスリストの更新時に既存のiptablesルールが上書きされないように、現在のルールを保存しておくと良いでしょう。
- <セキュリティ上の注意>: Torからのアクセスをブロックするだけではなく、その他の潜在的な脅威にも対応するためには、適切なログ監視や不審なトラフィックの検出ツールも導入することを検討してください。
- <パフォーマンス/運用上の注意>: IPアドレスリストは頻繁に更新されるので、定期的に.htaccessファイルとiptablesルールを更新する必要があります。
まとめ
1. IPリストの取得: 最新のTorエクステンションを使用しているユーザーのIPアドレスリストを入手します。
2. htaccessファイルへの追加: Apache用のhtaccessファイルに、上記で得たIPリストに基づくアクセス制御ルールを追加します。
3. ファイアウォール設定: Torからのアクセスをブロックするためのiptables規則を作成し適用します。
4. 定期的な更新: IPアドレスリストとルールが常に最新であることを確認するために、定期的な更新スクリプトを使用します。
関連記事: