JetpackのIPアドレスを許可リストに追加する
最終更新日:
WordPressでIPアドレスを許可して、ウェブサイトへのアクセスを許可または禁止するユーザーを制御します。
Jetpackがサイトにアクセスできることを確認してください。これにより、バックアップやセキュリティスキャンを実行し、以前のバージョンに復元できます。
JetpackとWordPress.com間のすべての通信を許可する
Jetpackがサイトと通信できるようにしたい場合、またはサポートからIPアドレスを許可リストに追加するよう案内された場合は、次のIP範囲を許可してください。
JetpackのIPアドレス
122.248.245.244/3254.217.201.243/3254.232.116.4/32192.0.80.0/20192.0.96.0/20192.0.112.0/20195.234.108.0/22192.0.64.0/18
重要:これらのIPアドレスは変更される可能性があります。IPアドレスに基づくファイアウォールルールを設定している場合は、アドレスが変更されるたびにルールを更新する必要があります。また、システムの設定変更を自動化できるよう、これらのIP範囲を機械可読形式で提供しています:JSONおよびプレーンテキスト形式。
JetpackおよびXMLRPC.phpへのアクセス
Jetpackはxmlrpc.phpを使用してWordPress.comと通信します。xmlrpc.phpが全員に対してブロックされると、Jetpack接続は機能しなくなります。
サイトを保護するためにxmlrpc.phpを完全にブロックする必要はありません。代わりに、上記のJetpackのIP範囲からxmlrpc.phpへのリクエストを許可し、それ以外のすべての場所からのリクエストをブロックしてください。以下のセクションでは、本物のJetpackトラフィックと、Jetpackだと偽っているだけのトラフィックを見分ける方法と、そのルールの設定方法を説明します。
本物のJetpackトラフィックと偽のJetpackトラフィックを見分ける
Jetpackは数百万のサイトで稼働しているため、ボットは正規のトラフィックに見せかけるため、「Jetpack」または「WordPress.com」と名乗るユーザーエージェントを付けてxmlrpc.phpにリクエストを送信することがよくあります。ユーザーエージェントは送信者が選択するテキストにすぎないため、リクエストの送信元を証明するものではありません。セキュリティ研究者は、Jetpackだと主張するリクエストの大半が、Automatticのネットワーク外から送信されていたサイトを発見しています。
WordPress.comからサイトへの本物のリクエストには、次のすべてが含まれます。
- 上記に記載されたIP範囲のいずれかから送信されます。これは唯一信頼できる確認方法です。リストは次の場所で常に最新の状態に保たれていますhttps://jetpack.com/ips-v4.txtおよびhttps://jetpack.com/ips-v4.json。WordPress.comはIPv4のみでサイトに接続するため、IPv6のリストはありません。また、Jetpackが接続するには、サイトのドメインにAレコードが必要です。
- クエリ文字列には
for=jetpackが含まれ、さらにtoken、timestamp、nonce、body-hashそしてsignatureのパラメーターが含まれます。Jetpackは、何かを実行する前にその署名を検証します。何も後に続かない単独の/xmlrpc.phpへのリクエストは、ユーザーエージェントが何と名乗っていても、Jetpackからのものではありません。
偽のリクエストはJetpackの署名チェックに失敗しますが、その時点ではすでにWordPressが読み込まれているため、1件ごとにサーバーで完全なPHPリクエスト分のコストが発生します。このコストを止めるには、WordPressが起動する前に、ウェブサーバーで偽のリクエストをブロックしてください。
Jetpackからのxmlrpc.phpのみを許可
以下のルールでは、JetpackのIP範囲からのxmlrpc.phpを許可し、それ以外には403を返します。WordPressのモバイルアプリ、デスクトップ公開ツール、またはXML-RPC経由で接続する別のサービスを使用している場合は、そのIPアドレスも追加してください。
Apache(.htaccess)
<Files "xmlrpc.php"> Require ip 122.248.245.244 54.217.201.243 54.232.116.4 192.0.64.0/18 192.0.80.0/20 192.0.96.0/20 192.0.112.0/20 195.234.108.0/22</Files>
nginx
xmlrpc.php用の個別のlocationブロックは、そのファイルに対するサイト標準のPHP処理を置き換えるため、そのブロック自体でリクエストをPHPに渡す必要があります。既存のfastcgi_passブロックから、location ~ \.php$行とその他のfastcgi設定をコピーしてください。
location = /xmlrpc.php { allow 122.248.245.244; allow 54.217.201.243; allow 54.232.116.4; allow 192.0.64.0/18; allow 192.0.80.0/20; allow 192.0.96.0/20; allow 192.0.112.0/20; allow 195.234.108.0/22; deny all; # Same PHP handling as the rest of the site. Match these lines to your existing PHP location block. include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass unix:/run/php/php-fpm.sock;}
Cloudflare
サイトがCloudflareまたは別のプロキシの背後にある場合、ウェブサーバーに表示されるのは訪問者のIPアドレスではなくプロキシのIPアドレスです。そのため、実際の訪問者IPを復元するようサーバーが設定されていない限り、上記のルールは機能しません。代わりに、Cloudflareでルールを追加する方が簡単です。リクエストが次の条件に該当する場合にブロックするカスタムWAFルールを作成します。
(http.request.uri.path contains "xmlrpc.php" and not ip.src in {122.248.245.244 54.217.201.243 54.232.116.4 192.0.64.0/18 192.0.80.0/20 192.0.96.0/20 192.0.112.0/20 195.234.108.0/22})
サイト全体に許可リストを適用しない
ルールをxmlrpc.phpに限定します。その他のJetpack機能は、別のネットワークからサイトにアクセスします。たとえば、Jetpack Boostは、以下のJetpack Boostセクションに記載されたホスティングプロバイダーから重要なCSSを生成し、Jetpackの画像CDNは独自のサーバーから画像を取得します。サイト全体にIP許可リストを設定すると、これらの機能が使えなくなります。
変更後にテストする
- サイトの管理画面でJetpack → ダッシュボードを開き、接続がまだ有効であることを確認します。Jetpackデバッグツールでサイトも確認できます。
- JetpackのIP範囲外にあるコンピューターからxmlrpc.phpへリクエストを送信し、403が返されることを確認します。
curl -s -o /dev/null -w "%{http_code}\n" -X POST https://example.com/xmlrpc.php
- アクセスログで
//xmlrpc.phpに二重スラッシュが付いた状態を確認してください。一部のボットがこれを使用し、一部のログツールでは別のURLとしてカウントされます。上記のnginx、Apache、Cloudflareのルールはこれにも一致しますが、自分でルールを作成した場合は、同様に一致することを確認してください。
IP範囲は変更されることがあります。このルールを手動で作成する場合は、公開されているリストを時々確認するか、プレーンテキストまたはJSONのリストからスクリプトを作成して自動更新されるようにしてください。
JetpackをCloudflareと併用する(追加のセキュリティルールなし)
デフォルトでは、Cloudflareに追加のセキュリティ設定を指定していなければ、CloudflareとJetpackを連携させるために追加設定は必要ありません。
JetpackをCloudflareと併用する(追加のセキュリティルールあり)およびSucuri
次を使用している場合は、Cloudflare(追加のセキュリティルールあり)またはSucuri、JetpackのIPアドレスを手動で追加してください。
ご利用のCloudflareでは、特定のASN(自律システム番号)を持つサーバーからのトラフィックのみを許可することにも対応しています。設定するには、2635へのアクセスを許可できます。
192.0.64.0/24192.0.65.0/24192.0.66.0/24192.0.67.0/24192.0.68.0/24192.0.69.0/24192.0.70.0/24192.0.71.0/24192.0.72.0/24192.0.73.0/24192.0.74.0/24192.0.75.0/24192.0.76.0/24192.0.77.0/24192.0.78.0/24192.0.79.0/24192.0.80.0/24192.0.81.0/24192.0.82.0/24192.0.83.0/24192.0.84.0/24192.0.85.0/24192.0.86.0/24192.0.87.0/24192.0.88.0/24192.0.89.0/24192.0.90.0/24192.0.91.0/24192.0.92.0/24192.0.93.0/24192.0.94.0/24192.0.95.0/24192.0.96.0/24192.0.97.0/24192.0.98.0/24192.0.99.0/24192.0.100.0/24192.0.101.0/24192.0.102.0/24192.0.103.0/24192.0.104.0/24192.0.105.0/24192.0.106.0/24192.0.107.0/24192.0.108.0/24192.0.109.0/24192.0.110.0/24192.0.111.0/24192.0.112.0/24192.0.113.0/24192.0.114.0/24192.0.115.0/24192.0.116.0/24192.0.117.0/24192.0.118.0/24192.0.119.0/24192.0.120.0/24192.0.121.0/24192.0.122.0/24192.0.123.0/24192.0.124.0/24192.0.125.0/24192.0.126.0/24192.0.127.0/24
厳格なファイアウォール設定とJetpack Boost
Jetpack Boostの機能を厳格なファイアウォールルールと併用する場合は、次の対象を例外としてFly.ioのホスティングプロバイダーのサブプロセッサーを許可する必要があります。Jetpack Boostのすべての機能を最大限に活用するには、Fly.ioの各ホスティングプロバイダーのASNを許可リストに追加してください。現在は、次のプロバイダーが含まれます。CacheNetworks、Equinax、NetActuate、およびOVH。Fly.ioが新しいホスティングプロバイダーを追加した場合は、PeeringDB.comを使用して許可リストに追加するASNを確認できます。
Still need help?
Please contact support. We’re happy to advise.