Warning: Declaration of FEE_Field_Terms::wrap($content, $taxonomy, $before, $sep, $after) should be compatible with FEE_Field_Post::wrap($content, $post_id = 0) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/post.php on line 0

Warning: Declaration of FEE_Field_Tags::wrap($content, $before, $sep, $after) should be compatible with FEE_Field_Terms::wrap($content, $taxonomy, $before, $sep, $after) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/post.php on line 0

Warning: Declaration of FEE_Field_Category::wrap($content, $sep, $parents) should be compatible with FEE_Field_Terms::wrap($content, $taxonomy, $before, $sep, $after) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/post.php on line 0

Warning: Declaration of FEE_Field_Post_Thumbnail::wrap($html, $post_id, $post_thumbnail_id, $size) should be compatible with FEE_Field_Post::wrap($content, $post_id = 0) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/post.php on line 0

Warning: Declaration of FEE_Field_Post_Meta::wrap($data, $post_id, $key, $ui, $single) should be compatible with FEE_Field_Post::wrap($content, $post_id = 0) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/post.php on line 0

Warning: Declaration of FEE_Field_Widget::wrap($params) should be compatible with FEE_Field_Base::wrap($content, $data) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/widget.php on line 0

Warning: Declaration of FEE_Field_Comment::wrap($content) should be compatible with FEE_Field_Base::wrap($content, $data) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/other.php on line 0

Warning: Declaration of FEE_Field_Term_Field::wrap($content, $term_id, $taxonomy) should be compatible with FEE_Field_Base::wrap($content, $data) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/other.php on line 0

Warning: Declaration of FEE_Field_Single_Title::wrap($title) should be compatible with FEE_Field_Term_Field::wrap($content, $term_id, $taxonomy) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/other.php on line 0

Warning: Declaration of FEE_Field_Option::wrap($content, $key, $ui) should be compatible with FEE_Field_Base::wrap($content, $data) in /home/twfs/serverkurabe.com/public_html/blog/wp-content/plugins/front-end-editor/php/fields/other.php on line 0
Sabakura Blog - Part 7

記事を頻繁に修正する人には、WordPressプラグイン「Front-end Editor」がおすすめ!

ブログやサイトの記事を作成したあとで、あとから細かな修正や編集を行いたくなることはよくあると思います。その際に、いちいち別ページの編集画面に遷移して、修正して、また確認して……というプロセスを何度も踏むのはとても面倒です。

そこでおすすめしたいのが、WordPressプラグインの「Front-end Editor(フロントエンド・エディタ)」です。このプラグインを導入すると、画面遷移なしでそのまま記事を直接編集できるようになります。

Front-end Editorのインストール

とくに難しい作業はなく、一般的なプラグインのインストール手順で大丈夫です。

  1. プラグイン配布ページである「Front-end Editor | scribu」に行きます。
  2. 右サイドバーの「Download」ボタンから、プラグインをダウンロードします。
  3. ダウンロードした「front-end-editor.2.2.zip」を解凍します。
  4. 解凍したフォルダ内にある「front-end-editor」をWordPressの「plugin」フォルダにFTPでアップロードします。
  5. WordPressにログインし、ダッシュボードを表示します。
  6. 「プラグイン」の項目から、「フロントエンド・エディタ」を有効化します。

Front-end Editorの設定と使い方

Front-end Editorの使い方についてですが、Front-end EditorにはHTMLソースを編集するモードと、HTMLタグやCSSによる修飾がなされた本文を直接編集できるWYSIWYGモードの二通りがあります。
このうち、初期設定ではWYSIWYGモードが有効になっています。

WYSIWYGモード時の使い方

  1. 記事の本文中にマウスポインタを合わせると、左側に「Edit」ボタンが表示されます。
    フロントエンドエディタ編集ボタン
  2. 「Edit」をクリックすると、編集用のWYSIWYGエディタが表示されます。
    フロントエンドエディタ
  3. 「Format」タブでは、文字の太字、イタリック体、下線、リスト、番号付きリスト…など文字に関する装飾が行えます。
  4. 「Inset」タブでは、画像、テーブル、リンクの挿入が行えます。
  5. またエディタ右上の押しピンボタンをクリックすることで、エディタの位置を固定することができます。(固定しないと画面スクロールにあわせて勝手に移動します)
  6. 「保存」をクリックすると編集内容が保存されます。

WYSIWYGモードの注意点

