カテゴリー別アーカイブ: WordPress

WordPressに関するメモ

iThemes Security の設定解説(Settings編)

前回は「iThemes Security 」のインストールと初期設定を行いました。今回は各種詳細設定の説明などをしていきたいと思います。

まず、はじめにダッシュボードについて軽く触れたいとおもいます。ダッシュボードでは、現在の設定状況を優先度の高い順で表示されています。

画像はインストール直後のダッシュボードの状態です。capture08ここから下へスクロールしていくと、「Security Status」という項目があります。ここでは、未設定の項目が優先度の高い順に並んでいます。

capture10各項目の右側に「Fix it」と書かれたボタンを押すとその項目の設定画面に移動します。

現在の設定状況が一目で分かるので、設定漏れなどを発見しやすく管理が非常に楽です。

それでは、各設定項目をみていきましょう。

まず、上部にある「Settings」タブを選択します。

capture11ここで、自分の環境に合わせて各種設定を行っていきます。

では、各項目の簡単な説明を上から順にしたいと思います。

※各英文をgoogleで翻訳して自分なりに解釈して書いていますので、間違った解釈をしている部分があるかもしれませんので、もし発見した時はコメントなどで教えてください。

「Don’t Lock yourself Out」

テスト中に誤って自分をロックアウトしないように、今の自分のIPアドレスをホワイトリストに登録しておきます。有効期限は24時間です。

「Go to [ドロップダウンメニュー]」

ここでは、ドロップダウンメニューから設定したい項目にジャンプすることができます。

「Global Settings」

・Write to Files

iThemesセキュリティのWP-config.phpファイルと.htaccessへの書き込みを許可するか。許可する場合はチェック入れて、許可しない場合はチェックを外す。チェックを外すと自分でファイルへの書き込みを行う必要があるので、チェックを入れた方が便利。

・Notification Email

セキュリティに関する通知を送信する電子メールアドレスを設定。1行に1つのアドレス。

・Backup Delivery Email

データベースのバックアップをメールで受信する設定にした場合の送信先アドレス。1行に1つのアドレス。

・Host Lockout Message

ホストがロックアウトされたときに表示されるメッセージ。

・User Lockout Message

自分のアカウントがロックアウトされたときに表示されるメッセージ。

・Blacklist Repeat Offender

下記のロックアウトの数に達した時、禁止ユーザー ブラックリストに追加するか。

・Blacklist Threshold

下の「Blacklist Lookback Period」に設定された日数の間に指定回数以上ロックアウトされたIPを永久的にアクセス禁止にする。

・Blacklist Lookback Period

上の指定回数を満たす日数を設定。

・Lockout Period

ロックアウト時間を設定。

・Lockout White List

