【どこかへ受け流す】WPアドオン”Redirction”でサイトアクセス制限してみた!

この記事の概要を簡単まとめ!

  • 前回は.htaccessでアクセス制限を行った
  • WordPressはプラグインによって様々な機能を付加できる
  • .htaccessより楽にリダイレクト設定ができる”Redirection”
  • 導入は簡単、単純なリダイレクト設定は簡単
  • サイト内の別のページに転送することも、全く別のサイトへの転送も可能
  • .htaccessと同じように正規表現が利用できるRedirection
  • リダイレクトが発生するとログが記録され、UAとIPv4が取得できる
  • 404リダイレクトについてもログを記録することができる
  • Redirectionを.htaccessと合わせて使えば、防御は99%完成だ

プログラミングを学習することは、新しいことを学習するのと同じで最初は何もわからず、手探りで色々と探すようになる。それと同じようにセキュリティについても、設定方法を手探りで色々と探し、試す必要がある。そこで問題になるのが、セキュリティの「解」を見つけるまでに時間がかかることだ。それは言語的な勉強と理解がどうしても必須になり、それを調べるために時間が必要になるためだ。大事なこととはいえ、どうにかできないものか。

さて、前回はApache系サーバーで使用できる.htaccessを利用してアクセス制限を行う方法について書いた。これはサーバーOSの機能として利用できるもので、つまり使用するソフトウェアによらないので、到達する前にアクセス制限する形となる。それとは別にソフトウェアのプラグインベースでアクセス制限するもの当然ある。ここではWordPressを前提として書いているが、それも非常に多彩で、しかし中にはウイルスそのものも紛れ込んでいてある種の無法地帯だ。

そんな中見つけたのが、リダイレクト設定を.htaccessより簡単に行えるプラグイン”Redirection”だ。どこか1D=One Directionに似ている気がしないでもない名前のプラグインであるが、リダイレクトはアクセス制限の他ページURL変更の際に使われるものである。その設定を簡単に行えるということは、サイト管理とセキュリティ向上がより楽になるということに違いない。そこで今回はRedirectionの使い方と実際の結果を交えて書いていく。

ブンブンハロー1Dに名前の似たプラグイン、どうもKIBEKINです。

リダイレクトとセキュリティ

前回記事:.htaccessでアクセス制限を行う

セキュリティはサイト運営、サーバー運用においては昨今の課題である。サイト運営はおろかサーバーを運用するだけでもリソースと時間と資金を消費している。その苦労も知らずして、クラッカーは愉快犯も同じのレベルで各所にあるサイトやサーバーを破壊する目的で攻撃するので、セキュリティを設定し、そのレベルを上げざるを得なくなる。だがそのセキュリティを構築するには、使用しているサーバーのOSに準じた言語的な学習やソフトウェアについての知識を習得した上でやらなければわからないことが多い。すぐにでも構築できないのが悪いところだ。

そうして私がやったのがApache系サーバーで利用できる設定ファイル”.htaccess”を使ったアクセス制限の方法である。幸いなことに.htaccessで使用する記述方法は公式リファレンスや多くの先駆者の情報があるため、堅いセキュリティを構築するには苦労しなかった。特に正規表現の記述方法についてはかなり参考になった。そのおかげで.htaccessの編集は怖くなくなり、自由に弄ってはセキュリティ構築に役立ってくれている。弄れるようになると途端に楽しくなるものである。



ただできるようになったことだけを書いてしまうとそれは本当の意味で自己満記事に終わってしまうので、実際に私が使用しているものに絞って私が使用している.htaccessの記述内容とその解説を行い、初心者でもある程度はわかるような記事に構成した。その記事が果たして初心者向けであるかどうかはいざ知らず、しかし完成した記事は読めば最低限のセキュリティは構築できるようになるものであると自負している。未知の領域でも、やってみれば何とかなるものだった。

WordPressはプラグインによって様々な機能を付加できる

さて、私がブログ運営に使用しているソフトウェアはWordPressである。これは言わずもがなだが、これはオープンソースのソフトウェアとして展開されているものである。公式サイト(日本語)の情報によれば、世界中の43%がこれを使用しているという。その用途は個人ブログから大規模なニュースサイトまで様々だ。過半数ではないが、世界人口を考慮して考えた場合、世界的ソフトウェアであることは間違いないはずだ。それ故、クラッカーには狙われやすいのだが。

