ConoHaでKUSANAGIを立ち上げてみた

ConoHaでKUSANAGIを利用してサイトを立ち上げてみた。

ConoHa登録と設定

ConoHaにアクセスする。
[お申し込み]から登録する。

個人情報と支払情報を入力するとコントロールパネル画面に移動する。
左上の[サーバ追加]を選択する。

スペックとOS、ルートパスワードを入力して[追加]する。

約1分ほどで起動した。

KUSANAGI初期設定

KUSANAGI の初期設定の通り実施した。
wp.akat.infoというサイト名としている。

login as: root
root@150.95.155.226's password:

     __ ____  _______ ___    _   _____   __________
    / //_/ / / / ___//   |  / | / /   | / ____/  _/
   / ,< / / / /\__ \/ /| | /  |/ / /| |/ / __ / /
  / /| / /_/ /___/ / ___ |/ /|  / ___ / /_/ // /
 /_/ |_\____//____/_/  |_/_/ |_/_/  |_\____/___/

    Version 8.0.0, Powered by Prime Strategy.

[root@150-95-155-226 ~]# yum --enablerepo=remi,remi-php56 update -y
[root@150-95-155-226 ~]# reboot
...
[root@150-95-155-226 ~]# kusanagi init
...
Search or select timezone:  tokyo                                                                                       Asia/Tokyo
...
Applying Location: Asia/Tokyo.
Select your using language.

1 : English
2 : 日本語

q : quit

Which are you using?: 2

You choose: Japanese
Select your keyboard layout.

1 : English
2 : Japanese

q : quit

2

You choose: Japanese
kusanagi user password using in software update.

Changing password for user kusanagi.
New password:kusanagi
BAD PASSWORD: The password contains the user name in some form
Retype new password:kusanagi
passwd: all authentication tokens updated successfully.

Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

Your identification has been saved in /root/kusanagi.pem.
Your public key has been saved in /root/kusanagi.pem.pub.

...
KUSANAGI can choose middlewares.
Please tell me your web server option.
1) NGINX(Default)
2) Apache

Which you using?(1):1

You choose: NGINX
use nginx
Done.
Then, Please tell me your application server option.
1) HHVM(Default)
2) PHP7
3) PHP5

Which you using?(1):1

You choose: HHVM
use hhvm
Done.
Then, Please tell me your ruby version.
1) Ruby2.4

Which you using?(1):1
You choose: Ruby2.4
use ruby24
Done.
Then, Please tell me your Database system.
1) MariaDB(Default)
2) PostgreSQL

Which you using?(1):1
...
Enter MySQL root password. Use [a-zA-Z0-9.!#%+_-] 8 characters minimum.
Re-type MySQL root password.
Password has changed.
...
Do you want to install Mroonga ?: [y/N]y
...
Enter password:password
Enter password:password
...
KUSANAGI initialization completed
Done.

[root@150-95-155-226 ~]# kusanagi provision kusanagi
Target directory is /home/kusanagi/kusanagi.
Choose the installation language of WordPress.
1 : en_US
2 : ja

q : quit

Which do you choose?:  2
You choose: ja

Enter hostname(fqdn) for your website. ex) kusanagi.tokyo
wp.akat.info
Re-type hostname(fqdn) for your website.
wp.akat.info

In order to use Let's Encrypt services, you must agree to Let's Encrypt's Term of Services.
If you agree to this TOS, type your email address; if not, hit enter twice.
TOS of Let's Encrypt : https://letsencrypt.org/repository/
shimizu.r.hiroaki@gmail.com
Re-type mail address.
shimizu.r.hiroaki@gmail.com

Enter the name of your database.
wpakatinfo
Re-type database name you create.
wpakatinfo

Enter user name for database wpakatinfo.
wordpress
Re-type user name for database wpakatinfo
wordpress