「Add my current IP to Whitelist」で現在のIPアドレスをホワイトリストに追加。また、ホワイトリストに登録するIPアドレスはIPv4標準形式である必要があります。   (つまり、###。###。###。###または###。###。###。###/##)。

ワイルドカード(*)またはネットマスクはIPアドレスの範囲を指定することが許可されています。

ワイルドカード(*)を使用する場合は、IPフィールドに、右端の数字で始まる必要があります。例###。###。###。*および###のために。###。*。*許さなく###されている。###。*は###ではありません。

1行につき1 IPアドレスの範囲を入力します。

・Email Lockout Notifications

ロックアウト電子メール通知

・Log Type

イベントログの維持方法を設定。

・Days to Keep Database Logs

「Log Type」でデータベースにした場合のログ保存日数

・Path to Log Files

「Log Type」でファイルにした場合のログファイルの保存先パス(ファイルサイズ10MBまで)

・Allow Data Tracking

このプラグインが使用状況を匿名データで追跡できるようにするか。

・Disable File Locking

ファイルロックを無効にする。

「404 Detection」

存在しないページへ大量にアクセスしようとしているユーザーを見ます。 短時間での大量な404エラーは、おそらく脆弱性をスキャンしていると思われるので、それらをロックアウトします。すべてのエラーは、 \”View Logs\”ページに記録されます。

「Global Settings」で、この機能のしきい値を設定することができます。

「Away Mode」

指定した時間帯以外のログインを無効にする。

「Banned Users」

アクセス禁止ユーザーの管理。

・Default Blacklist

HackRepair.comのブラックリスト機能を有効にします。

・Ban Users

禁止ユーザーに関するリストのカスタマイズができます。

「Brute Force Protection」

ブルートフォース攻撃に関する設定。

・Brute Force Protection

ブルートフォース攻撃からの保護を有効化

・Max Login Attempts Per Host

ホスト単位でのログイン試行回数の設定。

・Max Login Attempts Per User

ユーザー単位でのログイン試行回数の設定。

・Minutes to Remember Bad Login (check period)

試行回数を超えたユーザーのログイン拒否時間の設定。

・Automatically ban “admin” user

「管理者」のユーザー名を使用してログインしようとするホストをすぐに禁止する。

「Database Backups」

データベースのバックアップに関する設定。

・Backup Full Database

データベース内のWordPressサイトの一部でないテーブルもすべてバックアップ。

・Backup Method

バックアップ方法を指定。ローカルに保存するかメール送信するか、またはその両方。

・Backup Location

バックアップファイルのローカル保存場所を指定。

・Backups to Retain

ディスクに保存されるバックアップファイル数の上限を設定。

・Compress Backup Files

バックアップファイルをZip形式での圧縮をするか。

・Exclude Tables

バックアップ除外テーブルの指定。除外したいテーブルはExcluded Tablesへ。

・Schedule Database Backups

スケジュールバックアップの有効化。

・Backup Interval

バックアップ間隔の指定。

「File Change Detection」

変更が加えられたファイルを検出。(ローカルバックアップファイルや管理者がFTP等で加えたファイル変更も検出されます。)

・File Change Detection

ファイル変更の検出を有効にする

・Split File Scanning

ファイルの分割スキャンによりサーバー負荷の軽減。

・Include/Exclude Files and Folders

下の「Files and Folders List」で指定した除外ファイルを含めるかどうか。

・Files and Folders List

除外ファイルの設定。

・Ignore File Types

スキャンを無視するファイルタイプ。

画像などのファイルが攻撃対象となることは非常にまれであり、既知のWordPress攻撃ほぼすべてがPHP、JSおよびその他のテキストファイルが対象となります。

・Email File Change Notifications

グローバル設定で設定したメールアドレスへ通知が送信されます。

・Display file change admin warning

WordPressダッシュボードでの通知設定。上記のメール通知とダッシュボードでの通知の両方を無効にすると管理者への通知手段がなくなるので注意。

「Hide Login Area」

ログインページなどのバックエンドを自動攻撃から発見しにくいようにする。

※利用中のサーバーの種類によっては正しく動作しない場合があります。

・Hide Backend

バックエンドの非表示機能を有効にします。

・Login Slug

ログインページのURLをデフォルトから変更する。

・Enable Theme Compatibility

テーマの互換性を有効にします。WP-adminとするにはログインしていないながら、行くときに、特に、非表示のバックエンドを使用しているとき、あなたのテーマの中でエラーが表示される場合、それらを修正するために、これをオンにします。(google翻訳そのまま)

・Theme Compatibility Slug

スラグは、テーマの互換モードが有効になっているときに人々をリダイレクトする(ちょうどそれがあなたのサイトに存在しないことを確認してください)​​。(google翻訳そのまま)

・Custom Login Action

WordPressは、多くのログインとログアウトの機能を処理するために”アクション”変数を使用しています。デフォルトでは、このプラグインは、通常のものが、(そのような民間のポストからログアウトなど)をカスタムアクションを利用することができるいくつかのプラグインやテーマを扱うことができます。カスタムアクションが必要な場合はここに入力してください。(google翻訳そのまま)

「Malware Scanning」

・Enable Malware Scanning

マルウェアスキャンを有効にします。

利用するにはVirusTotal.comよりAPIキーの取得が必要です。

「Secure Socket Layers(SSL)」

WordPressでSSLを利用できるようにします。

・Front End SSL Mode

フロントエンドのための安全なSSL接続(あなたのサイトのパブリック部)を有効にします。 「コンテンツ数」でこれをオンに、フロントエンドのSSL制御が無効になります。このオフにすると、選択したページやブログ記事でSSLをオンにすることができます(パブリッシュ設定の近く)のすべての投稿やページの編集ページでチェックボックスを配置し、うあなたはそれを使用する本当に良い理由がない限り、「全サイト」とは、SSLを使用するようにサイト全体を強制的に選択する(推奨されません)(google翻訳そのまま)

・SSL for Login

すべてのログインに対してSSLで接続。

・SSL for Dashboard

ダッシュボードへのログインに対してSSLで接続。

「Strong passwords」

強力なパスワードの強制設定。

・Strong Passwords

強力なパスワードの強制を有効にします。
・Select Role for Strong Passwords
強力なパスワードを強制する範囲。

さらにWordPressサイトのセキュリティを強化するために利用することができる高度な設定。

「System Tweaks」

・System Files

readme.html, readme.txt, wp-config.php, install.php, wp-includes, and .htaccessなどのシステムファイルのプロテクト。

・Directory Browsing

ディレクトリのインデックス表示を無効にする。(サーバーによってはサイトの表示がされなくなるので注意)

・Request Methods

リクエストメソッドのフィルタリング。トレースでヒットをフィルタリング、削除、またはリクエストメソッドを追跡します。

・Suspicious Query Strings

URL内の疑わしいクエリ文字列をフィルタリング

・Non-English Characters

英語以外の文字をフィルタリングクエリ文字列から、英語以外の文字を除外する。日本語を使っていてサイトが正しく機能しない場合は「Suspicious Query Strings」が有効になっている事を確認し無効化。

・Long URL Strings

URLで送信できる文字数を制限します。ハッカーは頻繁にあなたのデータベースに情報を注入しようとする長いURLを利用しています。

・File Writing Permissions

WP-config.phpファイルと.htaccessファイルにスクリプトから書き込むことができないようにします。(場合によってはプラグインなどが上手く機能しない場合があります。)

・Uploads

アップロードディレクトリ内のPHPの実行を無効にします。悪意のあるスクリプトのアップロードを防ぐことができます。

「WordPress Tweaks」

・Generator Meta Tag

サイトヘッダのmetaタグからWordPressのバージョン情報を削除します。これにより攻撃者に安易にバージョンを知られる事を防止します。

・Windows Live Writer Header

Windows Liveのライターヘッダーを削除します。

・EditURI Header

RSDヘッダーを削除します。

RSD(実際に簡単なディスカバリー)ヘッダーを削除します。あなたがそのようなFlickrのような外部のXML-RPCサービスであなたのブログを統合しない場合、「RSD」機能はほとんど役に立たないあなたにある。(google翻訳そのまま)

・Comment Spam

コメントスパムを削減リファラーまたは識別されたユーザーエージェントなしのボットからのコメントを拒否することにより、コメントスパムを削減します。

・Display Random Version

ランダムバージョンを表示WordPressのバージョンが表示されなければならない場合、それはランダムなWordPressのバージョンが表示され、可能な限りWordPressのバージョンを完全に削除します。

・File Editor

ファイルエディタを無効にする。

プラグインやテーマのファイルエディタを無効にします。この機能をアクティブにした場合、WordPress以外のツールを使用してファイルを編集する必要があります。

・XML-RPC

XML-RPCを無効にする。

Off = MLRPCは完全に有効になっており、通常通りに機能します。

Only Disable Trackbacks/Pingbacks = トラックバック/ピンバック機能を経由してサービス拒否攻撃を受けやすくなることはありません。その他のXMLRPCの機能は通常どおりに動作します。JetpackまたはWordPressのモバイルアプリなどの機能が必要な場合は、これを選ぶ。

Completely Disable XMLRPC = 最も安全でXML-RPCを完全に無効にします。XMLRPCは完全にあなたのウェブサーバでは無効になります。XML-RPCを必要とするような機能を防ぐことができます。

・Replace jQuery With a Safe Version

jQueryの安全なバージョンへの変更と現在のバージョンの表示。

・Login Error Messages

ログインエラーメッセージの表示を無効にする

・Force Unique Nickname

強制的に固有のユーザーニックネームを選択させる。

ボットや攻撃を防ぐ新しいアカウントを作成する際に固有のニックネームを選択するようユーザーに強制します。

・Disable Extra User Archives

自分の投稿回数が0であれば、ユーザーの著者ページを無効にします。

カスタム投稿タイプの設定方法

独自の投稿を新たに追加したいときに重宝する機能。

プラグインだと「Custom Post Type UI」あたりの情報が多いかんじ。

自分で設定する場合は functions.php に下記サンプルコードを記述すると管理画面の投稿の下に新たに「カスタム投稿」が追加される。

function define_custom_post(){
    register_post_type('post_type_name',array(
        'public'=>true,
        'labels'=>array('name'=>'カスタム投稿'),
        'menu_position' =>7,
        'has_archive' => true,
        'show_in_nav_menus' => true,
        'supports' => array('title','editor','thumbnail','custom-fields','excerpt','author','trackbacks','comments','revisions','page-attributes'),
    ));
    flush_rewrite_rules( false );//404エラーを防ぐ
}
add_action( 'after_setup_theme', 'define_custom_post');

関数リファレンスはこちら↓

WordPress Codex 日本語版

WordPress私的マニュアル(個人的に見やすくていい)

表示方法は下記サンプルコードを表示したい部分に記述

〈トップページなどに一覧表示したい時〉※新着順10件出力※

$getPost = get_posts(array('post_type' => 'post_type_name', 'posts_per_page' =>10));
foreach ($getPost as $post):
setup_postdata($post);
echo get_the_date();//投稿日を取得(the_date()では同じ日に複数の記事がある場合は、最初の記事とともに一度出力のためここではget_the_date()を使用)
the_title();//タイトルを取得
the_post_thumbnail('medium');//アイキャッチを取得
the_permalink();//リンクを取得
endforeach;

 

WordPressのセキュリティー対策はこれで決まり! iThemes Security のインストールと初期設定方法

このプラグインは本当に高機能でWordPressに必要なセキュリティ対策のほとんどをカバーしてくれます。ですが、ちょっとわかりずらいので簡単に解説していきたいと思います。

まず、このプラグインの主な機能は

  • ログイン画面へのブルートフォースアタック対策
  • IPアドレス指定のロックアウト
  • システムファイルの保護
  • 変更が加えられたファイルの検出
  • 時間を指定して時間外の不要なログインを無効
  • マルウェアスキャン機能
  • WordPressでのSSLの有効化
  • 協力なパスワードの強制設定
  • XML-RPCの無効化
  • データベースのバックアップ機能

などなど。

これを入れれば完璧とまではいかないかもしれませんが、一般的なWordPressへの攻撃な大体防げるのではないでしょうか。

また、この手の設定をWordPressを入れるたびに自分でコツコツ設定するよりは遥かに楽ですよね。

では、実際に触ってみましょう。

プラグインのインストール

1.管理画面のプラグインを開き「新規追加」をクリック。

capture012.プラグインの検索ボックスに「iThemes Security」と入力しプラグインの検索をクリック。

capture023.検索結果で「iThemes Security (formerly Better WP Security)」という項目が表示されるので(この時は最上位)、「いますぐインストール」をクリック。

capture034.インストール処理が完了したら、「プラグインを有効化」をクリック。

capture045.プラグインが有効になり、プラグインの画面上部に青いボタンが表示されます。これの「Secure Your Site Now」をクリック。

capture056.画像のようなウィンドウが現れます。

capture06それでは順に操作していきます。

「1.Back up your site」の「Make a backup」をクリックしてバックアップを作成します。

「2.Allow File Updates」の「Allow file updates」をクリックして、プラグインのWP-config.phpや.htaccessファイルの編集を可能にします。

「3.Secure Your Site」の「One-Click Secure」をクリックして、デフォルトの設定を有効にします。

最後の「4.Help Us Improve」は、「絶対にあなたを識別できる情報は収集しないので、このプラグインが匿名データを収集することを認めプラグインの改善に協力して。」という部分です。自分は今回クリックはしませんでした。

最後に右上の「×」をクリックします。

capture07これで一通りインストール作業が終わりました。

「iThemes Security」のダッシュボードが表示されます。

capture08

では、次回からは各種設定項目の説明などをしていきたいと思います。↓

iThemes Security の設定解説(Settings編)

パーマリンク設定変更時のサーバーエラー対処法

パーマリンク設定の変更後、ページを表示しようとした際に、サーバーエラーが返され場合の対処方法。

考えられる原因は

  • サーバー側(apache)の「mod_rewrite」モジュールが無効になっている。
  • WordPressのフォルダ内にある.htaccessへの書き込み権限がない。

まず、最初の「mod_rewrite」モジュールが無効になっている場合。そもそも、パーマリンクをデフォルトから変更(静的URLに)すると、サーバー側の「mod_rewrite」と言うモジュールを使って、アクセスのあった静的URLを本来の動的URLに書き換える処理を行います。

そのため、「mod_rewrite」が無効になっていると書き換えができずサーバーエラーとなります。

この設定を有効にするにはapacheの設定ファイル(httpd.conf)内

#LoadModule rewrite_module modules/mod_rewrite.so

の先頭の#を取ると有効になります。

 

次に、WordPressフォルダ内(wp-admin等があるディレクリー)にある「.htaccess」にWordPress自体が変更を書き込めていない状態だとサーバーエラーになります。

この場合は、パーマリンク設定変更後ページ上部に「.htaccess」への変更を手動で書き込むようなメッセージが表示され、ページ下部に「.htaccess」へ書き込みコードが表示されているので、SFTPなどで「.htaccess」へコピーペーストする。

また、WordPressが自動で変更できるように「.htaccess」のパーミッションを変更する場合はセキュリティに関わるので注意が必要。

TinyMCE Advancedを入れていて突然ビジュアルエディタの表示が消えた時の対処法

WordPressプラグイン「TinyMCE Advanced」を入れたサイトで起きた不具合の対処法メモ。

投稿と固定ページどちらともビジュアルエディタのメニューとテキストが表示されない状態が発生。

スクリーンショット 2014-01-30 14.16.05

赤枠で囲った部分。本来ならメニューアイコンや記事のテキストが表示されているはずなのにない。

この問題の原因は分かりませんが、このままではまずいのでせめてプラグインインストール前の状態に戻す。

まず、管理画面からプラグインを停止及び削除しサーバーのWordPressディレクトリ内にあるプラグインフォルダに残っているTinyMCE Advancedフォルダとwp-includesフォルダを削除。

WordPress公式サイトなどから、プレーンなWordPressをダウンロードし、その中のwp-includesを先程削除した場所にコピーする。

メニュー表示はノーマルに戻るが、とりあえず表示はされるので作業はできる。

ちゃんとした対処法や原因が分かる方、コメントください。

 

WordPressに入れておくと便利なプラグイン

Chap Secure Login

ログイン時のパスワードをSSL無しで暗号化してくれるプラグイン。SSLが利用できない状況で、ログインパスワードを暗号化した場合に有効です。また、ユーザー名は暗号化されないで転送されます。パスワードは複雑なMD5アルゴリズムでハッシュされます。またゼロ設定のプラグインであるため、コンフィグ変更を行う必要もなし。

AntiVirus

脆弱性、スパムチェックをしてくれるプラグイン。ファイルをスキャンし、脆弱性がないか、スパムが仕込まれていないかをチェックする。

iThemes Security(旧 Better WP Security)

wordpressの基本的なセキュリティーの設定がほとんどこれ1つでできちゃう便利プラグイン。環境によってはサイトが表示されなくなったり、ログインできなくなったりするのでバックアップは必須です。注意する設定は以下です。

これと

スクリーンショット 2014-01-30 10.26.53

これと

スクリーンショット 2014-01-30 10.25.20

これ

スクリーンショット 2014-01-30 10.24.10

おそらく、.htaccessをゴニョゴニョして各設定をしてるんだと。

iThemes Securityの詳しい説明はこちらへ

WordPress HTTPS

これは、管理画面をSSL通信に対応させる時に使うと便利なプラグイン。

PS Disable Auto Formatting

WordPressが自動整形&タグ除去を回避するためのプラグイン。投稿にHTMLタグとか入れる時にあると便利。

PS Auto Sitemap

日本語に対応していて、WordPress初心者でも簡単にサイトマップを導入できる、便利なプラグイン。埋もれてしまった記事でも見つけやすくなるため、サイト内各ページへのアクセシビリティの向上につながります。また、検索エンジンロボットが、サイト内の全記事へ巡回するのを助ける効果も生まれます。

Google XML Sitemaps

クローラー向けのXML形式サイトマップを自動生成してくれるプラグイン。

Google Analytics

google analytics設定。google analyticsのコードを入力するだけのとてもシンプルなプラグイン。余計な設定などがなく個人的に好きで使ってます。

WP SlimStat

単体でWordPressにアクセス解析を導入でき、基本的な解析に必要なデータは取得できる。

WP SlimStat Dashboard Widgets

WP SlimStat の拡張プラグイン。これを導入する事によってダッシュボードに解析結果を表示することが可能。

TinyMCE Advanced

ビジュアルエディタカスタマイズプラグイン。標準ではできなかった細かい事ができる様になります。私は主に表を作るときぐらいですかね。

あと、バグなのか分かりませんが何かのタイミングで入力したテキストのカラーが白になり一瞬消えた!?とか、ビジュアルエディタのメニューが無くなった!!

と焦ったことがありますが、wp-includesの入れ替えでとりあえずその場は凌げたのでそのやり方は下記リンクへ

対処法はこちら

他にいい方法があるかもしれませんが。。。

Maintenance Mode

サイトアクセス時にメンテナンス画面を表示してくれるプラグイン。プラグインを有効にすると管理画面に設定が表示されメンテナンス画面表示非表示の設定やコメントの設定がきるが、プラグインの有効化と同時にサイト内にPRが表示されるので、メンテナンス時以外はプラグインを無効化する方がいいかも。

Image Widget

ウィジェットエリアで画像表示を簡単にできるプラグイン。ウィジェットの設定画面上で画像のアップロードからリンクの作成まで、ワンストップで実現できるので、メディアからアップロードして画像のURLを調べるとか、FTPでテーマフォルダにアップしてウィジェットにPHPを書いたり(プラグイン併用)とか、そんな作業から解放されます。

Trust Form

簡単にフォーム作成ができるメジャープラグイン。WordPressを使ってる人なら誰もが知っていると思うが、とっても簡単にお問い合わせフォームなどをつくることができます。

wp-jquery-lightbox

WordPressのギャラリーにスライドやLightBox効果をつけてくれるプラグイン。

Intuitive Custom Post Order

管理画面の投稿一覧で投稿の順番をマウスドラッグで簡単に変更できるプラグイン。

Simple Page Ordering

管理画面の固定ページ一覧で固定ページの順番をマウスドラッグで簡単に変更できるプラグイン。