幅広い機能と拡張性を持ったWordPressは、理論上自由な改造が可能で、それはプラグインやテーマに現れる。またWordPress自体がブラウザから.phpファイルの編集が可能であり追加cssによってビジュアル的にページの外観を編集することができるようになっている。同時に様々なテーマ・プラグインがインストール可能になっており、これはWordPressの管理画面から追加できるほかは、zip形式のファイルのアップロードによっても追加することが可能になっている。ただしそれらを個人製作するにはどう頑張ってもphpの知識を十分に習得しなければならず一度出したら適宜アップデートが必要なことを考えると、遊び半分で出来るものではないようだ。当の私も、全くする気が起きない。それは「面倒」という言葉に現れる。

テーマに関しては一度決めたら余程のことでない限りはテーマを変更する必要はない。或いは行ったとしても既存のテーマをもとに自分なりの改造を加えた子テーマに切り替えるくらいだ。それよりも頻繁に使うのがプラグインである。このプラグインについては全ての利用者必須のものがあれば、特定のテーマでしか機能しないものまで様々だ。ただし中には情報の不正取得を目的とした悪質なプラグインもあるようで、これについては要警戒である。殆どの場合、プラグインは健全なものであるが。

プラグインによって付加できる機能については様々であり、それらの全てをここで語ることは不可能だ。ただ多くの場合、WordPressで提供される機能ではないもの・非推奨となった古い機能・存在しない機能の追加、既存の機能のGUI化・合理化、ユーザビリティの強化といったものが多い。もちろんその中にはセキュリティ強化ができるプラグインも存在する。そのプラグインも既存の機能の強化と独自の機能の追加の2つのパターンがある。多くは後者が作られており、このことから既存のものではセキュリティ対策は不十分という考えを持つ人が多くなったのだろう。もっとも、そうなってしまった現代の傾向についても問題があると思うのだが、こればかりは受け入れなければならないようだ。

.htaccessより楽にリダイレクト設定ができる”Redirection”

.htaccessの記事では触れていなかったが、当然のことながらリダイレクト設定についても.htaccessで設定することができる。これはApache系サーバーでの設定であるため、WordPressのソフトウェアの機能ではない。つまりリダイレクトの設定をサーバーレベル(=ハードウェア)で行うことになるので、使用するソフトウェアに依らず、アクセス制限ないしURL変更の際のページ遷移を行えることになる。ただしそれは設定が少々複雑で、.htaccessの記述ミスによる500エラー発生に対する対応の面倒さも考えると、気軽に設定することもなかなか難しい。とはいえリダイレクト設定はURL変更の際の遷移元・遷移先設定と間接的なアクセス制限(特に拒否)の設定に関わるため、何も設定しないのも運営者としてはいただけないものである。

そんな中で探していると見つけたのが、リダイレクト設定を行うプラグインの存在だ。それもかなり簡単に設定できると同時、正規表現によっても条件を設定することができるものであった。そのプラグインの名は”Redirection“である。まるでOne Directionにも似た名前のプラグインは、リダイレクト設定の救世主でもあった。次項から、このRedirectionの解説とその実例を挙げて、誰でもすぐに使えるような解説を目指していく。




Redirection, いったいどんなプラグインか

初歩:プラグイン導入

まずは該当プラグインの導入である。なおここでは、プラグイン管理については操作方法を既に理解しているものとして進める。プラグインの導入は管理画面の”プラグイン/新規追加”のページの右側にある検索窓からキーワードで”Redirection”と入力すれば、2番目に出てくる。何故か食い気味に変なSEOプラグインが1番目に入ってくるのはどうにも気に入らないが、幸いなことにRedirectionで完全名なので迷うことはないはずだ。

Redirection検索結果
Redirectionを検索した結果の画面。執筆時点では変なSEOの次に出ている。検索結果表示がガバガバである。目印は花の画像だ。