Enter password for database user 'wordpress'. USE [a-zA-Z0-9.!#%+_-] 8 characters minimum.
Re-type password for database user 'wordpress'.

...

Enabling auto renewal certificate
Provisioning of kusanagi completed. Access wp.akat.info and install WordPress!
Done.

WordPress初期設定

先ほど設定したURLにアクセスすると、WordPressの初期セットアップが開始される。




WordPressでGoogle Adsenseを有効にする

はまった点を記載する。

2次審査

Adsenseを申し込んだ後、サイト認証のためheadタグに文字を埋め込む必要がある。

以下のサイトを参考に突破した。
グーグルアドセンスの2次審査!「HTMLでタグを探し、その直後に貼り付けます」のやり方は?

広告表示

WordPress 用 AdSense プラグインのサポート終了について
公式プラグインはすでに閉鎖していたため、
Ad Inserter – WordPress Ads Management
というプラグインを利用した。

参考

WordPressに広告を自動挿入するプラグインはAd Inserterがおすすめ
記事中に等間隔で複数広告を差し込むWordPressプラグイン「Ad Inserter」

「ページがモバイルフレンドリーではありません」対策

Googleの検索結果に「ページがモバイルフレンドリーではありません」といった表示がされていた

モバイルフレンドリーテストを実施した結果

[WPtouch Mobile Plugin]をインストールした
モバイル端末で見ると最適化されたデザインのテーマを表示してくれるプラグイン

モバイルからみると、どこかでみたことのあるようなサイトに変身!

参考URL

WordPressサイトをあっという間にモバイルフレンドリーにする無料プラグイン8選

wordpress on Azure

お財布都合でAWSからAzureにサイトを移動させることにした

日本語化

root@vmdepot-debia:/home/shimizu# dpkg-reconfigure locales

2015-12-07_230519

2015-12-07_230536

再度ログインしなおすと、日本語表記になる

root@vmdepot-debia:/home/shimizu# ll
bash: ll: コマンドが見つかりません

時間も変更する

root@vmdepot-debia:/home/shimizu# dpkg-reconfigure tzdata

Current default time zone: 'Asia/Tokyo'
Local time is now:      Mon Dec  7 23:44:06 JST 2015.
Universal Time is now:  Mon Dec  7 14:44:06 UTC 2015.

root@vmdepot-debia:/home/shimizu# date
2015年 12月  7日 月曜日 23:44:07 JST

SSHの設定変更

ポートを22番以外に

root@debian9:/home/shimizu# vi /etc/ssh/sshd_config
...
Port 2022
...

ACL規則を設定する
[Permit]だけ入力すると、それ以外のホストはDenyとなる
2015-12-07_232903

必要(私の好き)なソフトインストール

root@vmdepot-debia:/home/shimizu# apt-get install apt-show-versions lv nginx php5-fpm php5-mysql mariadb-server

いろいろ設定して移行完了

【wordpress】コメント時に画像認証を追加する

概要

Akismet を設定していたためスパムコメントがブログに登録されることはなかったが
スパムを削除する必要があり面倒だったため、コメント時に画像認証を追加することにした

SiteGuard WP Plugin

難しい知識を必要とせず、インストールするだけでWordPressのセキュリティを向上させることができる日本語対応のセキュリティプラグイン
2015-05-04_114507

2015-05-04_114615

2015-05-04_114714

2015-05-04_115656

参考

JP-Secure、日本語対応WordPress用セキュリティプラグインを無償提供開始
http://thinkit.co.jp/news_event/2014/10/28/5371

wordpressサイト移行時に困ったこと

このwordpressサイトをDebianからAmazon Linuxに移行した
トップページが少ししか表示されなかった。。
2014-10-28_202716

[28-Oct-2014 20:26:52.045853] WARNING: pid 4669, fpm_stdio_child_said(), line 167: [pool www] child 4673 said into stderr: "NOTICE: sapi_cgi_log_message(), line 685: PHP message: PHP
 Fatal error:  Call to undefined function mb_strlen() in /var/www/akat.info/tech/htdocs/wp-content/plugins/wp-multibyte-patch/ext/ja/class.php on line 164"
[28-Oct-2014 20:26:52.045892] DEBUG: pid 4669, fpm_event_loop(), line 419: event module triggered 1 events

解決方法

[root@ip-172-32-0-221 ec2-user]# yum install php55-mbstring
[root@ip-172-32-0-221 ec2-user]# /etc/init.d/php-fpm restart
php-fpm-5.5 を停止中:                                      [  OK  ]
php-fpm-5.5 を起動中:                                      [  OK  ]

PingbackDDoS攻撃対策

概要

先日dos対策したが、xmlrpc.phpの脆弱性を狙ったものであったため対策した
これは、WordPressのPingback機能を利用して、WordPressが稼働しているWebサーバにPingback通知を送信する攻撃をしかけ、さらにその先の攻撃対象となるサーバをDDoS状態に陥らせる
※Pingback機能とは、XML-RPCの機能のひとつで、自分のサイトに他サイトへのリンクを張った際、リンク先のサイトへ自動的に通知する機能
※XML-RPCはWordpress Ver.3.5からデフォルトの設定で有効化

195.154.127.19 - - [15/Sep/2014:10:41:44 +0000] "POST /xmlrpc.php HTTP/1.0" 502 568 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"
195.154.127.19 - - [15/Sep/2014:10:41:47 +0000] "POST /xmlrpc.php HTTP/1.0" 502 568 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"
195.154.127.19 - - [15/Sep/2014:10:41:50 +0000] "POST /xmlrpc.php HTTP/1.0" 502 568 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"
195.154.127.19 - - [15/Sep/2014:10:41:51 +0000] "POST /xmlrpc.php HTTP/1.0" 502 568 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"
195.154.127.19 - - [15/Sep/2014:10:41:53 +0000] "POST /xmlrpc.php HTTP/1.0" 502 568 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"

踏み台にされていないか、確認方法

Securiサイトから

Securiが保有するログから過去攻撃が行われたかどうかを確認できる
2014-09-16_015605

curlを利用

以下のようなレスポンスが返ってきたら危険らしい

root@hostname:/home/admin# curl -d '<?xml version="1.0"?><methodCall><methodName>pingback.ping</methodName></methodCall>' https://tech.akat.info/xmlrpc.php
<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
  <fault>
    <value>
      <struct>
        <member>
          <name>faultCode</name>
          <value><int>0</int></value>
        </member>
        <member>
          <name>faultString</name>
          <value><string></string></value>
        </member>
      </struct>
    </value>
  </fault>
</methodResponse>

対応方法

Pingback機能を無効にする

[設定]→[ディスカッション]より[他のブログからの通知 (ピンバック・トラックバック) を受け付ける]のチェックを外す
利用していない[この投稿に含まれるすべてのリンクへの通知を試みる]のチェックも外した
2014-09-16_000935

過去の投稿についても無効にする、[編集]を選択し[適用]する
2014-09-16_0109582014-09-16_011217

XMLRPCを無効にする

XMLRPCはPingback機能以外にリモート投稿などに利用されている
利用しなければ無効にすることが一番、以下の設定をnginxに埋め込んだ

location = /xmlrpc.php {
deny all;
}

参考URL

WordPressの脆弱性をついた攻撃が再燃しています。
http://www.denet.ad.jp/news/2014/08/wordpress.html

Pingback仕様
http://www.hixie.ch/specs/pingback/translations/pingback-1.0.jp

今度はWordPressが踏み台に、Pingback機能を悪用しDDoS攻撃
http://www.atmarkit.co.jp/ait/articles/1403/13/news133.html

WordPressのpingback機能を悪用するDoSに対応しよう
http://chonan.blog.pid0.org/2014/03/wordpresspingbackdos.html

WordPressのPingback機能を悪用した攻撃対策について
http://faq.nttpc.co.jp/faq/show/6800?site_domain=suitex

【wordpress】mysqlチューニング

概要

wordpressについてmysqlを中心にチューニングしてみた
AWS t1.microインスタンス(vCPU1・memory0.613G)

root@hostname:/home/admin# cat /etc/debian_version
7.5
root@hostname:/home/admin# mysql --version
mysql  Ver 15.1 Distrib 5.5.38-MariaDB, for debian-linux-gnu (x86_64) using readline 5.1

指標

t2.microインスタンスへの変更

t2.microインスタンスがリリースされていた
t2.microでは 最新のIntel Xeonプロセッサ・3.3 GHz ターボブーストなるものが利用でき、
メモリも1Gに増え、また金額も$0.020/1h(t1.micro)から $0.013/1hとなる

【wordpress】Iconic Oneのサイドバー削除

概要

テーマをIconic Oneに変更した。サイドバーを暫定削除する方法

Before

2014-06-29_201337

After

2014-06-29_233040

対応内容

(ドキュメントルート)/wp-content/themes/iconic-one
・404.php
・archive.php
・author.php
・category.php
・index.php
・page.php
・search.php
・single.php
・tag.php
から get_sidebar(); を削除する

        .site {
                margin: 0 auto;
                max-width: 1140px; # 700pxから変更
                overflow: hidden;
        }
        .site-content {
                border-right: 1px solid #F1F1F1;
                float: left;
                margin: 0px 1%;
                padding: 30px 2% 0 1%;
                width: 90%; # 63.2%から変更
        }

参考

http://dottab.com/blog/1954