IPInfoFilter は、AbuseFilterと連携し、IPアドレスから得られる情報を利用して不正利用のフィルタリングを強化します。
GeoLite2 Free Geolocation Data、proxycheck.io のデータベースを利用し、IPアドレスから国、AS番号(ASN)、などの情報を取得できます。
- ダウンロードし、ファイルを
extensions/
フォルダ内のIPInfoFilter
ディレクトリに配置します。 LocalSettings.php
に以下のコードを追加します:wfLoadExtension( 'IPInfoFilter' );
composer install
を実行して、依存関係をインストールします。- 必要に応じて設定を行い、
LocalSettings.php
に設定を追加します。詳細は下記の設定セクションを参照してください。 - ウィキの「Special:Version」に移動して、拡張機能が正しくインストールされたことを確認します。
- GeoLite2 Free Geolocation Data より GeoLite2 のデータベースファイルをダウンロードし、サーバーに保存します。
LocalSettings.php
で保存したファイルのパスを設定します:$wgIPInfoFilterGeoLite2CountryPath = "/path/to/GeoLite2-Country.mmdb"; $wgIPInfoFilterGeoLite2ASNPath = "/path/to/GeoLite2-ASN.mmdb";
設定キー | 説明 | 例 |
---|---|---|
$wgIPInfoFilterGeoLite2AsnPath |
GeoLite2-ASN.mmdb データベースへのパス | '/var/www/GeoLite2/GeoLite2-ASN.mmdb' |
$wgIPInfoFilterGeoLite2CountryPath |
GeoLite2-Country.mmdb データベースへのパス | '/var/www/GeoLite2/GeoLite2-Country.mmdb' |
$wgIPInfoFilterProxyCheckIoKey |
proxycheck.io のAPIキー | 'your-api-key-here' |
GeoLite2 と ProxyCheck.io の両方の設定が行われている場合、GeoLite2 が優先されます。
この拡張機能は、GeoLite2 と ProxyCheck.io の2つのデータソースをサポートしています。特に設定を行わない場合、デフォルトで ProxyCheck.io が使用されます。
GeoLite2 は MaxMind 社が提供する無料のジオロケーションデータベースです。
サーバー内でローカルに動作するため、外部APIリクエストやリミット制限の問題がありません。大規模なウェブサイトや頻繁にIP情報をチェックする必要がある場合、GeoLite2 の使用を強く推奨します。
- GeoLite2 Free Geolocation Data から GeoLite2 のデータベースファイルをダウンロードします。
- ダウンロードした
.mmdb
ファイルをサーバーに保存します。 LocalSettings.php
で以下のように設定します:
$wgIPInfoFilterGeoLite2CountryPath = "/path/to/GeoLite2-Country.mmdb";
$wgIPInfoFilterGeoLite2ASNPath = "/path/to/GeoLite2-ASN.mmdb";
- 国コード
- AS 番号(ASN)
ProxyCheck.io はプロキシ検出とリスク評価のための API サービスです。
ProxyCheck.io は外部 API リクエストが必要であり、1日あたりのクエリ制限があります。小規模なウェブサイトや、IP情報のチェックが頻繁に行われない場合に最適です。
- ProxyCheck.io でアカウントを作成し、API キーを取得します。
- 取得した API キーを
LocalSettings.php
で以下のように設定します:
$wgIPInfoFilterProxyCheckIoKey = "your-api-key-here";
- 国コード
- AS 番号(ASN)
- リスクスコア
- プロキシ判定
変数名 | 説明 | 例 | サービス |
---|---|---|---|
ipinfo_country |
IP アドレスに基づいた国の ISO 3166-1 コード | JP |
GeoLite2, ProxyCheck.io |
ipinfo_asn |
IP アドレスの AS 番号(ASN) | 234 |
GeoLite2, ProxyCheck.io |
ipinfo_risk |
IP アドレスのリスクスコア(0から100) | 60 |
ProxyCheck.io |
ipinfo_proxy |
IP アドレスがプロキシかどうか(true/false) | true |
ProxyCheck.io |
データソースによって、利用できる変数が制限されます。
- 特定の国からのすべてのリクエストをブロックする:
(ipinfo_country == 'US')
- ASN が特定の値を持つ IP をブロックする:
(ipinfo_asn == 234)
- リスクスコアが一定値以上の IP をブロックする:
(ipinfo_risk > 50)
- プロキシと判定された IP をブロックする:
(ipinfo_proxy == true)