インストールは他のプラグインと同様、そのプラグインの右上にあるインストールをクリックした後、今すぐ有効化を押せばOKの、簡単な話である。大事なのはインストールした後に有効化を行うことであり、これを行わないと使用できない。意外にもこれを忘れる人がいるので注意だ。もっとも、”プラグイン/インストール済みプラグイン”からアルファベット順にRの列を見ればそこにあるので、有効化を忘れてもそこから有効化/無効化/削除を操作できるので心配はない。

初期設定:オプションから設定を調整する

Redirectionの管理画面へのアクセスはツールの項目に追加される。なお、All in One SEO(AIOSEO)を入れているとRedirection Managerという項目があるが、これは全く違うものであり、Redirectionそのものとは無関係なので注意。しかも有料専用ときた。金のない私には全くもって関係ない。さて、Redirectionの管理画面に来たら早速リダイレクトを登録したいところだが、それをする前に上のメニュー一覧からオプションを選択し、初期設定を行う。設定項目は以下がある。

  • プラグインサポート:所謂ドネーションのこと。金のない私には縁のない話だ
  • 転送ログ・404ログ:保存期間を[なし|1日|1週間|1ヶ月|2ヶ月|永久]より選択。デフォルトは1週間
  • IPロギング:設定を[なし|フルロギング|匿名IP(最後の部分だけマスク)]から選択する。基本はフルロギングに設定する。また、フルロギングがデフォルトである
  • Logging: 下2つにチェックする。それぞれの意訳は次である。
    • 外部リダイレクトログを記録する。ログサイズが大きくなる可能性があり、ユーザー情報は含まれない
    • リダイレクトがヒットしたときの日付を記録する。ユーザー情報は含まれない。デフォルトでこれがONになっている
    • HTTPヘッダ情報をキャプチャする(Cookieを除く)。ログサイズが大きくなりユーザー情報が含まれる可能性がある
    • プライバシー要件を満たしているかを判断するかはあなた次第、という注意書きがある。もっとも、不正アクセスなどしなければ普通の人にとっては問題ないはずである
  • URLモニター:[投稿の変更を監視]・[固定ページの変更を監視]にチェックを入れる。trashは必要ない。これは投稿の編集画面においてパーマリンクの変更をした場合にRedirectionが自動で登録するものである
  • 変更を監視するURL・デフォルトのURL設定・デフォルトのクエリ一致・URLを自動生成:ここは特に設定する必要がない
  • HTTP Cache Header: 301のときURLリダイレクトをキャッシュする長さを設定する。デフォルトは1時間。私もよくわからない
  • Redirect Caching: WordPressオブジェクトキャッシュを介したリダイレクトのキャッシュを有効にする。パフォーマンスを向上させられるが、オブジェクトキャッシュが必要。デフォルトはOFF。これもよくわからない
  • Advanced RSSトークン:RSSの固有トークン。空欄にしておけば自動で生成される。2回目以降のアクセスで自動で何かが入力されているはずである
  • Apache .htaccess: .htaccessのリダイレクトを反映する場合、ここにそのフルパスを入力。一般的なマシンを想定したパスで入力しなければならないようである
  • REST API: RedirectionはREST APIを利用しているため、この設定が必要である。生のREST APIを利用する。デフォルトもそれである。変える必要は基本ない
  • Data Upgrade: Redirectionの内容のアップグレードに関するものと思われる。デフォルトは”Upgrade manually when prompted”=手動。管理画面で自動でアップグレードできるらしいが、どういうことかはよくわからない
  • ルールを全部削除する場合は一番下から。これは滅多に使用することはないはずだ
Redirectionオプション設定
Redirectionのオプション設定一覧。縦長注意。基本的に変える項目が少ない。

オプションの設定がこれだけあるが、基本的にはデフォルトの設定で問題ない。何か不足を感じたりしたら後でお好みで調整をかけるといいだろう。とりあえずはオプションに一通り目を通しておき、画像の通りかどうかを確認しておくといいだろう。




事前解説:どういう動作をするのか