さてWYSIWYGモードは記事が直接編集できて便利なのですが、実を言うと私はほぼ使っていません。これはなぜかというと、現在のFront-end EditorはHTMLタグしか認識してくれないため、たとえば「<?php」のようなコードがあると、「<」が実体参照の「&lt;」に変更されてしまい、PHP部分が動かなくなってしまいます。

また太字や下線といった基本的な装飾は行えるものの、CSSで特定のclassやIDを付与するといった使い方はできません。そのため結局編集画面に移動することが多くなってしまうので、私は最初からHTML編集モードに切り替えて使っています。

HTML編集モードへの切り替え

  1. WordPressのダッシュボードにログインします。
  2. 「設定」の「フロントエンド・エディタ」をクリックします。
  3. 「Enable the WYSIWYG editor.」のチェックを外します。
  4. 「変更を保存」をクリックします。

HTML編集モード時の使い方

HTML編集モードでも、基本的な使い方はWYSIWYG時と変わりません。ただしエディタは表示されないので、直接テキストエリア内を編集する形になります。

  1. 記事の本文中にマウスポインタを合わせると、左側に「Edit」ボタンが表示されます。
    フロントエンドエディタ編集ボタン
  2. 「Edit」をクリックすると、編集用のテキストエリアが表示されます。
    フロントエンドエディタHTML編集時
  3. 「保存」をクリックすると編集内容が保存されます。

まとめ

私自身は使ってはいませんが、記事内でこまかなclassやIDをつけたりしない、PHPコードなどを本文中に入れないという方には、WYSIWYGモードもとても便利だと思います。

どちらのモードを使うにしても、画面遷移なしで編集できるというのは非常に快適ですので、しょっちゅう記事を修正するという方はぜひ「Front-end Editor」を導入してみてください。

Ferret RCからの乗り換え先についてまとめてみた

これまでβ版として無料提供されていた検索順位チェックツール「FerretRC」ですが、2012年1月10日についに正式版が公開され、これに伴って無料版(FREE版)には機能制限がかかりました。

具体的には順位チェックできるサイトの数は5つまで、調べられるキーワードは30個までと、かなり厳しい機能制限になっています。
ちなみに有料版のPROではサイト数・キーワード数ともに無制限に追加できます。ただし年額8800円の利用料金が必要になります。

現在のところは、FerretRC起動時に表示される「アップデートしますか?」に「いいえ」と答えておけば以前の機能そのままに使えていますが、これも次にYahooやGoogleのシステムに変更がかかればたぶん順位チェックができなくなります。

というわけで、自分自身もFerretRCからの乗換えを検討しなければならなくなったので、おすすめの乗り換え先などまとめてみました。

GRCへの乗り換え

一番に思いつくのが有名な順位チェックツール「GRC」への乗り換えです。

GRC

もともとGRCはFerretRCに比べて、軽快な動作に定評があり、SEO会社の多くがこのGRCを順位チェックに利用しています。またGRCでは、たんに何位に自分のサイトが入ったかだけでなく、「その順位に入ったのはどのページか」まで含めてチェックしてくれます。

GRCもURLとキーワードが無制限に追加できるビジネスライセンスは年額9600円と、FerretRCの年額8800円とほぼ同額になっており、費用面ではどちらもそう変わりません。

ただGRCの唯一の難点は、モバイルの順位チェックができないことです(GRCモバイルという別ツールのライセンス購入をすればできますが)。スマートフォンが普及したといってもまだまだガラケー市場も残っており、モバイル順位もあわせてチェックしたい人にはあまりおすすめできません。

FerretRCの有料版へ移行

モバイル順位のチェックも1ライセンスでまとめて行いたいという方であれば、FerretRCの有料版への移行も有力な選択肢です。

GRCでPCとモバイルを両方チェックするとなると、9600円×2=19200円のコストが毎年かかりますが、FerretRCなら8800円のみですみます。

GRCに比べると動作が重く不安定なのは有料版でもあまり変わらないようですが、携帯SEOを重視する方にはおすすめです。

無料ツールへの乗り換え

検索順位チェックにお金をかけたくないという場合、FerretRC以外の無料ツールを新たに探すことになります。比較的有名なものを以下に紹介しておきます。

IKKO

IKKOは無料ツールではありますが、サイト数100件、キーワード数500件まで追加できます。これだけ利用できれば、主要なキーワードチェックには十分事足りるのではないかと思います。

トップサーチ1000(無料版)

トップサーチ1000の方は、キーワード数無制限で順位チェックが可能です。ただ、配布元サイトに「情報起業家を目指す」とか書かれていて、個人的にはちょっと利用に抵抗感があります…。

Ranking Checker

