WordPressログイン画面にGoogle Authenticatorプラグイン追加

ログイン画面のセキュリティに多要素認証の実装されている事がよく見かけると思います。
金融関係はほぼやってない所はないんじゃないでしょうか。
仮想通貨取引所等でもほぼやっていますし、多要素認証は絶対にやっていたほうがいいです。

今回は簡単ですぐに導入ができるGoogle AuthenticatorプラグインをWordpressに導入する方法を紹介します。

wordpressのセキュリティ対策のプラグインは多数ありますが、自分のスマートフォンで手軽に認証ができるGoogle Authenticatorはお勧めです。
設定も非常に簡単です。
私はマルチサイトにしているのでマルチサイトで有効化するやり方を書きますが、ほとんどシングルサイトと同じです。

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

まずはWordpressのサイトネットワーク管理のダッシュボードに移動します。
シングルサイトはそのままダッシュボードでOK。

プラグインの新規追加のタブをクリック

プラグインの追加画面でキーワード検索に「Google Authenticator」と入力します。
ここで結構色々でてきますが「Google Authenticator」とだけ記載されているものをインストールします。
インストール後にマルチサイトで有効化とでるので有効化までします。

インストールされるとユーザーのプロフィール画面にGoogle Authenticator Settingsが追加されています。

activeにチェックを入れて有効化します。ここをチェックしなければ有効になりません。
初めてで設定ミスとか怖い場合は別にユーザーを作ってそちらで実施するのがお勧めです。

Descriptionについてはアプリ側の表示名になるので分かりやすい名前にする事がお勧めです。

Secretがいわゆる認証キーになります。
表示されている英数字を直接アプリに打ち込んでもいいですが「show/Hide QR code」でQRコードが表示されるので
スマホのアプリで読み取るほうが簡単です。

bitbucket server(オンプレミス版)のインストール

会社でGitを使う場合、小規模であればbitbucket serverがお勧めです。
オンプレミス版で10ユーザーだと$10という破格値で買えます!
買いきりですが、サポートを付けたかったら2年目以降に$10で付けれますのでそれでも安いですよね。

bitbucket serverですが以前はStashと呼ばれていたものです。
今回はCetnOS7にインストールしてみました。
そういえばCentOS7のインストールについてもまだ記事書いていなかったなぁ・・・順番前後するけど今度に書こう!

ひとまずbitbucket server無料トライアル申込をしてインストーラーをダウンロードします。
atlassian-bitbucket-5.9.0-x64.binというファイルがダウンロードされました。
早速サーバーにアップしてインストールします。

実行権限が無いので実行権限を付けてインストール
インストールは途中で設定を聞いてくるタイプなのでここは全部デフォルトにしました。

# chmod +x atlassian-bitbucket-5.9.0-x64.bin
# ./atlassian-bitbucket-5.9.0-x64.bin

npacking JRE …
Starting Installer …

Unsupported Git version found [1.8.3.1]. Please upgrade Git to a supported
version before installing Bitbucket.
See http://go.atlassian.com/installgit for more information.
NOTE: If you proceed without a working Git, Bitbucket won’t be able to start
after installation until a working Git is found.
If you proceed without a working Git, Bitbucket won’t be able to start after installation.
Are you sure you want to continue?
Yes [y, Enter], No [n]
y
Bitbucket 5.9.0 installation wizard
Would you like to install or upgrade an instance?
Install a new instance [1, Enter], Upgrade an existing instance [2]
1
Install Bitbucket 5.9.0
What type of instance are you looking to install?
Install a Server instance [1, Enter], Install a Data Center instance [2], Install a Smart Mirroring instance [3]

Where should Bitbucket be installed?

[/opt/atlassian/bitbucket/5.9.0]

Default location for Bitbucket home directory

The location for Bitbucket data.
This will be the default location for repositories, plugins, and other data.