全てのものには動作原理がある。その動作原理を先に解説しておく。Redirectionはその名の通りリダイレクトするわけだが、WordPressにおける指定したページやファイル、或いはブラウザ検索欄から直接入力したURLが存在しない時に表示する404ページについても一種のリダイレクトと捉えているようで、404ページを表示した際もその時のURL, ユーザーエージェント、IPアドレスをログに記録するようになっている。この機能は不正アクセス対策で実に役立つものである。

さて、設定方法については後述するが、例えば相対URLで/article_001_notというページにアクセスがあったとき、/article_001_yesというページにリダイレクトするという設定であった場合、/article_001_notにアクセスされた段階ですぐに/article_001_yesへリダイレクトされ、同時にアクセスした際のログが記録される。ただし、この場合は完全一致でなければリダイレクトは行われないため、このパターンはページ変更に対する設定が主となる。

それと同時、正規表現を用いてもリダイレクト設定ができる。これも後述するが、正規表現は.htaccess(つまりApache系)のものがそのまま利用できる。ただし/(スラッシュ)はRedirectionでは正規表現で使用するものであるので、これには.htaccessと違って文字として使用する場合はエスケープが必要になる。例えばURLに”_not/”とつくページを全てトップページに戻したい場合、正規表現の記述で^(.*)\/(.*)_not\/を対象のURLとして、リダイレクト先はroot, つまりトップページに戻すように設定する。その場合、相対パス指定で/か絶対パス指定でhttps://[your_domain]/のどちらかをリダイレクト先とすれば、正しくリダイレクトしてくれるということになる。そしてこのタイプでのリダイレクトは、後ろに”_not/”とついているのならそれが存在するページ・存在しないページ・ファイルであろうが何でもトップページへのリダイレクトになるのである。

以上が動作の説明である。どちらの場合も、ヒットすれば指定したページに転送するというのが基本ルールである。しかしRedirectionでは、正規表現によるリダイレクト設定が非常に使用する機会が多いはずだ。その理由は縦横無尽に存在するクラッカーのせいであるが。

Redirection, 実際に使ってみた!

それでは実際にRedirectionでリダイレクト設定を行う。ここではリダイレクト元のURLとリダイレクトのURLを登録し、実際にログが記録されるところまでを取り上げる。

設定の基本:リダイレクト元とリダイレクト先を設定する

Redirectionでは、まずリダイレクト元となるURLを入力し、次にリダイレクト元となるURLを入力して、グループ分けをする場合はグループを設定し、ルールを追加する。たったそれだけでリダイレクト設定が完了する。では、そのルールを設定する画面について解説する。

  • 設定を追加できる場所は転送ルールの最下部に「新しい転送ルールを追加」の見出しのところ
  • 「ソースURL」にリダイレクト元を入れる。右側の「URLオプション/正規表現」のプルダウンメニューを開くと次のようになっている
    • 正規表現:正規表現を有効にする。詳しい解説は次項で行う
    • スラッシュを無視:URLで最後の/(スラッシュ)を一致判定に含めない。これによりスラッシュの有無にかかわらずURLが一致すればリダイレクトするようになる
    • 大文字と小文字を区別しない:判定時に大文字と小文字を分けずに、文字が一致していればリダイレクトする。無差別攻撃を行うクラッカーに有効
  • 「クエリーパラメータ」を[Exact match in any order1)翻訳すると「任意の順序で完全一致」となる。/すべてのパラメータを無視/無視してターゲットにパラメータを渡す]の3つから選択する。デフォルトはExact match in any orderで、特に変える必要はない
  • 「ターゲットURL」にリダイレクト先を入れる。自分のサイトの別のページなら/から、外部サイトの場合はhttp(s)://から始める
新しいルール設定画面
新しい転送ルールを設定する画面。いたってシンプルなもので、設定も複雑ではないのが助かる。

通常リダイレクトの設定には、複数ある記述ルールとコマンド・オプションの意味を理解した上で定義していくので、一種のプログラミングとも言えるそれを完成させるには時間がどうしてもかかりがちだ。Redirectionの場合は非常にシンプルで、リダイレクト元とリダイレクト先さえ入力すれば簡単に設定が完了する。ここまで簡単であると、使用する側にとってはうれしい話なのは間違いない。手間が大きく省けるからである。



