WordPressのパーミッション設定でセキュリティを強化する方法

IT関係のニュースを見ると、日々サイトの改ざんや乗っ取りなどの話題を目にします。心のどこかで自分には関係ないと思ってたりしませんか?

家と鍵

万が一、自身のサイトが改ざんされたらそのダメージは計り知れません。もしもの時のためにも、サイトのセキュリティ設定はきちんとしておくようにしましょう。

今回はセキュリティ対策の1つとして、適切なWordPressのパーミッション(属性)設定について解説します。

関連記事:WordPressのPingBack機能を悪用したDDoS攻撃の対処法

パーミッションとは

サーバーのファイルには、それぞれユーザーが用意されており「読み込み」「書き込み」「実行」という権限の設定ができます。パーミッションはサーバーのコントロールパネルやFTPソフトで変更することができます。このパーミッションの設定を見直すことで安全性を強化することができます。

パーミッションには下記のユーザーが存在します。

所有者(Owner) ファイル/ディレクトリの所有者、本人
グループ(Group) 同じサーバーを利用できるユーザ全体
他のユーザ(Other) その他全て、第三者

各ユーザーの実行権限はこちら。

ファイル ディレクトリ
読み 指定したファイルの内容を表示 リストの表示可能
書き ファイルの上書き、削除 ディレクトリに新規ファイル作成可能
実行 ファイルの実行(CGIなど) カレントディレクトリにすることが可能

WordPressで理想的なパーミッションの設定

パーミッション設定は、環境や運用面などで適切な設定は変わってきます。
ここでは一般的におすすめされているファイルのパーミッションを紹介します。

.htaccess

「604」か「606」

「.htaccess」ファイルが書き換えられる事例が多発しており、パーミッション設定は必須です。パーマリンクの設定が出来るようにするには「606」にします。

wp-config.php

安全なのは「400」

オーナーのみが呼出できる「400」が最も安全な設定になります。

インストーラ(レンタルサーバーなどで用意されている自動インストールなど)でwp-config.phpを作った場合、パーミッションは「646」か「666」になっています。この場合、オーナーは「Apache」になってしまうので、自分自身では変更できません。

そのため、FTPソフトなどでwp-config.phpをダウンロードして、サーバー上のwp-config.phpを削除して、再アップロードします。これでオーナーが自分になり、パーミッションの設定ができるようになります。

LINK:wp-config.phpのパーミッションは何にしておくのがベストでしょうか?

ただし、共有サーバーの場合「400」で設定できないケースも多いようで、WordPress.org では「600」を推奨しています。当ブログで利用しているホスティング会社も「600」を推奨しているため、その設定で運用しています。

LINK:Changing File Permissions

その他のファイル・ディレクトリ

その他のファイル・ディレクトリについては、一般的には

ディレクトリは「705」
ファイルは「604」

でいいようです。ただし、WordPressの管理画面でテーマの編集やファイルのアップロードができない場合は、「themes」や「uploads」を「707」などに変更する必要があります。これはサーバーの仕様によって違うかも。

パーミッションを「777」「666」などに設定した場合、「誰でも書き込める」状態になっています。くれぐれもそのように設定しないよう注意しましょう。

共用サーバーのパーミッションについて

企業やビジネスサイトなどでない限り、一般の人は共用サーバーを使っている場合がほとんどだと思います。共用サーバーとは、1つのサーバーを複数人で利用しているサーバーのことです。

注意したいのは、1つのエリアを共有しているということは「サーバー上で他の人と同じグループになっている」ということです。

パーミッションの真ん中の設定「グループ」は、共用サーバー内のユーザーのこと。つまり「グループ」権限を付与すると、共用サーバー内の他人があなたのホームページにあるファイルを勝手に削除したり、書き換えたりすることができるようになります。

共用サーバーでグループを利用していない場合は、パーミッションの真ん中の数字は必ず「0」に設定するようにしましょう。

参考サイト:Wordpessセキュリティ対策 パーミッションを変更する