さて、前回記事「kusanagi-SSH接続-セキュリティ対応|非エンジニアでも超高速サーバーを!②」で
Conoha VPSにインストールしたkusanagiパッケージ内にて
サーバーセキュリティー設定を行いました。
今回の記事で、最終的な仕上げとなる
サーバー側でのキャッシュ設定
およびWordPressのセキュリティー対応を行い
Wordpressで記事を執筆し、公開できる状態まで
完成させていきましょう!
目次
kusanagiセットアップ全体の流れ
• Conoha VPSの契約
• Conoha VPSにkusanagiをインストール
• kusanagiプロビジョニング
• ドメインとサーバーを紐付ける
• wordpress初期設定
• 常時SSL化→古いURLをリダイレクト設定
Conoha VPSでのkusanagi初期設定|ノンプログラマーでも超高速サーバーを!① | 魔法使いのマーケティングブログ
• SSH接続設定&サーバセキュリティ設定(ここが大変)
kusanagi-SSH接続-セキュリティ対応|非エンジニアでも怖くない!② | 魔法使いのマーケティングブログ
— (今回はここから!) —-
• サーバー側キャッシュ設定
• wordpress管理セキュリティ対応
• kusanagiユーザーでのログイン設定
— (完成!) —-
サーバー側キャッシュ設定
まずはサーバー側でのキャッシュ設定を行います。
KUSANAGIにはbcacheとfcacheという2種類のキャッシュ機能があり、
bcacheはWordpressが生成するキャッシュでデータベースに保存、
fcacheはサーバー(NGINX)が生成するキャッシュでサーバーメモリ上に保存します。WordPressの管理画面で設定変更できるのはこのうちbcacheのみで、fcacheはコマンドでしか操作できません。
おすすめは少なくともfcacheはONです。
上のページで検証したところ、速い順にfcacheのみ≒両方ON>bcacheのみ>キャッシュなしです。
また、bcacheをONにするとレイアウトが崩れることもあるようです。
初心者向け!ConoHaでKUSANAGIの始め方(3)Wordpressのインストール | ガリガリコード
というわけで、以下のコマンドを入力して
fcacheのみをオンに設定しましょう。
1行のコマンド入力だけでオンにできます。
fcacheをONにする場合(WebサーバーにApacheを指定していた場合、自動的にNGINXに切り替わります)
# kusanagi fcache on
このようにkusanagi自体に
キャッシュ機能がついているため
WordPressの拡張プラグインで
キャッシュ系プラグインは入れないようにしましょう。
kusanagi本体のキャッシュ機能と
Wordpressのキャッシュ系プラグインが競合し
思わぬ不具合が出てくる可能性があるためです。
SFTP接続設定
さて、ここからWordPressの管理セキュリティ対策を行いたいのですが
WordPressセキュリティ対応をするためには
WordPressがインストールされている
kusanagiディレクトリに
アクセスをする必要があります。
このkusanagiディレクトリには
新規作成したSSH接続用ユーザーでは
アクセスすることができず
デフォルトで設定されている「kusanagiユーザー」
という専用のユーザーでログインする必要があります。
このkusanagiユーザーでログインすることができれば
transmit(macのFTP接続クライアントアプリ)等から
kusanagiユーザーでSFTP接続できるようになります。
(SSH接続でも可)
kusanagiユーザーでのSFTP接続設定
Transmit(FTPクライアント)を利用して、kusanagiユーザからログインすることで
wordpressの置いてあるkusanagiディレクトリにアクセス可能です。
設定情報は以下の通り。
⁃ Protocol: SFTP
⁃ Server: VPSのサーバIPアドレス
⁃ User: kusanagi
⁃ Password: kusanagiユーザのパスワード(インストール時に設定)
⁃ 秘密鍵ファイル(kusanagi.pem)の読み込み
⁃ Port: 55555(設定したポート番号)
基本的には、この設定でkusanagiディレクトリへアクセスが可能となるはず。
無事に、kusanagiユーザーでSFTP接続できた方は
スキップして、「WordPress管理セキュリティ設定」
の段落でセキュリティ設定を行ってください。
私の場合は、transmitで秘密鍵を指定すると
「ファイルは未サポートの形式です」とのエラー
(パーミッション関係?)が
表示されてまいました。
色々と試したのですが
(試したことや考察については「参考①: kusanagiユーザーの秘密鍵エラーの原因はパスフレーズを設定したこと?その他対処したこと」に後述)
kusanagiユーザーによるログインは諦めて
kusanagiディレクトリ権限を変更し
前回までに作成したSSH接続用ユーザーから
kusanagiディレクトリへ入れるよう設定しました。
別ユーザーでもkusanagiディレクトリにログインできるように、権限を変更する
別ユーザーからの、kusanagiディレクトリへのアクセス方法です。
rootユーザーで、kusanagiディレクトリへのパーミッションを変更します。
デフォルトでは701となっています。
# cd /home
でkusanagiディレクトリのある階層へ移動し
# chmod 755 kusanagi
でパーミッションを755に変更。
すると、新規追加したSSHユーザーからでもアクセスできるようになります。
→FTPソフトからでも、SFTP方式によりSSHユーザーでアクセスできる。
「kusanagiディレクトリのパーミッションを755にするのは怖いなぁ…」
という方は、後述の「参考③: kusanagiディレクトリに対し、SSHコマンドで単純にアクセスするだけのとき」
をご確認ください。
wordpress管理セキュリティ対応
これで、wordpressがインストールされている
kusanagiディレクトリへアクセスすることができました。
ここで、ブラウザからWordpresssダッシュボードにログインしてみます。
すると、「セキュリティ状況」として
図の4つのセキュリティー警告が
表示されているはずです。
これらの警告を解消するため、公式サイト
推奨するセキュリティ対応 – KUSANAGI
を参照してWordPressのセキュリティー向上を図っていきましょう。
①wp-config.phpをドキュメントルート直下へ移動
まずは、wp-config.phpを
いま置いてある階層の1つ上へ移動させます。
移動させるには、SSHコマンド
$ mv ~
でも、SFTP接続してファイルを移動させる方法でもどちらでも大丈夫です。
これで、wp-config.phpが一般には
アクセス不可領域へ移動されたことになります。
②パーミッションの値を440または644に変更
wp-config.phpの
ルートディレクトリへの移動が完了したら
公式にあるとおり
wp-config.phpのパーミッション値を
440へ変更させましょう。
同じ階層へ移動し
$ chmod 440 wp-config.php
のコマンドで完了です。
ただし、パーミッションを440に変更したら
WordPressにログインできなくなることや
500エラーとなり表示されなくなったりすることもあるようです。
その場合は、パーミッション値は644としてみて下さい。
wp-config.phpのパーミッションは644にする
本来、wp-config.phpはできるだけ厳しく設定しておくべきです。
公式に書かれている通り440や400。
まあ644でも、フォルダ階層変えてるし大丈夫じゃないでしょうか。
wp-config.phpの設定 ~KUSANAGIの公式セキュリティ設定をする際の注意点 | きもおた・わーどぷれす。
<参考>
ファイルやディレクトリのパーミッションを一括で置換したい – Qiita
WordPressの理想的なパーミッション設定は?権限を見直してセキュリティ強化しよう
③wp-config.phpファイルのオーナーをkusanagiへ変更
あとは、kusanagi公式に記載のとおりに行っていくだけです。
wp-config.phpファイルのオーナーをkusanagiへ変更しましょう。
wp-config.phpが置いてある階層へ移動し
# chown kusanagi.www wp-config.php
でオーナーを変更できます。
④wp-content/フォルダの権限を変更
これで最後になります!
wp-contentフォルダのある階層へ移動し
$ chmod 755 wp-content
のコマンドを入力。
これで、すべて完了になります!お疲れさまでした!
定期的にkusanagiのアップデートを
これで、爆速かつある程度のセキュリティ対策の施された
サーバー/wordpressが手に入ったはずです。
あとは定期的に、kusanagiのアップデートを行いメンテナンスを行うようにしてください。
ルート権限ユーザーでログイン後
# yum update
のコマンドで、kusanagiのアップデートが可能になります。
長い作業、お疲れさまでした!
参考①: 追加wordpressセキュリティ対応
上記のセキュリティ対応で、ひとまずは及第点のセキュリティ対策が施されているとは思います。
さらなるセキュリティ対策を行いたい、という方は
以下の対策も参考にしてください。
WordPressセキュリティ強化の3つの方法
WordPressで最低限やっておくべきセキュリティの方法3つ! | わぷログ
↑
1. パスワードを強固にする
2. Wordpressテーマ編集、プラグイン編集機能をオフにする
3. 管理画面にBASIC認証を設定する
という3つのセキュリティー強化の方法が書かれています。
wordpress管理画面にBasic認証またはIPアクセス制限をかける方法について
wordpressプラグインで設定する方法と、.htaccrssを編集する方法の2つがあります。
プラグイン不要?Basic認証でWordPressアクセス制限をかける方法 | 侍エンジニア塾ブログ | プログラミング入門者向け学習情報サイト
WordPressの管理画面に制限をかける(ver3.5.1) – Gatespace’s Blog
ログインURLの変更
さらに、ログインURLを変更することも
セキュリティー面の強化につながります。
2018年やっておきたいプラグインを使ったWordPressのセキュリティ対策 | わぷログ
WordPress追加セキュリティ対策の方法については
以上です。
参考②: kusanagiユーザーの秘密鍵エラーの原因はパスフレーズを設定したこと?その他対処したこと
以下は、kusanagiユーザーログイン時の
秘密鍵エラーを解消するために試したことです。
→ターミナルから、
# -i
で鍵認証を利用して接続しようとすると、パスフレーズの入力を求められました。
秘密鍵作成時に、パスフレーズを設定してしまった可能性があるようです。
(SSHパスフレーズが該当か)
このとき、パスフレーズを設定してしまっていると
秘密鍵からはログインできなくなるらしい…!?
opensslコマンドでパスフレーズを外そうとしてみたり
chmodコマンドでパーミッションを600に変更してみたりしたが、これもダメでした。
$ ssh-keygen -f kusanagi.pem -p
で、パスフレーズ解除(変更)を試みるも、以前のパスワードがわからず。(いずれを試してもダメだった)
サーバ上でなく、手元で解錠を試すも失敗。
改めてkusanagiユーザの公開/秘密鍵を作成する作業(再発行)が必要となるのかもしれません。
kusanagi.pemは
/root/kusanagi.pem
にあるので、Conohaサーバのコンソールからログインして取得するか
SSHユーザでログイン後、suでルート権限をもったうえで、rootディレクトリへ移動してkusanagi.pemを取得する必要があります。
(最悪、catして秘密鍵ファイルをコピペ作成する)
取得したkusanagi.pemは
chmodコマンドでパーミッションを600に変更すること。
< 参考 >
FAQ – KUSANAGI Q2. KUSANAGIサーバにSFTPクライアントで接続し、ファイルの転送を行う際の接続設定を教えて下さい。
KUSANAGIの初期設定 – KUSANAGI 7. 鍵認証の設定
参考③: kusanagiディレクトリに対し、SSHコマンドで単純にアクセスするだけのとき
「kusanagiディレクトリのパーミッションを755にするのは怖いなぁ…」という方のための方法を参考までに。
通常のsshユーザーではパーミッションがないため(パーミッション設定変更をしない限り)
sshユーザでログインしたあと
$ su kusanagi
でkusanagiユーザーに変更。
すると、kusanagiディレクトリ以下までログイン可能となるので
/home/kusanagi/プロファイル名/DocumentRoot
まで移動できる。
※ root権限が必要な場合は、SSH接続ユーザでログインしたあと
$ suの後にrootユーザのパスワードを入力すると
rootユーザになれます。
もしくは$ sudoでパスワード(rootパスワードではなく、権限付与されたSSHユーザのパスワード)
を入力すると、以降はsudoコマンドが使えるようになるので
パーミッションがない部分はsudoコマンドで突破してください。
参考④:ドメイン変更をする場合はコマンド1行のみ!
ドメインを変更したい…!という場合。
# --fqdn
のコマンドを1行入力するだけです。
ただし、常時SSL化を施してある場合は
その後に再度SSL設定をしないとエラー表示となるのでご注意を。
以上です。あなたに快適なkusanagi-wordpressライフがあらんことを。
Leave a Reply