ところでグループという項目があるが、これは設定したリダイレクトを用途別や目的別に分けて整備する際に使える項目である。例えば設定したリダイレクトが記事のURL変更の場合、それらしい名前を付けてまとめることができるわけだ。デフォルトでは「転送ルール」と「編集済みの投稿」の2つがあり、新たにグループを作成する場合は”グループ”から編集することができる。この事項については後述する。

上位設定:正規表現を用いてリダイレクト元を指定する

正規表現はコンピュータの世界では非常に有効な表現方法であり、これを使えると使えないとではアプリケーションの構成や利用に大きな差が出ると言っていい。その正規表現であるが、RedirectionではApache系、つまり.htaccessに準じている。したがって、.htaccessで使用する正規表現をそのままリダイレクト元のURLで使用することができるのである。1つだけ違うのは、Redirectionにおいて/(スラッシュ)はデリミタ2)デリミタ(Delimiter): 区切り文字のこと。コンピュータにおいては項目の区切りとなる目印として明示的に使用する。一般的な区切り文字として半角スペース、タブ、カンマが多い。また、ユーザー自身が使用する区切り文字を選択できる場合がある。参照:デリミタ (delimiter)とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典の1つとして扱われるため、これもエスケープ対象であるということだ。

それを了解した上で、実例を用いて解説する。異常に多い愚かなクラッカーは破壊を目的に特定のファイルに連続でアクセスを行う。それらの多くは存在しないファイルのため、結果としてはクラッキング失敗であるのだが、連続でアクセスするためにサーバーに負荷がかかる。そのせいで他の健全な閲覧者の読み込み速度に影響する。二度とアクセスさせないためにIPアドレスレベルでの遮断と共に他の人間の姿をした蟲のクラッカーが真似しないように設定を行った。それを以下の画像で1枚で表した。なお、正規表現の意味についてはここここを参照してもらいたい。

実例による1枚画像説明
実例を用いたRedirectionの正規表現によるルール設定。想定されるあらゆるパターンに対応するため、次のような記述が一般的である。

画像の例では"adminer-[version](-[lang]).php"という、私の方には存在しないが他では存在するであろうために、それを狙った破壊目的の不正アクセスが実際にあった。他からも同じ攻撃を行うであろうことを想定し、Redirectionでアクセス拒否の意を込めたリダイレクトを設定した。外部に流してもいいのだがそれではそのサーバーが今度は負荷を受けるので、最も負荷がかからないリダイレクト先としてlocalhostを設定した。つまりそれにアクセスをしようとすれば、自分自身にアクセスするように設定している。これなら誰もダメージを受ける心配はないのだ。

ところでアクセスログから、[version][lang]が異なったアクセスが行われていることが分かる。ここを変えてアクセスしてくることは容易に想定できることであり、しかし完全一致でいちいち作るのは面倒である。そこで正規表現の出番だ。[version]については”a.b.c”の形で、[lang]については何かしらの言語コードがハイフン付きで入ることが分かっている。そこで[version]では"\d"とドットを交互に配置すれば、そこにどの数字が入っても問題なくなる。そして[land]はそれが存在する場合と存在しない場合の両方に対応するため、(\-(.*))?としてやれば、言語コードがあってもなくてもリダイレクト元の条件に一致するようになる。これほどまでに詳細にリダイレクトの設定ができるのは非常に優秀であるといえよう。

ログの記録:ヒットしたものは時系列順で記録される

次は「ログ」というページに移動する。設定したら終わりというのは管理者怠慢というべきで、それよりも一体どんな「人間の姿をした蟲」がアクセスしようとして飛ばされたのか、ということを知ってより強固に対策を立てた方が、サイトの安全性は高まるというものだ。それを知る手段が、Redirectionが自動で記録するログにある。

ログが記録される条件はリダイレクト設定がされたいずれかのルールが一致し、リダイレクトが行われたときである。これは全てのルールで有効で、記録される内容はオプションの設定に準ずる。記録内容は日付、リダイレクト元のURL、リダイレクト先のURL、ユーザーエージェント、IPv4アドレスで、日付が新しい順に記録される。参考画像が以下である。

Redirectionのヒットログ
Redirectionのログ。設定したリダイレクトがヒットした場合、ここにその詳細が記録される。対策の際の参考資料となる。

