やってますか?Welcartのセキュリティー対策

スポンサーリンク

昨今のハッキング事情で特に騒がれているのが「ブルートフォースアタック」という、無差別攻撃です。

総当たり攻撃 (そうあたりこうげき)とは、暗号解読方法のひとつで、可能な組み合わせを全て試すやり方。力任せ攻撃、もしくはカタカナでブルートフォースアタック(英:Brute force attack)とも呼ばれる。- WikiPediaより

WordPressは特に、インストール時のデフォルトユーザー名が「admin」となっているのが穴となり、ハッキングの対象になっているようです。

現に2013年夏には、ロリポップサーバーで運営されていた8,000件以上のサイトがハッキングされるという事件も起きています。

第三者によるユーザーサイトの改ざん被害に関するご報告(ロリポップ)

Welcartはもちろん、ECサイトを運営していた場合、こうなったら個人情報の流出になりかねません!

もちろん完全にブルートフォースアタックを防げる手立てというのはありませんが、その確立を低くすることは出来ます。病気の予防や防犯対策と同じです。

セキュリティー対策の一例:もくじ

  1. adminのユーザー名を変更、パスワードも長くする
  2. wp-adminフォルダへの自分以外のアクセスを遮断
  3. wp-adminフォルダにアクセス制限パスワードをつける
  4. wp-config.phpファイルへの自分のIP以外のアクセスを遮断
  5. 外国からのアクセスを遮断
  6. Welcartのログのパーミッションの設定を再確認
  7. 定期的にデータを保存

私は上記の全てを行っていますが、もちろんまだまだ講じられる対策方法はあります。防犯と同じで、対策はやりすぎて損することはありません。

それでは一つずつ、設定のやり方を見ていきましょう。

1. adminのユーザー名を変更、パスワードも長くする

厳密に言うと「変更」ではなく「削除」になります。既にadminというユーザー名でWordPressをインストールしてしまうと、ユーザー名は変更出来ません。従って、admin以外のログイン名の新規ユーザーを作成し、adminを削除するという方法を取ります。

1-1 新規ユーザーの作成

設定場所:ダッシュボード→ユーザー→新規追加

まずはadminに代わるユーザーを作成します。

もちろんパスワードは長くて複雑なほどいいです。私はより強くするため、大文字・小文字・数字・記号の全てを混ぜ、15文字位にしています。

そしてユーザーの新規作成でのポイントは、新規ユーザーのユーザー権限を「管理者」とすることです。

新規ユーザーの登録画面

こうしないと、WordPressの設定自体や記事の編集のための権限などがなくなり、困ったことになってしまいます。

1-2 一旦ログアウトし、追加したユーザーでログイン

先ほど新規追加したユーザー名でログインします。

もちろんユーザー名は架空のものです。

もちろんユーザー名は架空のものです。

1-3 adminを削除

設定場所:[ダッシュボード]>[ユーザー]>[ユーザー一覧]

ユーザーの一覧から、adminを削除します。

adminの削除1

上記の画面でadminを「削除」をクリックすると、admin名でこれまで投稿した記事をどう処理するか、選択肢が出ます。

adminの削除2

ここで「全ての投稿を以下のユーザーにアサイン」を選択し、先ほど作ったユーザー名を選択。

「削除を実行」をクリックすれば、完了です。

2. wp-adminフォルダへの自分以外のアクセスを遮断する

WordPress内のwp-admin以下のフォルダは、管理画面を表示するためのものです。通常、管理する人間以外は見る必要は一切ありません。

ここでは、IPによるアクセス制限を行う設定を紹介します。

2-1 .htaccessの作成と設置

設置場所:wp-adminフォルダ内

wp-admin内の.htaccess

まだサーバー上に.htaccessがなければテキストエディタで作成します。既にあれば、それを一旦FTPでダウンロードして、ローカルで編集します。

.htaccessには、以下の文言を加えます。

order deny,allow
deny from all
allow from 自分のIPアドレス

自分のIPアドレスは、「使用中のIPアドレス確認」などでチェックすることが出来ます。