20キーワードまでとかなり数は制限されているのですが、指定しておけばサービス側で自動で毎日順位チェックを行ってくれるので便利です。また運営元の株式会社レントラックスはクローズド型ASPとしてある程度有名なので、無料ツールのなかでは比較的安心して利用できます。

検索順位チェック自体をやめる

最後に、検索順位チェック自体をやめてしまうという選択肢もあります。おそらくFerretRCを使っていたのは個人の方が多いと思います。(SEO業者ならGRCもしくは自社ツールを使っていると思うので)

しかし現在個人でできる小手先のSEO対策というものは減ってきており、コンテンツをコツコツと真面目に積み上げるという正攻法がもっとも効果を出しやすくなっています。そのため、順位の上下に一喜一憂しながら効果の薄いリンク施策をするぐらいなら、いっそ検索順位チェック自体をやめてしまうというのも手だと思います。

大まかな人気キーワードはGoogleWebmasterToolsやGoogleAnalyticsで分かるので、それ以上の順位追求はしないでおくという方法です。

まとめ

最後の方は極端な意見も書いてしまいましたが、現状でいきなり順位チェックをやめるわけにいかない方も多いと思います。というわけで、結論をまとめておきます。

  • ごくごく簡単な順位チェックでいい → Ranking Checker
  • モバイルの順位チェックも重要 → FerretRC PRO
  • PCのみでいいので詳細に順位チェックしたい →GRC

上記ニーズにあわせて、ぜひ自分にあった乗り換え先を見つけてください。

「さくらのVPS」導入解説 その10:iptablesの設定

この記事は「さくらのVPS導入解説 その9」の続きです。

今回はiptablesによるファイアウォールの設定を行います。これでVPSを利用する前提としてのセキュリティ設定が一通り完了します。

ファイアウォールとは

ファイアウォールとは、不正アクセスを防ぐための技術の総称です。
ファイアウォールにも幾つかの種類がありますが、もっとも一般的なのが、アクセス(パケット)の通信元・通信先や通信経路を調べ、それが怪しいものである場合に通信を遮断するものです。「パケットフィルタリング」とも呼ばれます。

iptablesとは

Linuxでは、このパケットフィルタリングを設定するために「iptables」というコマンドが用意されています。今回はこのiptablesを使って、パケットフィルタリング型ファイアウォールを設定します。

iptablesの設定

iptablesの設定は量が多くなるため、vi/vimの操作になれていない場合は、ローカルでテキストエディタで編集したあとに貼り付けするのが良いと思います。

以下が、iptablesの設定内容です。
さくらのVPS を使いはじめる 3 — iptables を設定する – アカベコマイリを参考にさせていただきました。

*filter
:INPUT   ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT  ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]

-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# SSH, HTTP, FTP1, FTP2, MySQL
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 10022 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80    -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 20    -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21    -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306  -j ACCEPT

-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited

COMMIT

iptablesの内容について

とにかく設定するだけであれば上記を貼り付けですみますが、ここではiptablesによってどのようなパケットフィルタリングを行っているか理解するために少し解説します。
なおこの解説部分の作成にあたっては、iptablesの設定 – サーバの実験室を参考にさせていただきました。

*filter

iptablesでは、設定は一覧テーブル(表)にまとめられます。
iptablesでは3種のテーブルが用意されていますが、パケットフィルタリングを行うためのテーブルがこの「filter」です。つまり、ここではfilterテーブルの使用を宣言しています。(なお、この記述を省略した場合でも、デフォルトではfilterテーブルが利用されます)

:INPUT   ACCEPT [0:0]

INPUT(インプット)つまり、このホストに対して入ってくるパケットを通過させるか遮断させるかを設定します。ここでは「ACCEPT」を設定して、いったんすべてのパケットを許可しています。
また[0:0]は「パケットカウンタ:バイトカウンタ」を表しています。今回は[0:0]にすることで、カウンタをそれぞれ0に初期化しておきます。

:FORWARD ACCEPT [0:0]

INPUT同様に、FORWARDのパケットに対する設定です。
FORWARDでは、このホストを経由するパケットに対しての設定を行います。

:OUTPUT  ACCEPT [0:0]

OUTPUTでは、このホストから送られるパケットに対する設定を行います。
なお、これらINPUT、FORWARD、OUTPUTは正確には「チェイン」と呼ばれます。(INPUTチェイン、のように呼びます)

:RH-Firewall-1-INPUT - [0:0]

前述のINPUT、FORWARD、OUTPUTとは別に、ユーザー定義のチェインを定めます。
このユーザー定義チェインで、細かいパケットフィルタリングの設定を行います。