ログは1行単位で表示される。リダイレクトが行われた際に最も欲しい情報はIPアドレスであろう。これは一番右の列に表示される。これは.htaccessや他のプラグインでIPアドレスベースの拒否設定の際の資料として使えるはずだ。また、カーソルを乗せた行のソースURL(リダイレクト元URL)にはメニューが表示され、IPアドレスには”IPでフィルター”のメニューが表示される。IPでフィルターをクリックすると、同一IPでフィルターされるようになり、そのIPがアクセスした他のログも表示されるようになる。

スポンサーリンク




スポンサーリンク

ログのメニューとデータの表示

カーソルを合わせると出現するメニューでは、次の情報を見ることができる。

  • エージェントの情報:ユーザーエージェントの詳細な情報を表示する。ブラウザアクセスやボットアクセスのほか、コマンド系やプライベートブラウジングのデータも表示する
  • 位置情報:そのIPアドレスのおおよその位置情報を表示する。ただし、大抵の場合で役に立たない
  • 削除:ログを削除する。通常は削除する必要がない
  • View Data:オプションで”Capture HTTP header information with logs (except cookies)…”にチェックをしている場合のみ表示される。HTTPヘッダ情報を表示する。ただ、その情報を見てもあまり変わらない可能性が高い
  • View Redirect:このログが記録された際にヒットしたリダイレクトのルールを呼び出す。どのルールでヒットしたかを知りたい時に便利
Reidrectionのログのメニューの例
Redirectionのログのメニューの全てを1枚画像にしたもの。ユーザーエージェントやどのリダイレクトルールでヒットしたかを知るには便利で、他はおまけ程度である。

上記のメニューの中でも有益な情報を得られるとすれば、ユーザーエージェントとヒットしたリダイレクトのルールである。位置情報については知ったところで使いようがなく、VPNやプロキシとなれば全くもってその位置情報は意味を成さない。HTTPヘッダも、見ても既存で入手できる情報と大差がないのでお好みで設定してもいいだろう。期待しているほどのものは得られなかった。

逆にユーザーエージェントはどの端末またはボットによって通信されているかが分かる。コマンド系やプライベートブラウジングの場合は情報は皆無だが、.htaccessで拒否設定を行う際の情報として使える。View Redirectはどのリダイレクトのルールでヒットしたかを知る手がかりとして使える。特に正規表現で多数のルールを設定している人には、どれでヒットしたのかをすぐに判別することができるので、今後のルール設定の指標としても使用できるであろう。ログを上手く利用して、理想のリダイレクトを作っていくといい。

404リダイレクトのログも記録される

404 Not Found. 404エラー、ページが見つかりません、或いは単に404と称されるこれは、多くの人にとってお馴染みの存在である。ブログを運営している人なら404ページを作っておくことは必須作業であり、ブログの形を成すための最低限必要なことだ。これがなければどんなに整っているブログでも未完成、そう言いきってもいい。

ところでページの存在しないURLにアクセスして404ページが表示された場合、Redirectionではサイト内の404ページへのリダイレクトと認識しているようで、その場合もログが記録される。これは「404エラー」のページにまとめられる。この場合は日付、アクセスしようとしたURL、ユーザーエージェント、IPv4アドレスが記録される。また「ログ」ページと同じように、次のメニューが存在する。

  • エージェントの情報・位置情報・削除:ログの時と同じ
  • 転送ルールを追加:その場で転送ルールを追加する画面を呼び出し、編集できる。ルール設定時にログから削除する設定もできる
  • すべて表示:他の同じURLを表示する。他にも同じものにアクセスしようとしたものを探す時に便利
  • URLを無視:転送ルールで「何もしない」にして追加する。つまり404も表示しない設定にする。これはやる意味がないので設定する必要がない
Redirectionの404エラーのログのメニュー
Redirectionの404エラーのログのメニューのうち、「転送ルールを追加」と「URLを無視」を選択した際の画面。URLを無視することは殆どないはずだ。