Ensure that this location is not used by another Bitbucket installation.
[/var/atlassian/application-data/bitbucket]

Configure which ports Bitbucket will use.

Bitbucket requires a TCP port that isn’t being used by other applications.

The HTTP port is where users access Bitbucket through their browsers.

Bitbucket also requires ports 7992 and 7993 are available to run an embedded
Elasticsearch instance that provides search functionality to Bitbucket.
HTTP Port Number
[7990]

For a production server we recommend that you run Bitbucket as a
Windows/Linux service because Bitbucket will restart automatically when the
computer restarts.
Install Bitbucket as a service?
Yes [y, Enter], No [n]
y
Please review your Bitbucket installation settings

Installation Directory: /opt/atlassian/bitbucket/5.9.0
Home Directory: /var/atlassian/application-data/bitbucket
HTTP Port: 7990
Install as a service: Yes

Install [i, Enter], Exit [e]
i
Git version 1.8.3.1 is not supported. If you proceed Bitbucket won’t be able to start after installation.
Are you sure you want to continue?
Yes [y, Enter], No [n]
y

Extracting files …
Would you like to launch Bitbucket?
Yes [y, Enter], No [n]
y

Please wait a few moments while Bitbucket starts up.
Launching Bitbucket …

Installation of Bitbucket 5.9.0 is complete
Your installation of Bitbucket 5.9.0 is now ready and can be accessed via
your browser.
Bitbucket 5.9.0 can be accessed at http://localhost:7990
Launch Bitbucket 5.9.0 in browser?
Yes [y, Enter], No [n]
Finishing installation …

とインストールは終了しましたが、最初の方でGitのversionについてエラーが出ていました。
→Git version 1.8.3.1 is not supported. If you proceed Bitbucket won’t be able to start after installation.

yumでインストールしていたものなのでyumで削除して最新のGitのソースを取得してインストールします。
# yum remove git

(2018/3/27)時点ではgit-2.16.3.tar.gzが最新です。

作業ディレクトリで解凍します。
# tar zxvf git-2.16.3.tar.gz
# cd git-2.16.3
# ./configure
# make
ここでエラーになります。
どうやらパッケージが足りないようだったのでyumでインストール
# yum install perl-ExtUtils-MakeMaker

# make

# make install

問題なくインストール完了!

# git –version
-bash: /usr/bin/git: そのようなファイルやディレクトリはありません

おや?
gitはどこに起動ファイルあるのかとログを見てみると/usr/local/binにありました。
確認してもPATHは通ってるし・・・

過去のバージョンがわるさしているのか?
原因探すのは時間がかかりそうだな・・・よしリンクで解決しよう!

根本解決ではないですが簡単ですし、何かあってもすぐに消せるし問題なし!
リンクを設定
# ln -s /usr/local/bin/git /usr/bin/git
確認
# ls -al /usr/bin/git
lrwxrwxrwx 1 root root 18 3月 26 19:06 /usr/bin/git -> /usr/local/bin/git
gitが通るか確認
# git –version
git version 2.16.3

問題ないですね。

インストール時に1.8が入ってたので一度bitbucketを再起動します。
再起動しないとずっと1.8というエラーが表示されます。

そのまんまインストールしたので起動スクリプトは下記のフォルダにあります。
/opt/atlassian/bitbucket/5.9.0/bin

停止
# stop-bitbucket.sh

起動
# start-bitbucket.sh

インストール自体はここで終わりですが内部DBを使うよりDBを別で立てたほうがいいです。
postgresqlがいいようなので久しぶりにインストールしてみますかね。

.htaccessでSSLリダイレクト

今まではドメインとっていなかったからあまり気にしていなかったwww問題が急遽浮上しました。

後、今時は常時SSLだよね~

という事で.htaccessのリダイレクトで対応したいと思います。

記述内容は至ってシンプル!

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

この3行で大丈夫!
どんなサイトでもそのままコピペでいけます。

