必ずやっている最低限のWordPress簡単セキュリティ対策
はじめに
WordPressって便利ですよねー。プログラマーじゃなくてもカスタマイズしていけば便利なサイトになるなと感じていて重宝します。
ただ、ずっと言われていることですが、セキュリティ面は不安がありますよね。人気なシステムなので攻撃してくる人も多くなる至極全うな成り行きから今回はWordPresのセキュリティについて普段最低限やっていることをまとめました。
実際にあった話ですが、プラグインのアップデートを放置していてマルウェアに感染させられて、共有サーバ内のほとんどが被害にあったってケースもございます。バックドアなど見つけられない方は泣く泣く専門家に依頼することになってしまい、大惨事となりかねないので他人事ではありませんね。
それでは参りましょう。
ただ、ずっと言われていることですが、セキュリティ面は不安がありますよね。人気なシステムなので攻撃してくる人も多くなる至極全うな成り行きから今回はWordPresのセキュリティについて普段最低限やっていることをまとめました。
実際にあった話ですが、プラグインのアップデートを放置していてマルウェアに感染させられて、共有サーバ内のほとんどが被害にあったってケースもございます。バックドアなど見つけられない方は泣く泣く専門家に依頼することになってしまい、大惨事となりかねないので他人事ではありませんね。
それでは参りましょう。
ユーザ名、パスワードを複雑なものに設定する
ユーザ名に「admin」など分かりやすいものを設定すると危険なので、どうせブラウザに記憶させるので、「パスワード生成ツールパスワード生成ツール」でユーザ名とパスワードを複雑なものに設定しています。
データベースのプレフィックス(接頭辞)を変更する
デフォルトの「wp_」ではなく不規則な文字列へ変更しています。SQLインジェクションや特定のテーブルに対する攻撃を防ぐことができます。
参考:SQLインジェクション攻撃への対策|脆弱性を悪用する仕組みと具体例
参考:SQLインジェクション攻撃への対策|脆弱性を悪用する仕組みと具体例
WordPressのバージョンは最新にする
こちらも更新が必要な際は必ず行っています。しかし、アップデートする前に各種プラグインとの互換性などには気をつけてください。ステージング環境等で確認するように心がけましょう。
テーマ、プラグインのバージョンも最新にする
テーマはもとよりプラグインはいくつかインストールしていると更新が面倒になるので、「WP Updates Notifier」で通知を受け取るよう設定すると必要なときだけ更新ができますので便利です。
参考:WP Updates Notifier の使い方はこちら
参考:WP Updates Notifier の使い方はこちら
不要なテーマ、プラグインは削除する
管理が大変になるので不要なものは削除します。
wp-config.php のパーミッションを400に変更
WordPress.org では 600 を推奨しているようですが、可能ならより安全な 400 へ変更しております。
共有サーバによっては 400 では動作しない場合がございます。またプラグインがインストールできない場合などは一度パーミッションを変更して再度 400 に変更するなどして対応しております。
参考:wp-config.php の編集
参考:WordPress の安全性を高める
共有サーバによっては 400 では動作しない場合がございます。またプラグインがインストールできない場合などは一度パーミッションを変更して再度 400 に変更するなどして対応しております。
参考:wp-config.php の編集
参考:WordPress の安全性を高める
/wp-admin/ にベーシック認証を設定する
こちらもできればやったほうが良いかと思っております。念には念を…
セキュリティ対策用のプラグインを使用する
私は結構「All In One WP Security & Firewall」を使っています。
参考:All In One WP Security & Firewallの使い方とおすすめの設定方法
各種設定項目はご自身で調べてください。ブラウザの拡張機能でGoogle翻訳をインストールしておくと、だいたいの項目が分かるので便利かと思います。
参考:All In One WP Security & Firewallの使い方とおすすめの設定方法
各種設定項目はご自身で調べてください。ブラウザの拡張機能でGoogle翻訳をインストールしておくと、だいたいの項目が分かるので便利かと思います。
・Enable Login Lockdown Feature(ログインロックダウン機能を有効にする)
・Enable Force WP User Logout(WPユーザログアウトを有効にする)
・Enable Basic Firewall Protection(基本ファイアウォール保護を有効にする)
・Enable Basic Firewall Protection(基本ファイアウォール保護を有効にする)
・Enable Rename Login Page Feature(ログインページの名前変更を有効にする機能)※URLも同時に変更します。
※その他は内容に応じて設定したりするものもございます。
・Enable Force WP User Logout(WPユーザログアウトを有効にする)
・Enable Basic Firewall Protection(基本ファイアウォール保護を有効にする)
・Enable Basic Firewall Protection(基本ファイアウォール保護を有効にする)
・Enable Rename Login Page Feature(ログインページの名前変更を有効にする機能)※URLも同時に変更します。
※その他は内容に応じて設定したりするものもございます。
管理画面からのプラグインやテーマ編集を無効化する
wp-config.php ファイルに以下の記述をすることで、外観→テーマ編集項目や、プラグイン→プラグイン編集項目が非表示になり、/theme-editor.php等にもアクセス不可になります。
/* 管理画面からのプラグインやテーマ編集を無効化する */
define('DISALLOW_FILE_EDIT',true);
define('DISALLOW_FILE_EDIT',true);
管理画面へのIP制限をする
こちらもユーザが固定IPアドレスを持っている場合は設定しておいたほうが良いと思っています。
参考:WordPress管理画面にIPアドレス制限をかける方法(.htaccess)
参考:WordPress管理画面にIPアドレス制限をかける方法(.htaccess)
こんなレンタルサーバ使ったりします
さくらインターネット さんのサービス内容に 国外IPフィルタ というものがございます。
下記のディレクトリが対象となるようです。
ディレクトリ /wp-admin/ Wordpress 管理画面ディレクトリ
ディレクトリ /phpmyadmin/ phpMyAdmin ディレクトリ
ファイル wp-login.php Wordpress 管理画面ログイン
ファイル mt.cgi Movable Type 管理画面ログイン
ファイル admin.cgi 各種CGI管理画面ログイン
ファイル xmlrpc.php WordPressの遠隔操作(XML-RPC)用ファイル
必要に応じてこのようなサービスを利用させていただくというのも対策のひとつかも分かりません。
下記のディレクトリが対象となるようです。
ディレクトリ /wp-admin/ Wordpress 管理画面ディレクトリ
ディレクトリ /phpmyadmin/ phpMyAdmin ディレクトリ
ファイル wp-login.php Wordpress 管理画面ログイン
ファイル mt.cgi Movable Type 管理画面ログイン
ファイル admin.cgi 各種CGI管理画面ログイン
ファイル xmlrpc.php WordPressの遠隔操作(XML-RPC)用ファイル
必要に応じてこのようなサービスを利用させていただくというのも対策のひとつかも分かりません。
Akismet Anti-Spamプラグインでスパム対策をする
Akismet Anti-Spam は標準でインストール済みですが利用する価値あります。迷惑なスパムコメントを自動的に専用のスパムフォルダへ振り分けてくれるプラグインです。また、Contact Form 7 などにも適用できるので重宝しています。
参考:Akismet によるスパムフィルタリング
参考:Akismet によるスパムフィルタリング
おわりに
簡易的な対策となりますが、サイトによっては設定できないものもでてきたりするかも分かりません。また、マルチサイトなども同様です。その時は状況に応じて代替案で対策する他なりません。
もし、ご自身でできないけどセキュリティはちょっと心配という方は、お気軽にご相談・お問い合わせください