[WordPress] セキュリティ関連プラグイン変更

昨日のエントリーでSiteGuardはNginxだと使いにくいのでCerber Securityにしたと書きましたが、自分の使い方が悪いのか、使っているブラウザの機能拡張が悪いのか、自分自身が不正アクセス判定されてしまいました…

設定次第でどうにかなるのかもしれないけど、要するにほしいのはログインページ隠しとreCAPTCHAなので、それぞれ別のシンプルなものに入れ替え。

ログインページ隠し

WPS Hide Login

reCAPTCHA

Advanced noCaptcha & invisible Captcha

[WordPress] GCP(Google Cloud Platform)でこのブログサイトを簡単構築

このブログはそもそも、以下の記事に刺激されて作りました。

「WordPressを簡単に、てっとり早くベストプラクティスな環境を作りたい!」
そんな方に、私が日頃行っていて、最強だと思っている方法をご紹介します。

1時間で出来る!最強のWordPress環境構築(永久無料)

無料で!簡単に!こんないいことないよね!

ここで書かれている肝は

  • GCP(Google Cloud Platform)のCompute Engineはf1-microなら無料で使える ※always freeになるのはリージョンが限られている(us-east4以外の米国)のには注意
  • Marketplaceを使えば簡単に数クリックで環境構築も終わる。それもWordPress with NGINX and SSL Certified by Bitnamiなら高パフォーマンスでSSLにも対応済み
  • f1-microでストレージが小さいのはcloud storageで対応
  • SSL化もcloudflareを使えば個人サイト規模なら無料だしCDNの恩恵も受けられる

GCP使えば無料でできるという知識はもとからあったけど、こんなに簡単にできるということを再認識させてもらいました。
ただいくつか詰まった点があるので補記したいと思います。

Nginx設定

「wordpress with nginx and ssl certified by bitnami」をデプロイしたままだとpostサイズの制限が厳しく、ちょっとでも大きな画像をアップロードすると失敗します。
なのでpostサイズの制限を変更します。

ターミナルなどで /opt/bitnami/nginx/conf/nginx.conf を編集してclient_max_body_sizeを設定

~略~
http {
    include       mime.types;
    default_type  application/octet-stream;
    client_body_temp_path  "/opt/bitnami/nginx/tmp/client_body" 1 2;
    client_max_body_size 50M; // この行を追加
    proxy_temp_path "/opt/bitnami/nginx/tmp/proxy" 1 2;
    fastcgi_temp_path "/opt/bitnami/nginx/tmp/fastcgi" 1 2;
    scgi_temp_path "/opt/bitnami/nginx/tmp/scgi" 1 2;
    uwsgi_temp_path "/opt/bitnami/nginx/tmp/uwsgi" 1 2;
~略~

編集後はnginx再起動

$ sudo /opt/bitnami/ctlscript.sh restart nginx

Cerber Securityの導入

元記事では「SiteGuard WP Plugin」を勧めているけど、こちらはnginxでの動作に難ありです。
なので同様に管理画面URLを変更できる「Cerber Security, Antispam & Malware Scan」を使用。
reCAPTCHAもこのプラグインで導入できます。

参考
SiteGuard WP PluginがNginxに対応していないのでWP Cerberを使ってみた

※ 6/13追記 Cerber Securityは自分の使い方に合わなかったのでプラグイン変更しました

サイトアドレスをhttpsに設定

こうやって作成したwordpressサイトを運用しようと本気の設定をしていると、いつのまにか記事の投稿に失敗するようになっていました。

いろいろ調べた結果、wordpress 設定 > 一般 の一般設定にて、「WordPress アドレス (URL)」「サイトアドレス (URL)」がhttp://のままでいるために、httpsで利用していると撥ねられていた模様。
いつのまにかと思ったのは、http://<IPアドレス>で接続しているうちは問題なかったのが、cloudflareを使ってhttps接続になるとダメになっていた、ということでしょうか。

ただ、一般設定画面ではこちらの項目を修正したいのですが、表示がグレーアウトになっていて変更不可。
そのためwp-config.phpをいじって対応しました。

/opt/bitnami/apps/wordpress/htdocs/wp-config.php に以下を追記

define('WP_SITEURL', 'https://' . $_SERVER['HTTP_HOST'] . '/');
define('WP_HOME', 'https://' . $_SERVER['HTTP_HOST'] . '/');