.ftpaccessでIPアドレス制御をサブネットマスク表示で記述してサーバーへの不正侵入を防ぐ方法
ブラウザーからワードプレスへの不正侵入を試みる悪意を持った人をサイトに接続させない方法として、.htaccessに侵入者のIPアドレスやホスト名を使って接続を拒否する方法がありますが、同様にサーバーに対して不正侵入を防ぐため、.ftpaccessというファイルに接続を許可するIPアドレス以外を拒否する記述を書いて不正侵入を防ぐ方法があります。
しかし、.ftpaccessの記述を間違えると自分自身も接続できなくなるので、そんな事態に陥らない様に注意点を踏まえて.ftpaccessによるIPアドレス制御の方法を紹介します。
不具合は修正されました
テキストモジュールやプレーンテキストモジュールにおいて、?、!、<、>などの特殊文字が正規表現でエスケープできない不具合が発生していましたが、Themifyの開発チームによりバグは修正されました。
写真で代用していたコードは正常に表示されているので、コピペして活用してください。
1 IPアドレスの注意点
「.htaccessでベーシック認証・IPアドレス制御・リダイレクトする方法」の中でも紹介しましたが、IPアドレスはインターネットに接続するための固有番号をプロバイダーから借り受けてネットに接続しています。
プロバイダーは、契約している客全員が一斉にネットに接続することがないので、プロバイダーが占有している「IPアドレス」の総数以上の客を持ち、客がネットに接続する度に「IPアドレス」を割り当てる方法を取って「IPアドレス」の有効利用を図っています。このように、ネットに接続する度に「IPアドレス」が変わるIPアドレスを「動的IPアドレス」と言います。
動的IPアドレスに対して、常に同じIPアドレスを割り当てられているものを固定IPアドレスといいます。プロバイダーによっては、パソコンの電源を切っても同じIPアドレスが変わらないプロバイダーがありますが、特別に固定IPアドレスの契約をしていなければ動的IPアドレスと思って間違いありません。なぜなら、試しにモデムの電源を切って再接続してみてください。IPアドレスは変わっているハズです。
「.htaccessでベーシック認証・IPアドレス制御・リダイレクトする方法」の中では、ホスト名を使って接続を拒否(許可)する方法を紹介しました、通信系のプロバイダーの場合は動的IPアドレスとホスト名が連動しているため、すべてのau回線を対象としたホスト名にする必要があり実用的とは言えないとろこがあります。
ここでは、もう少し狭い範囲で接続を拒否(許可)できるように、サブネットマスク表示を用いたIPアドレス制御方法を行います。
2 接続を許可するIPアドレスを調べる
.ftpaccessでIPアドレス制御を行うには、接続を許可するIPアドレスを調べる必要があります。
「Infosniper」というサイトを利用させてもらいます。
サイトに接続すると①の欄に接続している自分のIPアドレスが表示されています。
②の青地に白抜きの上矢印(左側)をクリックすると、「TALOS」というサイトが開きます。
「TALOS」を下にスクロールします。
「ADDITIONAL INFORMATION」の欄にある「WHOIS」をクリックすると、何やら情報が表示されます。
赤枠で囲った部分が、接続しているプロバイダーが占有しているすべてのIPアドレスになります。
使用しているIPアドレスは動的IPアドレスなので、表示された範囲にのIPアドレスが割り振られる可能性があるので、このすべてを接続を許可するIPアドレスとして.ftpaccessに書き込む必要があります。
しかし、○○○.128.0.0、○○○.128.0.1、○○○.128.0.2・・・と打ち込んでいては膨大な数になってしまいます。
そこで使用するのがIPアドレスのサブネットマスク表示です。
3 すべてのIPアドレスのサブネットマスク表示する
先程調べたIPアドレス「○○○.128.0.0~○○○.191.255.255」を.ftpaccessに記述できるサブネットマスク表示に変換します。
「単位換算、進数変換等の便利なWEBアプリ集」(https://hogehoge.tk/ip/)さんのIPアドレス計算をお借りします。
10進数表記を使用します。
①の欄に先程調べたIPアドレスの下限の数字を入力します。
②のマスクビットの数字を変えるごとに③のホストアドレス範囲が変わります。(数字が小さいほどホストアドレス範囲は大きくなります。)
③のホストアドレス範囲に先程調べたIPアドレスの範囲が含まれるように②のマスクビットの数字を選びます。(最初と最後の数字はIPアドレスと割り当てられることはないのでホストアドレス範囲には含まれません。)
先程調べたIPアドレスの範囲は「○○○.128.0.0~○○○.191.255.255」だったので、②のマスクビットが「10」の時、③のホストアドレス範囲に丁度納まっているのでサブネットマスク表示をする準備が整いました。
サブネットマスク表示に置き換えます。
「○○○.128.0.0~○○○.191.255.255」の下限の数列に「/(スラッシュ)」とマスクビットの数字を付け加えるだけです。
今回の例で言うとサブネットマスク表示は
「○○○.128.0.0/10」
となります。
4 .ftpaccessファイルを作成する
.ftpaccessファイルを作成します。
作り方は.htaccessファイルと一緒です。テキストエディターでファイルの新規作成で名前を「.ftpaccess」として保存してください。
ファイルに書き込む記述は.htaccessと同じで次の通りです。
allow from 000.000.000.000の部分に先程のサブネットマスク表示を入力して、
allow from ○○○.128.0.0/10 となります。
また、会社と自宅のIPアドレスを許可する場合は、
order deny,allow
deny from all
allow from ○○○.128.0.0/10
allow from △△△.000.000.000
のように、allow from000.000.000.000を改行して記述していきます。
5 .ftpaccessファイルをアップロードする場所
.ftpaccessのルールや適応範囲は、「.htaccessでベーシック認証・IPアドレス制御・リダイレクトする方法」で説明した.htaccessのそれらと同じです。
よって、ftpaccessをアップロードする先は
①のルート直下(写真の場合はwordpress1及びwordpress2の接続を制限する)または、
②のwordpress1のフォルダ直下(写真の場合はwordpress1のみを接続制限する)
になります。
6 記述間違いをして接続できなくなった時は?
.htaccessのIPアドレス制御の記述に誤りがあった場合は、ブラウザーでサイトが表示されなくなるだけなので、慌てず騒がずアップロードした.htaccessをIPアドレス制御を記述する前の.htaccessに置き換えれば正常に表示されるようになります。
しかし、.ftpaccessのIPアドレス制御の許可するIPアドレスに誤りがあると、アップロードした瞬間からFTPソフトでサーバーに接続できなくなるので、誤りのある.ftpaccessを削除することすらできなくなります。
そんな自分で設置した.ftpaccesにより自分自身がサーバーから締め出されてしまった場合の対処法を紹介します。
レンタルサーバーによっては、FTPソフトを使わずに管理画面からサーバーにアクセスできる機能がある場合があります。その機能がある場合は、それを使ってアップロードした.ftpaccessを削除するか名前を書き換えて無効化できるか試してください。
削除又は無効化できればFTPソフトで再接続できるハズです。
この方法でサーバーにアクセスできない又はそもそも管理画面からサーバーにアクセスする機能がない場合は、もう自分で対処する方法は残念ながらありません。
レンタルサーバーのサポートデスクにメールや電話で事情を説明して、アップロードした.ftpaccessを無効化することを依頼してください。
恥ずかしながら私し、プロバイダーを変更したためにFTPソフトでサーバーに接続できなくなった経験があります。
交換したプロバイダーのモデムを宅急便で返送してから.ftpaccessを書き換えていないことに気が付いたのですが、時すでに遅し、後の祭りでした(笑)。恥を忍んで、レンタルサーバーのサポートに.ftpaccessの無効化を依頼して復旧してもらいました。
.ftpaccessに記述するIPアドレスの間違い以外にも、思わぬ落とし穴が待っているかもしれません。
.ftpaccessによるIPアドレス制御の説明は以上です。私の失敗が参考になれば幸いです。
この記事があなたのお役に立てたら幸いです。
またこの記事がお役に立てれたならhatena・Facebook・Twitterでシェアして頂けると励みになります。