「これだけ」はやっておこう──「WordPress実行環境とアプリ開発環境」のセキュリティ対策マニュアル:とにかく速いWordPress(19)(1/3 ページ)
エンタープライズ用途での利用が増えている「WordPress」の高速化チューニングテクニックを解説する本連載。今回は、「WordPress実行環境としてのサーバのセキュリティ対策」と「開発者がWordPressアプリケーションを開発する際に実施すべき対策」のポイントを解説します。
前回は、WordPress管理者に向けたセキュリティ対策の基礎編として、「WordPress自体の対策」のためのノウハウを解説しました。今回はさらに具体的な「実践編」として、WordPressを動作させる「実行環境としてのサーバのセキュリティ対策」と「開発者がWordPressアプリケーションを開発する際に留意すべきポイント」を解説します。
「WordPress実行環境」として稼働するサーバのセキュリティ対策
他のあらゆるサーバと同様に、WordPress実行環境として稼働するサーバのセキュリティ対策も「アクセス制御」と「アップデート」が対策の基本になります(ここでは、サーバOSにLinuxを利用していることを前提にポイントを説明していきます)。
具体的に「何」を実践すべきでしょう。ポイントは以下の3つです。
1:SSH接続には「IPアドレスによるアクセス制限」を行う
まず、SSH(Secure Shell)接続には「IPアドレスによるアクセス制限」を実施しましょう。SSHへのIPアドレスによるアクセス制限は「TCP Wrapper」で制御します。
TCP Wrapperは、「/etc/hosts.allow」と「/etc/hosts.deny」にルールを記述することによって機能します。具体的には、「hosts.deny」に全ての接続を不許可とする記述を行い、もう1つの「hosts.allow」に許可するIPアドレスを記述します。例えば「192.0.2.1」のみに接続を許可する場合には、以下のように記述します。
all : all
ssh : 192.0.2.1
もし動的IPアドレスを使う環境でも、ホスト名の一部を記述することで代替できます。ただし、強度は若干下がるので注意してください。例えば、使っているプロバイダーのホスト名がhost1.example.comやhost2.example.comといったように、「example.com」は固定で、それ以外の文字列が変化する場合には、以下のように「/etc/hosts.allow」へ記述します。
ssh : .example.com
また、Amazon Web Services(以下、AWS)やMicrosoft Azureなどのクラウドプラットフォーム上でサーバを運用している場合には、その仮想マシンやロードバランサーに設定することも可能です。また、Linuxの「iptables」や「firewalld」を用いて制御することも可能です。
しかしそのような運用環境であっても、なるべくTCP Wrapperに、つまり、前述したhosts.allowとhosts.denyにも設定しておくことを筆者は推奨しています。
ロードバランサーでIPアドレスの制御を行う場合、その先の仮想マシンにパブリックIPアドレスが付与されているならば、ロードバランサー経由でのアクセスを制御できます。しかし、仮想マシンに付与されたパブリックIPアドレス経由でのアクセス、また、ローカルネットワーク経由でのアクセスが制御されないためです。
2:リモートからFTP接続を行わない
2つ目は「リモートからFTP接続を行わない」ことです。FTP(File Transfer Protocol)は昔から利用されているファイル転送手段ですが、伝送するデータは暗号化されません。パスワードの入力文字列なども同様で、全てが平文のままデータがやりとりされてしまいます。
このためリモートからは、SSHの仕組みでデータを暗号化した上で伝送するSFTP(SSH File Transfer Protocol)やSCP(Secure Copy Protocol)を利用するように徹底します。Windowsクライアントとしては、例えば「WinSCP」が著名です。筆者も愛用しています。
なおKUSANAGI環境では、FTPサーバが初期設定で有効になっていますが、TCP Wrapperによって、ローカルループバックアドレス(127.0.0.1)からの接続を許可する設定になっています。これは、WordPressをFTPによる自己接続によって安全にアップデートするためです。
3:OS、ミドルウェアを最新の状態に保つ
WordPress本体と同様に、サーバのOSやミドルウェアもできる限り最新の状況を保つようにします。
2017年8月現在、WordPress日本語版の最低動作環境はPHP 5.2.4以上、MySQL 5.0以上ですが、PHP 7以上、かつMySQL 5.6以上またはMariaDB 10.0以上で、WebサーバはHTTPS(Hypertext Transfer Protocol Secure)対応の環境を使うように推奨されています。
アプリケーションなどの仕様によって古いメジャーバージョンのPHPやMySQLしか利用できない場合はあるでしょう。しかしそのような環境であっても、OSのディストリビューションから提供されるマイナーアップデートにはセキュリティアップデートも含まれています。少なくともセキュリティアップデートを適用することは心掛けるようにしてください。
ちなみにKUSANAGI環境では、「yum」コマンドだけで最新状態にアップデートできるようになっています。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- WordPress脆弱性発覚、その後の状況 4.7.2リリース時に脆弱性が公開されなかった理由
2017年2月に発覚したWordPressの脆弱性により、既に約10万件ものサイトで改ざん被害が発生しているという。セキュリティ企業 ESETが、公式ブログで背景と現状、対処方法を解説した。 - 容易にWebサービスを高速化できるNginxを使いこなすための秘訣とは
高速で軽量なOSSのWebサーバとして注目されている「Nginx」。使いこなすための課題や有効なアーキテクチャ構成などをサイボウズでの導入事例と共に明かす。 - 高速・軽量・高機能……Nginxの基礎知識
処理能力の高さなどを理由に、近年、大規模サイトを中心に急速にシェアを拡大しているWebサーバー「Nginx」。この連載では、その特徴と魅力を分かりやすく紹介します。 - WordPress自体のチューニングが必要な理由と高速化の基本的な考え方
企業のCMSサイトやオウンドメディアなどエンタープライズ用途での利用が増加しているWordPressの高速化について解説する連載。初回は、WordPressの高速化が求められる背景や、WordPress高速化の基本的な考え方であるページのロード時間とその構成要素、1秒当たりの同時アクセス数について解説します。