cPanelで管理システムが構成されているレンタルサーバーに「IP Blocker(IPブロッカー)」という機能があるのをご存じですか?
これは、契約しているサーバー内にある公開フォルダ内のファイル(通常はホームページを公開するスペースにあるファイルやフォルダ)に対して指定したIPアドレスからのアクセスをブロックするという機能で、不正アクセスされた拠点からのアクセスを拒否できる便利な機能です。
使い方は簡単で、cPanelのメイン画面にある「IPブロッカー」という項目をクリックし、開かれる以下のような画面で拒否したいIPアドレスを入力して追加していくだけです。

この画面から追加したIPアドレスはpublic_htmlの直下にある.htaccessファイルと直下にあるディレクトリ内の.htaccessへ同時に追記されていきます。
試しに何件かIPブロッカーからアクセス拒否するIPアドレスを追加して、ファイルマネージャーを使ってpublic_htmlの直下にある.htaccessファイル、public_htmlの中のディレクトリにある.htaccessファイルを開いてみてください。
以下のような記述が追加されているはずです。
deny from xxx.xxx.xxx.xxx
deny from xxx.xxx.xxx.xxx
........
「deny from …」は次に指定するIPアドレスや範囲をアクセス拒否しなさいというもので、IPブロッカーの管理画面からIPアドレスを追加すると、この行の下にどんどん追加されていき、それが管理画面上で見られるという仕組みになっています。
ただ、この管理画面からだと、1件1件追加する必要があるので、ブルートフォースアタックなどで検知された大量のIPアドレスを追加するのは面倒だし、本当に大変です。
そこで、拒否するIPアドレスのリストを加工して、.htaccessファイルに追記することで、たくさんのIPアドレスを一括登録することができます。
上記のように「xxx.xxx.xxx.xxx」というIPアドレスを.htaccessへ追加してIPブロッカーにも認識されるようにするには、以下のように加工します。
deny from xxx.xxx.xxx.xxx/32
上記の記述と比べて、「/32」という文字列が追加されていますね。
これはCIDRと呼ばれるIPアドレスの指定方法で、「/32」を加えることで、その前のIPアドレスは単一のIPアドレスですよ!と明示することができ、指定したアドレスの曖昧さが払拭されるようになっています。
IPブロッカーの管理画面を使わずに.htaccessへ拒否アドレスを直接追加する場合にはCIDR形式で記述するよう、cPanelの公式マニュアルには書いてありますので、これを守って指定すれば、何千行でも簡単に一括追加することができますから、作業量はとても少なくて済みますね。
ちなみにマニュアルは英語なので、以下の部分が該当箇所になります。
Note:
If you enter IP addresses directly into the .htaccess file, enter them in CIDR format only.
訳すと「IP アドレスを.htaccessファイルに直接入力する場合は、CIDR形式のみで入力してください。」と書かれています。
恐らくこの形式で追加しないとIPブロッカーが機能しなかったり不具合が出たりするのでしょう(自身ではテストはしていません..)から、指示を守って追記したほうがいいでしょう。
...と言いながら大量のIPアドレスに「deny from 」を付けたり、末尾に「/32」を付けるという作業自体に骨が折れるのでは?と思う方は、便利な生成AIを使うといいでしょう(私はGeminiにお願いして変換してもらいました)。
単独登録した場合と一括登録した場合の動作の違い(補足)
いくつかのIPを一括登録した後で気づいたことなのですが、cPanelのIPブロッカーの画面から登録したIPアドレスは、保存時にその直下の階層にも記述内容がコピーされるようです。
逆にその画面から登録したIPアドレスをその画面で削除した場合には、全階層からそのIPを削除して全ディレクトリで整合性が保てるようになっているようです。
私の利用しているカラフルボックス
サーバーの場合ですので他のサーバーでは違うかも知れません
一方、本ページの方法で一括追加したIPアドレスはcPanelの管理画面を介していないので、その階層にしか適用されないので、この違いを理解していないと、思わぬところに記述が追加されていたり、また逆にされていなかったりということがあるので注意が必要でしょう。
通常cPanelで管理しているレンタルサーバーであれば、public_htmlの下階層にすべてのサイトのドメインのディレクトリがあり、.htaccessは原則親階層に記述したものが子階層に適用されるはずなので、一括登録の場合にはpublic_html直下の.htaccessファイルのみに記述すればいいでしょう(試しに自身の拠点のIPを追記してアクセス拒否されるかを確認すれば判然とすると思います)
コメントを残す