ちなみにwwwあり、なしの統一もSEO的にやる必要があるのでやろうと思ったのですが、なぜかwwwありにできない。。。

記述としてはこんな感じ

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

$1は%{REQUEST_URI}でもいいけど同じ記述書くのも芸がないと思って$1にしていますw
httpはhttpsでもいいけどとりあえず切り分けの為にhttpにしています。

サーバーの設定やらいろいろ確認したのですが、wordpressのサイトURLとかをwww無しで登録していたのでたぶんこれが原因じゃないかなと推測。

記述無しだとwwwが全部www無しにリダイレクトされるw

まあ、統一されているからいいかな。

データ移行がとても簡単だった件

とりあえず新しく建てたサーバーに過去のデータを入れるかと思いDBのテーブル情報を抜いて入れてしまおうかと思っていました。

でも今時もっと簡単な方法があるんじゃないかなと管理コンソールを見ているとやはりありましたよ。エクスポートとインポート!!

メディアとかでアップした画像とかどうなるのかなぁと思いつつ全てのコンテンツをエクスポートし新しいサイトでインポートを実施。

さっくりとデータが移行されちゃいましたよ。。。

世の中便利になっていくものですねぇ。。。

今までインフラエンジニアとしてサーバーやらネットワークやらをメインに設計やら構築やら運用やらやっていましたが、もうそんなことをガツガツしなくてもいい時代なのかな。

プログラムや構築は趣味程度でやって仕事はなんか違うことした方がいい気がしている今日この頃です。

 

とりあえず再開しました

引越しやらなんやかんやでブログの更新がとまっていました。

今までは自宅のPCにLinux入れてサーバーにしてwordpress入れて・・・
と全て自前でやっていたのですが、今度の引越し先では自前で回線が引けず環境が作れませんでした。

仕方なくレンタルサーバーを探してそこで構築する事にしました。

仕事で比較検討したり利用したりしていますが、せっかくだから今まで使ったことがない所にしようかなぁ
と探していてxserverを見つけました。

ドメインがずっと無料キャンペーンやっていてミドルウェアでnginxを使っているという所もいいと思いこちらで契約しました。

今まではmydnsを使っていたのですが自分のドメインを取得すると何となく気分がいいですね。

ドメインは「kittenblue.com」にしました。

子猫の青という意味です。
子猫ってみんな最初は青い目をしているのでkitten(子猫)blue(青)と呼ばれています。

ちなみにkitten-blue.comは新宿三丁目にあるバーが取得していました。
機会があれば行って見ようかなw

とりあえず自宅のサーバーからコンテンツをダウンロードしてmysqlのdumpとって新しいサーバーに置きました。
DB名とかがレンタルサーバーだとちょっと規制があるのでその辺をちょちょっと修正してテストアップ。

が、ドメインが変わっている為にそのままだと表示されません。。。

しかも無駄にマルチサイト設定をしていた為に意外と面倒です。。。

DBのテーブルで前のドメイン[neko.mydns.jp]を全て探し出して新しいドメインに変更、
homeディレクトリも現在のディレクトリに置き換え、

コンテンツ側でも.htaccessを修正したりwp-config修正したり。。。

一通り修正終わったら問題なく表示されました。

サイト移行だけで数時間かかっちゃいましたよ。

ただ、過去のサイトはサブディレクトリでマルチサイトを作っていました。

せっかくドメインとったからサブドメイン方式にしたいな・・・
あと何となく新しく作ってそこに過去のサイト入れたいな・・・
マイニングしているからそっちのブログも書きたいな・・・
あとちゃんと広告も考えないとな・・・
というかブログのカテゴリとか雑すぎるからちゃんとしないと・・・
ていうかテーマちゃんと考えたほうがよくないかな・・・
バックアップも自宅サーバーで取得できるようにしとかないと・・・

と色々考えることが出てきたのでとりあえず全部一新することにしました!