-A INPUT -j RH-Firewall-1-INPUT

「-A」は新しいルールの追加を表します。半角スペースに続けてチェイン名を入力することで、どのチェインにルールを追加するか示します。ここではINPUTチェインに対して、新しいルールを追加しています。

また「-j」はjumpの略で、あるチェインを別チェインにジャンプさせる場合に使います。
ここではINPUTチェインを、ユーザー定義チェインにジャンプさせています。これにより、INPUTチェインで入ってくるパケットが、ユーザー定義チェインでチェックされるようになります。

-A FORWARD -j RH-Firewall-1-INPUT

同様にしてFORWARDチェインも、ユーザー定義チェインにジャンプさせてチェックするように設定しています。

-A RH-Firewall-1-INPUT -i lo -j ACCEPT

「lo」は「ループバック」と呼ばれる、自分自身への通信(INPUTとFORWARDが同じ)を指します。ループバックの場合は「ACCEPT」にて通信を許可します。

-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT

「icmp」とは通信にエラーが生じた際にエラーメッセージを送るプロトコルです。ICMPの場合は「ACCEPT」にて通信を許可します。

-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT

「-p」に続けて番号を入力することで、プロトコルを指定して通信を制御できます。
上記では50(ESP)と51(AH)を許可していますが、この二つはどちらもパケットが改ざんされていないかをチェックするためのプロトコルです。
参考:IPプロトコル番号一覧 – ネットワークエンジニアとして

-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT

ポート「5353」はマルチキャストDNSというプロセスです。これは専用のアドレス「224.0.0.251」にパケットを投げて応答をもらうことで、わざわざIPアドレスとホスト名の変換を行わなくてもマシンを認識できる仕組みです。

-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT

ポート「631」は印刷データの送受信のためのプロトコルです。これも「ACCEPT」で許可しておきます。

-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

「-m」はiptablesの拡張モジュールを使うための設定です。上記の例では「state」と続けて入力することで、stateモジュールの利用を可能にしています。

この「state」はパケットの状態を指定するためのモジュールです。今回は「ESTABLISHED(過去に接続されたことがある)」または「RELATED(既存の接続に関係している)」と見なされた場合に、接続を許可しています。
※なお、この一行がないと通信を行うことが出来なくなりますので注意してください。

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 10022 -j ACCEPT

こちらも「state」を使ったルールです。
パケットの状態が「New」である場合でも、SSH接続にあたるポートであれば、接続を許可します。

※ここで「10022」を指定しているのは、前回の記事でSSHのポート番号を10022にしたためです。もしポート番号を変更していない場合は「22」、また任意で別の番号にした場合はその番号を入力してください。

また「-m tcp」でtcpモジュールを有効にした後に、「-p tcp」でプロトコルがtcpの場合に限定しています。

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

同様にして「80(HTTP)」「20・21(FTP)」「25(SMTP)」の接続を許可します。
ここまでで、許可したい接続のルールが終わりました。

-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited

すでに接続を許可したいパケットのルールは読み込まれているため、この行を読み込むのは、接続許可のルールに一致しなかったパケットになります。それらのパケットはすべて「REJECT(エラーパケット送信)」します。

「–reject–with」はエラーパケットの種類を指定するためのもので、今回は「icmp-host-prohibited(ホストによって禁止されました)」というメッセージを送るように指定しています。

COMMIT

最後にこれらのルールをコミット(登録)します。

iptablesを設定する

それでは作成したiptablesの設定をVPSに登録します。

  1. 以下のコマンドを入力し、iptablesの設定ファイルを開きます(作成します)。
    $ sudo vi /etc/sysconfig/iptables
    
    • Poderosaのステータスラインに[New File]と表示されていると思いますが、これはiptablesファイルは新規作成されるファイルのためです。
  2. テキストエディタからコピーしたiptablesの設定を貼り付けします。
    • Poderosaのメニューバー「編集」→「貼り付け」で貼り付けできます。
    • 行頭・行末に空白スペースが入ってはいけないので注意してください。また最終行での改行も行わないようにしてください。
  3. 「:wq」を入力して上書き保存と同時にviを終了します。
    :wq
    
  4. 以下のコマンドを入力し、iptablesを再起動します。
    $ sudo /etc/rc.d/init.d/iptables restart
    
  5. 「Applying iptables firewall rules: [ OK ]」と出たらOKです。
  6. 以下のコマンドを入力することで、現在のiptablesの状態を確認できます。
    $ sudo /sbin/iptables -L
    

以上でiptablesの設定は完了です。