404の内容を見ながら、その場で転送ルールを設定できるというのは優秀な機能である。この場合はソースURLがそのURLで入力済みとなり、設定の基本で解説した欄のままで出来て正規表現等の設定もできるため、ちょっとURLに手を加えて正規表現化して設定することもできる。404エラーの中には攻撃を企図したアクセスであろうURLがちょくちょく散見されるため、それへの対策が即時対応できることになるだろう。

また、同じアクセスをしようとしたURLでソートすることが可能だ。これによって同一のURLの異なるユーザーエージェント及びIPアドレスを一覧化して表示できるので、それらもまとめて拒否設定(.htaccessによる設定も含む)に入れられる。そう考えたとき、ログの機能もかなり優秀だ。Redirectionは抜け目がないように作られているようだ。




補足:おそらく使わないであろう機能をざっと解説

全体としては先の項で解説完了であるのだが、一部解説していないことがある。これについては殆どの人がおそらくは使わない機能であると考えているので、ここからは軽く解説することにする。詳しい内容については、Redirectionの作者ページを参照するといいだろう。

転送ルールの詳細設定:流石にここまでは使わないが、非常に優秀

転送ルールの設定は実にシンプルで、誰もが使いやすい形になっている。だがそれでは満足しない人もいる。もっと複雑に設定がしたい物好きも世の中には存在する。その人のために、[転送ルールを追加]の真横にギアのマークがあり、これをクリックすると詳細設定を開くことができる。その詳細設定の内容が以下のようになっている。

Redirectionの詳細ルール設定
Redirectionで詳細なルール設定を行う画面。一致条件を細かく指定できるようになり、指定した後でも詳細に設定ができる。ここには載せきらないので実際に確認してほしい。

詳細設定では赤枠内が追加項目となる。その中でも一致条件が単にURLだけからURLにプラスした何かを付与して設定することができるようになり、その項目数はURLのみも含めて12種類と、非常に多種多様だ。あまりにも種類が多く、設定できる内容についてもそれぞれ異なっているためここでは取り上げないが、内容を一通り見た限りでは.htaccessと同等か、それ以上に詳細に決められるようなものになっていた。もちろん正規表現の利用も可能になっており、それはもはやGUI版.htaccessというべきものである。これについては自身の目で是非とも確かめてほしい。

サイト:特に弄ることはない

「サイト」のページは、冒頭に次の文が書かれている。

  • Options on this page can cause problems if used incorrectly. You can temporarily disable them to make changes.

和訳は『このページのオプションの設定を間違えると問題が発生する可能性がある。それらを一時的に無効にして変更をすることができる』と書かれている。サイト引っ越し機能、エイリアス、サイトのカノニカル設定、パーマリンクの移行、HTTPヘッダーなどがあるが、これらは普通に使用していればまず使うことはないだろう。

インポートとエクスポート:データの入出力が可能

「インポート/エクスポート」のページには、転送ルールのデータについて、CSV, JSON, .htaccessで記述されたものをインポート可能であり、逆にRedirectionで設定した転送ルールはCSV, JSON, .htaccess, nginxのリライトルールとしてエクスポートすることができる。また、ログのエクスポートも可能で、リダイレクトログも404エラーもエクスポート可能となっている。なおCSV形式では情報が最低限のものしか使えないため、主にJSON形式が使用されることであろう。

もし複数サイトを運営していて、他のサイトでも同じように転送ルールを設定したいというのであれば、JSONでサイトAのルールをエクスポートし、サイトBでそのルールをインポートしてやればあっという間に転送ルールの完成である。もっともこれはWordPressを使用し、かつ同じプラグインを使用している場合に限る。そのため、WordPress以外でApache系サーバーを利用しているなら.htaccessでエクスポートすると使いやすいであろう。

ログのエクスポートについては、もし残したい情報があればエクスポートするといい。事前のオプションの設定でログの保存期間に期限を設定している場合は都度エクスポートする。もっとも、1週間であれば保存しても容量はあまり大きくはならないので安心していい。

リダイレクトテスター:リダイレクトが正常に動くかチェック

ところでリダイレクトを設定したら、それが「本当に動くのか」を検証したいと思うはずだ。特に正規表現で設定した場合は気になることではないだろうか。しかしブラウザ検索窓からテストしてみても、アクセスする側からは「ただリダイレクトされるだけ」である。ある意味で正しい動作だが、HTTPステータスコードなども含めて確認することはできない。