もし、WordPressにアクセスするIPが複数ある場合は、

order deny,allow
deny from all
allow from 自分のIPアドレス1
allow from 自分のIPアドレス2
allow from 自分のIPアドレス3

というように、IPアドレスを増やすことが出来ます。

完成したら、FTPソフトなどでwp-admin内にアップロードして完了です。

(2014/7/3追記)admin-ajax.phpを利用するプラグインを導入している場合、このままではエラーが出てしまうため、以下のようなコードを追加するとよいでしょう。

<Files admin-ajax.php>
    Order allow,deny
    Allow from all
    Satisfy any 
</Files>

ただ、私の場合はそれでもエラーが出てしまったため、IP制限はやめてBasic認証方式にしました。Basic認証については以下のサイトなどが詳しいと思います。

3. wp-adminフォルダにパスワードをつける

更に、wp-adminにパスワードをつけることで、セキュリティーを二重にします。

先ほどの.htaccessに文言を直接追加することで対応可能ですが、お使いのレンタルサーバーで設定するのが楽でしょう。

このブログはファイアバードというレンタルサーバーで動かしています(執筆時点)ので、ミニバードの例で説明します。

3-1 サーバー管理ツールで、「パスワード制限」を選択

「パスワード制限」を選ぶと、設定中のドメイン名が出ますので、パスワード制限を行うドメイン名を選択して下さい。

ミニバードのパスワード制限の設定

3-2 wp-adminがある階層へ行き、ユーザー設定

wp-adminは、ワードプレスフォルダの一階下の階層にありますので、まずはWordPressフォルダを選択し、「wp-admin」がある階層に進みます。

wp-adminが出てきたら、ユーザー設定と有効設定ボタンがあるのを確認。

wordpressフォルダ内

まずは先に「ユーザー設定」を行います。ユーザー名とパスワードを入れて、確認画面へ進み、その後登録を行います。

ユーザー設定画面

3-3「フォルダ一覧へ戻る」から一覧画面へ戻り、「有効 設定」をクリック

「有効 設定」ボタンをクリックすれば、設定が完了です。この設定をすると、wp-admin内の.htaccessにアクセス制限の命令が自動で書き込まれます。

有効設定を行った後は、WordPressの管理画面に入ろうとする時に以下のダイアログが出てきます。

パスワード制限のダイアログ

先ほど設定したユーザー名とパスワードを入れない限り、管理画面にはアクセスが出来なくなります。

以上はレンタルサーバーでの設定の一例ですが、もしご自分で.htaccessを編集して制御したいという場合は、下記のサイトが参考になると思います。

基本認証でアクセス制限をかける方法(All About)

4. wp-config.phpへのアクセス制限

wp-config.phpは、WordPressフォルダの直下の階層(wp-adminがある階層と同じ)にあり、データベースとデータをやり取りする為のパスワードが書かれている、非常に重要なファイルです。

データベースには、これまで投稿したデータや顧客データなど全てが含まれますから、必ずこれは設定しましょう。

以下のサイトを参考にさせて頂きました。

あなたのWordPressは安全?「wp-admin/」へのアクセス制限などセキュリティ関連の見直し(Syumart)

4-1 WordPressをインストールした階層の.htaccessを編集

WordPressのインストールは、普通はドメイン直下に行われていると思います。そのWordPressフォルダと同じ階層にある.htaccessに、以下の文言を書き込んで下さい。

<Files wp-login.php>
order deny,allow
deny from all
allow from 自分のIPアドレス
</Files>

通常は、何もしていなくても.htaccessには以下のような文言が記入されているはずです。

# BEGIN WordPress
~中略~
# END WordPress

書き込むのはこの# END WordPressの後でよいようです。

更に上記サイトを参考に、wp-config.phpのパーミッションを400(うまくいかない場合は404)にすれば完成です。

.htaccessのパーミッションも604になっているかついでに確認しておくと安心でしょう。

パーミッションの変更や確認は、FTPソフトから当該ファイルを選択し、「権限変更」などで簡単に出来ます。

