最近はWordpressサイトが攻撃される事例が増えていますね。
[無料で使える]、[導入数も多い]、[簡単に使える]というサービスなだけに標的にされやすいのがWordpressの特徴であります。
この記事では最低限施しておくと良いセキュリティ関連の情報をまとめます。
以下目次
基本的にはこの記事にある内容に沿っています。
WordPressのセキュリティを徹底強化 | CSSPRO
まずはFTPなどパスワード変更
レンタルサーバーへのログインパスワードとFTPの接続用パスワードを変更します。
こちらのようなランダムな文字列を生成するサービスもあるので活用しましょう。
http://www.cityjp.com/javascript/etc/password.html
覚えやすいパスワードはいろんな端末からアクセスがしやすいというメリットがありますが、
サーバーの設定やFTPを使ったファイル操作は、よほど重要な作業をする時にしか使わないと思いますので
基本的に覚えられないぐらいの文字列にしておいて、メモしてあるものから”コピペ”して使うものと決めておいて良いと思います。
また、Wordpressのログイン用パスワードについては、記事の更新頻度や内容によります。
基本的に一つのPCからログインして記事を書くのであれば、上記のようなランダムな文字での管理で良いと思います。
スマートフォンを使うなど外出先でも気軽にログインして使いたいのであれば、自分で覚えられるものにしておいた方が良いと思います。
重要なパスワードをいろんな端末のメモ帳に残しておくのもかえって危険ですしね。
そのような短いパスワードを使うログイン時のセキュリティ強化については後述します。
セキュリティ強化用のプラグインをインストール
追加したプラグインは以下の3つです。
- Acunetix WP Security
- Akismet
- Login LockDown
セキュリティ強化全般をアシストしてくれます。
詳しい特徴などはこちらを参照ください。
まず簡単にやれることとしては、DBのベンダープリフィックスを変更すること。
[ダッシュボード]>[WP Security]>[Database]と画面を移動すると[Change Database Prefix]という項目があります。
この中のテキストボックスに変更するベンダープリフィックスを入力します。
ここは一度設定した後は特にユーザー側で使う事はないので、上記で使ったようなランダムな文字列を使うと良いです。
なお、この設定を反映するにはwp-config.phpを書き換える事になりますが
このファイルの書き換え権限(パーミッション)を一時的に書き換え可能な状態に設定する事にご注意ください。
スパムコメントを除外するプラグインです。
これはWordpressインストール時に最初から入っているものなので、有効にしておきます。
こちらを使うには有効にしたあと、APIキーの設定が必要になります。
ログイン試行制限をするプラグインです。
これはログインに3回失敗すると、そのIPアドレスからのログイン操作を1時間無効にさせるというものです。
また、その失敗したIPからのアクセスをブロックする事ができます。
※この3回/1時間という設定も変更できます。
SALTの設定
SALTはWordPressのパスワードのセキュリティを強化するシークレットキー認証方式です。
これも設定は簡単なので、入れておきます。
こちらがwp-config.phpに元々書かれているシークレットキーです。
|
define('AUTH_KEY'******'); define('SECURE_AUTH_KEY', '******'); define('LOGGED_IN_KEY', '******'); define('NONCE_KEY', '******'); |
それをこちらで生成された以下のようなコードに書き換えます。
|
define('AUTH_KEY', '******'); define('SECURE_AUTH_KEY', '******'); define('LOGGED_IN_KEY', '******'); define('NONCE_KEY', '******'); define('AUTH_SALT', '******'); define('SECURE_AUTH_SALT', '******'); define('LOGGED_IN_SALT', '******'); define('NONCE_SALT', '******'); |
wp-config.phpの保護
wp-config.phpはWordPressのデータベースへアクセスするためのとても重要な情報が含まれたファイルです。
.htaccessファイルに以下のコードを加えて外部からの書き換えを防ぐように設定します。
|
# protect wp-config.php <files wp-config.php> order allow,deny deny from all </files> Options -Indexes |
なお、私の場合はこちらのようなWordpressのルートディレクトリの変更も行ったため、別途htaccessへ追記をしています。
http://suirakukai.com/wordpress/22/wordpress-change-in-directory/
ルートに置いてあるhtaccessファイルは最終的に以下のようになっています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index¥.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress # protect wp-config.php <files wp-config.php> order allow,deny deny from all </files> Options -Indexes |
データベースのバックアップ
万が一の事も考えてWordpressのデータベースも定期的にバックアップをとっておきます。
WP-DB-Backupというプラグインを使えば簡単にバックアップを取れますので、これを使います。
私の場合は定期バックアップでgmailにメールでバックアップデータを送るようにしています。
更新頻度はそれほど高くないので、週1回としています。
サイト立ち上げ時でテスト投稿ができる状態であれば、是非バックアップデータの復元テストもやっておくと良いと思います。
参照
これで一通り復元の手順をまとめておけば、いざと言う時にスムーズに復元できます。
その他心がけ
その他気を付けることとして、いろんなブログでも紹介されていますが以下を挙げておきます。
サイト運用のルールとして事前にルール化しておくと良いですね。
- adminというログイン名は使わない。
- WordPressを常に最新にしておく。
- 使用していないプラグインは削除(停止ではなく)
- プラグインを使わずに済むものは極力functon.phpに記載する
参照
最後に
これだけの設定を入れても万全とは言えません。
常に新しい情報に目を向けアップデートしていく事が大事ですね。