それを見越して、「サポート」のページの中央部分に、「リダイレクトテスター」がある。ここにはhttp(s)://から始まる完全URLでテキストボックスに入力し、確認を押すことで実際にアクセスを代行してくれる。実際にリダイレクトされているかを確認したのが以下の例である。

Redirectionからリダイレクトテスト
Redirectionの「サポート」ページからリダイレクトのテストをしているところ。ここに任意のURLを入れてテストする。

このリダイレクトテストも1つのアクセスとみなされるため、リダイレクトがされたまたは404エラーを発した場合はログに記録されるものとなる。なので、検証後にもし支障があるならログを後で削除しておくといいだろう。さて、このリダイレクトテストでは主に設定したリダイレクトがちゃんと機能するかどうかに使用するものであるが、同時にステータスコードも表示してくれる。詳細設定でステータスコードも設定している場合に確認するのにもこれは利用できる。

なお、リダイレクト設定がされておらず存在するURLに対して確認を行うと200(OK)を返す。ほか、外部URLのテストもできるが、やったところで特に意味はない。したがって、リダイレクトの確認にだけ使用するのが原則である。

スポンサーリンク




スポンサーリンク

Redirectionを.htaccessと合わせて使えば、防御は99%完成だ

無法地帯インターネット、正しく使えている人はおそらく1人も存在しない。そんな中で何らかのコンテンツを制作し、それをインターネット上に掲載するというのは、リスクを伴った行為でもある。特にサーバー運営者やWordPressでブログ等の運営者にとっては、破壊目的のクラッカーからの攻撃から24時間365日対策をしながら過ごさなければならないので、大袈裟でもなく休みなどないと言える。クラッカーは無数に存在するのに対し、個人で運営しているならこちらはたった1人で立ち向かわなければならないのと、セキュリティの観点から外部に漏らすのはいただけないものが多く、誰かに代行してもらうことは事実上不可能であるからだ。

それならば機能をフル活用すればいいだけの話で、幸いにしてApache系サーバーには.htaccessが、WordPressのプラグインにはRedirectionがある。前回記事として紹介した.htaccessによるアクセス制限(主に拒否)はサーバー(正確にはサーバーOS)そのものに存在する機能であり、これはインストールするソフトウェアに依存しない形となる。そして今回はWordPressのプラグインであるRedirectionで、標準機能にプラスする形でリダイレクト設定を便利にした。.htaccessではなかなかに設定が面倒だったリダイレクトも、これを使えば好きなだけ簡単にリダイレクトを作って対策することができるという優れもの。正規表現でリダイレクトのルールを設定すれば、クラッカーの常套手段であるDDoS対策にもなるので、もしセキュリティで困っているのであれば入れておくのをおすすめする。入れておいて損はない、そう言えるプラグインだからだ。

 

必要なのはある程度の正規表現の知識、それさえあれば誰でも使える優秀なプラグイン。それが”Redirection“.

 

以上、WPアドオン”Redirction”でサイトアクセス制限してみた!であった。それでは、次回の記事で会おう。ン、バァーイ!

 

KIBEKIN at 00:14 Jan. 5th, 2022


スポンサーリンク




脚注

脚注
本文へ1 翻訳すると「任意の順序で完全一致」となる。
本文へ2 デリミタ(Delimiter): 区切り文字のこと。コンピュータにおいては項目の区切りとなる目印として明示的に使用する。一般的な区切り文字として半角スペース、タブ、カンマが多い。また、ユーザー自身が使用する区切り文字を選択できる場合がある。参照:デリミタ (delimiter)とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
KIBEKIN
会社員という働き方が合わないのに会社員になってしまってから、半ば自分からリタイア後ブログクリエイターとなり活動してきた社会不適合者。VRやVTuberに触れる機会が増え、今後はリスペクトだけではなく自分を作る意味を込め、VTuberならぬVBlogCreator"KIBEKIN"として新しいスタートを切る。

コメントを残す

メールアドレスが公開されることはありません。
名前は必須項目となります。記入をお願いいたします。

CAPTCHA


日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)