WordPressを使う時前にセキュリティ強化を図る。
Wordpressは、非常に便利で使い勝手も良く、人気がすごくて、かなり栄華を極めている感のあるところです。特に日本では。
ただ、その人気を逆手に、心無い者がクラックに励むという事態が頻発しているようです。
特に昨今では、無防備なWordpressも増えてきたのでしょう。
簡単にクラックされ、改ざんされたサイトが多いようで、
- XServer や 同系の ネットオウル は、日本国内IPアドレス以外からのログインを拒否するプラグインの提供を始めました。
- さくらインターネットでは、改ざん防止のための管理ユーザ名変更を促しています。
- また、最近では、人気のキャッシュプラグイン(WP Super Cache、W3 Total Cache)で脆弱性が確認されました。
ここ最近のレンタルサーバー業界のWordpressへの入れ込み方からも、これらの危機感につながっているのかなぁとも思います。
個人的な経験を踏まえて、Wordpressを使う前にセキュリティ強化を図る方法を列挙してみました。
何かの参考になればうれしく思います。
セキュリティ強化を図る インストール編
- 最新のWordpress および 最新のプラグインを使用する。
古いWordpressには、セキュリティ面で非常に問題が多いバージョンも存在します。
最新のバージョンを使用することで少なくともWordpress自体のセキュリティ面の強化を図っておくことは、何をおいても大前提(最初にやるべきこと)になります。
- 管理ユーザ名は、デフォルトの admin を使わない。
一番多いアタックは、admin で片っ端からパスワードをぶち込んでログインしようとするものです。
まず、このユーザ名は使うべきではありませんし、使っちゃいけません。
/* 後で変更する場合は、以下のSQLを実行するとadmin → newuserへ変更できます。 */
/* ( wp_users の wp_ は、インストール時に指定したテーブルプレフィックスになります。) */
UPDATE wp_users SET user_login='newuser' WHERE user_login='admin';
|
- パスワードは、英数字を絡めて最低でも8文字以上とする。
先にアタックでもわかるように片っ端からパスワードを入力しても、まず、簡単にヒットさせない文字数にすることが大事です。
さらには、わかりにくい英数字のものにすべきで、サイト名などわかりやすいものは含めないことが大事です。
同じ文字を続けないこと、数字情報も含めることでヒット率はグンと下がるので、是非、含めましょう。
- テーブルプレフィックスはデフォルトの wp_ を使わない。
これは、SQL インジェクション攻撃への対応です。テーブルプレフィックスが、デフォルトの wp_ を使っていると、簡単にテーブル名がわかってしまいます。
デフォルト名はつかないことです。適当な英字を5文字から8文字程度で設定しておくと良いと思います。
- インストールを終えたら install.php を消す。
/wp-admin/install.php は、Wordpressをインストールしたら必要ありませんから、削除しておきます。
これは、install.php からのクラックを防ぐためです。
削除したくない場合は、少なくともファイル名の変更をしておきます。
- インストールを終えたら WordPress配下の全てのファイルのパーミッションは管理者以外書き込み禁止とする。
意外に多いのが、wp-config.php のパーミッションを変更していないパターンです。
インストール時に自動的に書き込ませるために、一時的に書き込み可としていて変更するのを忘れたパターンなんでしょうね。
十分注意が必要です。
$ find /var/html/wordpress -type d -exec chmod 755 {} \;
$ find /var/html/wordpress -type f -exec chmod 644 {} \;
$ chmod 444 /var/html/wordpress/wp-config.php
|
wp-config.php のパーミッションは、滅多に書き込みませんから、一旦、書き込み禁止まで設定しておきます。
共有レンタルサーバーの場合、同一サーバーのユーザは、全て同じグループになります。同一グループからの参照を回避するために 6
04 のように、あえてグループを排除しています。
共有レンタルサーバーの場合は、同様にすべてのファイルでグループを排除しておきます。(サーバーによっては、正しく動作しないこともありますので、要確認です。)
これは、少なくともウェブサーバーの実行ユーザと所有者が同じグループでないことが前提となっています。環境を確認の上、設定しましょう。
少なくとも共有サーバーなら、そのような設定になっていると思いますが、確認しておきましょうね。
パーミッションの 644 と 604 の違い
$ chmod 604 wp-config.php
は、
グループを排除しても、その他のユーザには、読み込み権限を与えているので、意味がないように思われますが、実際は、異なります。
パーミッションの数値は、左から、
所有者権限、
グループ権限、
その他権限 となります。
604 と設定した場合、
所有者権限 = 6 : 読み込み
可、書き込み
可
グループ権限 = 0 : 読み込み
不可、書き込み
不可
その他権限 = 4 : 読み込み
可、書き込み
不可
となります。
その他の人は、全て見れるので、グループを排除しても意味がないのでは?と思いがちですが、権限は、次の順序で決定されます。
- 所有者なら、所有者権限に従う
- 所有者と同一グループなら、グループ権限に従う
- 上記以外なら、その他権限に従う
つまり、604 と設定されれば、同一グループにだけは、読み込みすら許可しないような設定になるのです。
セキュリティ強化を図る サーバー運用編
- ウェブサーバー実行ユーザとWordpress配下のファイルの所有者を一緒にしない。
共有レンタルサーバーではありえませんが、VPSなどでよくやってしまうことです。
ウェブサーバー実行ユーザ(例えば apache としましょう)と、Wordpressの各phpのファイルの所有者を同じにするとプラグインなどのphpの実行時になんでもできるようになります。
自前のプラグインなどを作るような場合には、非常に便利なのですが、この便利さは、クラックされた時にも同じ便利さを提供してしまいます。十分に注意が必要でしょう。
- バックアップは毎日とる。
もしもの場合、バクアップを毎日取っておけば最悪の事態に備えることができます。
また、改ざんされたのが何時頃なのかも、そのバックアップからわかることもあります。
バックアップは必ずとるようにしましょう。
- 使っていないプラグインは削除する。
使っていないプラグインほど意味がないものはありません。特に使わないだけに最新にもせず、放置している場合もあると思います。
プラグインからのアタックも多いので、無駄に放置せず不要なもの、使わなくなったプラグインは、削除しましょう。
- upload.php, upgrade.php は必要ない人は 削除する。
非常に稀ですが、これもアタックに使われるphpファイルです。
upload.phpは文字通り、画像ファイルなどのアップロードに使われます。
upgrade.php は、バージョンアップ時に使われます。
必要ない方は、ファイル名を変更しておくと良いと思います。その際は、プラグインとのからみもありますので、十分テストを行って、個人で必要ない、問題ないと判断した時のみ行うようにしましょう。
必要な方は、常に新しいWordpressをインストールしておくように心がけましょう。古いバージョンにはセキュリティホールがある可能性が高くなります。
ざっと、こんな感じでしょうか。
少なくとも共有レンタルサーバーであれVPSであれ専用サーバーであれ
インストール編 は、すぐにできることですから、まずは、実施されることを強くおすすめします。
ご利用のブラウザは、広告ブロック(AdBlockなど) が適用となっていませんか?
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない、検索ができないことがあります。
関連記事 :
コメントを投稿 :