5. 外国からのアクセスを遮断する

販売対象国が日本だけならば、海外からのアクセスを遮断するのも、一つのセキュリティ対策になります。

注意すべき点は、Googleクローラー等の検索エンジンロボットのアクセスは許可しておくこと。クローラーは基本的にアメリカから来ています。許可しておかないと、検索結果に自分のサイトが掲載されなくなってしまうことに・・・。

WordPressをインストールしている同じ階層(ドメイン直下)の.htaccessに、以下の文言を記載します。

htaccessの場所

order deny,allow
deny from all
allow from JP
allow from .googlebot.com
allow from .msn.com
allow from .crawl.yahoo.net
allow from .google.com

Google・MSN・Yahooのクローラーを許可した例です。私は最初、クローラーのアクセス許可設定をしておらず、後でアクセスログを確認して大量のエラーを発見して、ようやくそれらがクローラーだと気付いたという失態を犯しておりました・・・。

6. Welcartのログのパーミッションの設定

こちらは「小さなECサイトのWordPress+Welcart導入・設定ガイド」にも書かれている内容です。

wp-content/plugins/usc-e-shop/logsフォルダがサーバーからアクセスできてしまうと、個人情報が流出してしまう可能性が高くなりますので、以下の方法のいずれかで対処します。

  • wp-content/plugins/usc-e-shop/logsフォルダのパーミッションを733にする。
  • wp-content/plugins/usc-e-shop/logsフォルダ内に、以下の文言を書いた.htaccessを設置する。
    order deny,allow
    deny from all
  • Welcartを最新版にする。

7. 定期的にデータを保存

ハッキングを受けたとしても、データが手元にあれば最小ダメージでの復旧が出来ます。

保存すべきデータは、(1)FTPソフトなどでダウンロードできるフォルダ内のデータと、(2)データベースのデータ、(3)Welcartの設定 の3種類です。

7-1 FTPソフトでデータをダウンロード

FTPソフトで見られる様々なフォルダの中には、上記のwp-adminやwp-config.phpの他、プラグインやアップロードした画像データが含まれています。

特に重要なのは、やはり画像データとテーマ(テンプレート)でしょう。他のもの(WordPressやプラグインなど)は、最悪な状況でも配布元から再ダウンロードすれば復活出来る場合が多いと思います。

FTPソフトで定期的にダウンロードしておきましょう。

7-2データベースのデータをダウンロード

データベースには記事や商品の説明のデータなどが保存されており、こちらもかなり重要です。

経験がないと少々やっかいかもしれませんが、慣れれば簡単です。

  1. レンタルサーバーの管理ツールから、phpMyAdminへアクセス(ミニバードなら、「データベース設定」よりアクセス可能)。
  2. エクスポートと書かれている箇所をクリック。
  3. 保存するデータベースを選択し、実行するをクリック。

私は利用したことはありませんが、WP-DB-Backupというデータベースを簡単に保存出来るWordPressプラグインも存在します。

以下のサイトで詳しい説明がありますので、参考にしてみて下さい。

【WP-DB-Backup】手軽にWordPressをバックアップできるプラグイン(ひなログ)

7-3 Welcartの設定データのバックアップ

[ダッシュボード]>[Welcart Shop]>[システム設定]の画面の一番下に、設定データをバックアップするボタンがあります。

ボタンを押すだけで出来るバックアップです。

Welcartのセキュリティ対策まとめ

ここまでやれば、全く何もしていない状況よりは遥かにハッキング対策が取れている状況になっていると・・・信じたいところです。

ログイン履歴を監視してくれるCrazy BoneというWordPressプラグインもありますが、さすがにここまでしている効果もあってか、私の運営中のサイトでは、自分以外の不正ログイン履歴はありません。

ログイン履歴

個人情報を扱うWelcartショップ、ハッキング対策も万全にして頑張りましょう!

コメントは受け付けていません。

Copyright© 2017 Welcart カスタマイズ ブログ All Rights Reserved.