IPアドレスのブロック
ボットやスパムなどの悪質な行為を防ぐ手段として、IPアドレス(複数可)をブロックするという選択肢があります。弊社が提供するすべてのプランには、「IP制限」ツールが付帯し、特定のIPアドレスや範囲をブロックすることができます。
MyKinstaでブロックするIPアドレスを特定する
ブロックの必要なIPアドレスの一例として、短時間に大量の(キャッシュされていない)リクエストをサイトに送信するアドレスが挙げられます。キャッシュを経由しないリクエストは、リソースの過剰な使用につながり、サイトに何らかの問題を引き起こす可能性があります。
お客様のサイトにアクセスした上位のIPアドレスは、MyKinstaの分析画面でご確認いただけます。MyKinstaにログインして、「分析」>「位置情報とIP」に進みます。「リクエスト数上位のクライアントIP一覧」で、他のIPよりも5~10倍以上多くのリクエストを行っているIPアドレスがないかを確認します。これに該当するIPが見つかった場合には、通常、さらなる調査が必要になります。
CleanTalkやSpamhausなどのサービスで、そのIPアドレスがボット、スパム、その他の悪質なIPアドレスとして特定されていないかどうかを確認することができます。IPアドレスが一覧に掲載されていない場合でも、必ずしも、それが正当なアクセスであることを保証するものではありません。そのIPアドレスがまだ悪意のあるものとしてデータベースに登録されていないだけの可能性があります。そのIPアドレスのリクエストによってサイトがエラーを返したりダウンしたりしている場合は、トラブルシューティングの一環としてIPアドレスをブロックしてみるだけの価値があるかもしれません。
MyKinstaでIPアドレスをブロックする
MyKinstaで特定のIPアドレス(または範囲指定)をブロックするには、「IP制限」ツールを使用します。
「IP制限」は強力な機能であり、使い方を誤ると、正当なサービスや個人によるアクセスをブロックしてしまう可能性があります。特定のIPアドレスについてご質問がございましたら、カスタマーサポートまでご相談ください。
MyKinstaで、「WordPressサイト」>(サイト名)>「IP制限」へと進み、「IPアドレスを追加」をクリックします。
「制限するIPアドレスを追加」ポップアップが表示されるので、IPV4アドレス、IPV6アドレス、およびCIDR(Classless Inter-Domain Routing)IPアドレスの範囲を指定することができます。CIDRの範囲では、IPアドレスの連続した範囲(例:127.0.0.1~127.0.0.255)をまとめてブロックすることができます。有効なCIDRの範囲を生成するには、IPAddressGuide.comのようなサービスのご利用をおすすめします。
ブロックすることのできるIPアドレスの例をいくつかご紹介します。
- IPV4アドレス:103.5.140.141
- IPV6アドレス:2001:0db8:0a0b:12f0:0000:0000:0000:0001
- CIDRの範囲:128.0.0.1/32
ご希望のIPアドレスを入力したら、「IPアドレスを追加」をクリックします。
ここで指定したIPアドレスは、制限対象の一覧に表示されます。なお、この画面で、IPアドレスやその範囲を編集(編集/鉛筆アイコン)または削除(削除/ゴミ箱アイコン)することもできます。
CloudflareでIPアドレスをブロックする
Cloudflareユーザーであれば、Cloudflare管理画面の「IP Accessルール」ツールを使用して、IPアドレスやIP範囲をブロックできます。
Cloudflareにログインし、「ファイアウォール」>「ツール」にアクセスします。
新規IP Accessルールを作成するには、IPアドレスを入力し、「ブロック」を選択して、「このウェブサイト」または、Cloudflareの全ドメインにルールを適用する「アカウント内のすべてのウェブサイト」を選択して、「追加」ボタンをクリックします。
追加したAccessルールは、「IP Accessルール」の一覧に表示されます。ここでは、アクションの変更、メモの追加、ルールの削除など、アクセスルールを変更できます。
Cloudflareでは「ブロック」以外にも、目的に応じて「チャレンジ」「許可リスト」「JavaScriptチャレンジ」の操作も行うことができます。
CloudflareでIP範囲、国、ASNをブロックする
CloudflareのIP Accessルールは、単一のIPアドレスだけでなく、IP範囲、国名、ASN(自律システム番号)にも対応しています。
- IPの範囲でブロックするには、IP Accessルール値にCIDRの範囲を指定します。
- 国でブロックするには、その国の英字2文字の国コードを指定します。
- ASN(単一のネットワーク事業者が管理するIPのリスト)でブロックするには、「AS」で始まるASNを指定します。
NginxでIPアドレスをブロックする
サイトをNginxウェブサーバーでホストしている場合は、ウェブサーバーの設定で直接IPアドレスをブロックできます。この方法は、MyKinstaのIP拒否ツールやCloudflareのファイアウォールでIPをブロックする方法のようにユーザーフレンドリーではありませんが、特定の状況では唯一の選択肢となります。
NginxでIPアドレスをブロックするには、サーバーにSSH接続し、nano
テキストエディターでNginxの設定ファイルを開きます。
nano /etc/nginx/nginx.conf
Nginxで単一のIPアドレスをブロックする
Nginxで単一のIP(IPV4またはIPV6)アドレスをブロックするには、以下のようにdeny
ディレクティブを使用します。
deny 190.60.78.31;
deny 4b73:8cd3:6f7b:8ddc:d2f9:31ca:b6b1:834e;
NginxでCIDRのIP範囲をブロックする
NginxでCIDRのIP範囲をブロックするには、以下のディレクティブを使用します。
deny 192.168.0.0/24;
NginxでのIPブロックの高度なテクニック
特定のディレクトリ(例:domain.com/secret-directory/)へのアクセスをブロックするには、以下のNginxディレクティブを使用します。
location /secret-directory/ {
deny 192.168.0.0/24;
}
deny
ディレクティブは、値としてall
を取ります。これは、サイトへのすべてのIPアドレスをブロックする場合に便利です。deny all;
ディレクティブはallow
と一緒に使われることが多く、特定のIPアドレスのみを許可し、それ以外をブロックします。
location /secret-directory/ {
allow 192.168.0.0/16;
deny all;
}
Nginx構成を保存してNginxを再読み込みする
nanoでファイルの編集を終えたらCtrl + Oを押して変更を保存し、Ctrl + Xを押してnanoを終了します。
新規IPブロックルールを有効にするには、以下のコマンドでNginxの設定を再読み込みする必要があります。
sudo systemctl reload nginx
ApacheでIPアドレスをブロックする
サイトをApacheウェブサーバーでホストしている場合は、ウェブサーバーの設定で直接IPアドレスをブロックできます。ApacheでIPアドレスをブロックするには、.htaccessファイルを使用します。サイト全体にルールを適用するには、.htaccess ファイルをサイトのルートディレクトリに置く必要があります。
まず、サーバーにSSH接続し、サイトのルートディレクトリに移動して、以下のコマンドで.htaccessファイルを作成します。
touch .htaccess
次に、nano
テキストエディターで.htaccessファイルを開きます。
nano .htaccess
IPをブロックする正確なルールは、Apache 2.2と2.4のどちらを使用しているかによって異なるため、ここでは両方のバージョンのルールを記載します。.htaccessファイルを編集する際には、サイトのApacheのバージョンに合わせたルールを使用してください。
Apacheで単一のIPアドレスをブロックする
Apacheで単一のIP(IPV4またはIPV6)アドレスをブロックするには、以下のルールを使用します。
# Apache 2.2
order allow, deny
allow 192.168.0.0
deny from all
#Apache 2.4
Require all granted
Require not ip 192.168.0.0
ApacheでCIDR IP範囲をブロックする
# Apache 2.2
order allow, deny
allow 192.168.0.0/16
deny from all
#Apache 2.4
Require all granted
Require not ip 192.168.0.0/16
まとめ
サイトに到達するIPアドレスをブロックする方法は、サイトの構成によって異なります。弊社をご利用の場合は、MyKinstaの「IP拒否」ツールのご使用をお勧めします。
弊社以外をご利用の場合は、Cloudflareがお勧めです。Cloudflareでは、IPアドレス、範囲などをブロックする独自のIP Accessルールを作成できます。サイトにCloudflareを設定できない場合は、ウェブサーバーの設定ファイル内に直接、IPをブロックするルールで実装してください。