また、マルウェアが検出されました。サーバーで不正ファイルを探しましたが見当たりません。
サイトの初期化後、WordPress のクリーンインストールで対応します。
WordPress の再インストール
WordPress は筆者が作ったページなどのデータはデータベースに記録されています。人で言うと魂に当たります。
WordPress とプラグインなどは単なる入れ物や装飾なので、まっさらにしてデータベースを入れ替えてもほとんど同じサイトの状態です。
これを踏まえて、WordPress をクリーンインストールします。
大まかなサイトの復旧はサイトの大きさにもよりますが、2時間もあればできると思います。
本当ならサイトメンテナンス中を検索向けに用意するのがいいですが、うちの規模ならすぐに終わるので
- 訪問が一番少ない時間をアクセス解析で確認(このサイトでは午前3~5時)
- ダウンロードなど時間がかかる作業は事前に済ませて、すぐにサイトを表示できるように作業
しました。少しアクセス数は落ちましたが想定内です。また、クリーンインストール作業が原因かもわかりません。
プラグインとテーマの記録
現在入れているプラグインとテーマの記録しておきます。
管理画面からインストール済みプラグインページとテーマのスクリーンショットを撮るのが簡単です。
下準備
WordPress からインストールできないテーマと子テーマはダウンロードしておく。(Cocoon は子テーマも自動インストールされる)
テーマ設定のバックアップ
Cocoon 設定をバックアップする方法
ダッシュボード左メニュー[Cocoon 設定]内[バックアップ]を押します。
バックアップ画面が開くので[バックアップファイルの取得]を押して、設定情報をダウンロードしてください。
Cocoon 設定をリストアする方法
リストアから[ファイルの選択]を押して、バックアップで取得したテーマ設定ファイルを選択します。
[設定の復元]を押すとリストアが完了です。
サイトをバックアップする
サイトを丸ごとバックアップしてダウンロードしておくと怖い物無しです。トラブル時はアップロードすればクリーンインストール作業前の状態にもどります。
FTPソフトでも何を利用しても良いですが、今回は例としてエックスサーバーのファイルマネージャを利用します。
ファイルマネージャにログインします。
バックアップ
サイトで利用しているバックアップしたいフォルダやファイルを選択して[圧縮]を押します。
圧縮画面が開きます。
- 名前を入力してください。(日付を入れておくといつのバックアップか後でわかりやすい)
- 圧縮形式を選択してください。(なんでもいいですが、Windowsなので ZIPアーカイブを選択)
- 作成先を指定してください(見失わなければどこでも大丈夫)
必要事項を記載して[圧縮]を押します。
圧縮ファイルの完成です。
ダウンロード
圧縮したファイルを選択して[ダウンロード]を押します。
確認画面が表示されるので[ダウンロード]を押します。
操作ログを押すと日時と進行内容を確認できます。
ファイルマネージャからファイルのアップロードやダウンロードは
- ファイルの数が多い
- ファイルのサイズが大きい
時は失敗する場合が多いです。
ファイルマネージャで失敗する場合は、WinSCP などを使ってダウンロードしてください。
データベースのバックアップ
エックスサーバーはデータベースを自動でバックアップしていますが、念のためにローカルのパソコンにもバックアップしておきます。
エックスサーバーのサーバーパネルにログインします。
データベース 内[MySQLバックアップ]を押します。
MySQLバックアップ画面が開くので、[現在のMySQLをダウンロード]タブを選択してダウンロードするデータベースの圧縮形式を選択して[ダウンロード実行]を押します。
ダウンロードが実行されてファイルがパソコンに保存されます。
エックスサーバーからドメイン初期化
マルウェアやバックドアが隠れている可能性をつぶすためにサイトで利用しているドメインを初期化します。
サーバーパネルトップから[ドメイン]内[ドメイン設定]を押します。
該当ドメインの[初期化]を押します。
初期化の処理方法を選択して[確認画面に進む]を押します。
- ドメイン設定の初期化:メールも含めてドメイン運営を一からやり直すならここ
- ウェブ領域・設定の初期化:サイトの内容のみ再構築したい場合はここ
- 初期ファイル・フォルダの復元
初期化される各種設定を確認して問題なければ[実行する]を押します。
ウェブ領域・設定の初期化処理が完了しました。
WordPress のインストール
利用しているデータベース名は wp-config.php ファイルで確認できます。
サーバーパネルにログインして、WordPress 内[WordPress簡単インストール]を押します。
ドメイン選択画面が開くので、対象ドメインの[選択する]を押します。
ドメインを指定して作業中の場合は、右上の 現在の設定対象ドメインを[クリア]すると対象ドメインが切替できます。
WordPress簡単インストール画面が開くので[WordPressインストール]タブを選択して必要事項を記入して[確認画面へ進む]を押します。
- 設定対象ドメイン:ドメインを選択できます。
- サイトURL:サイトのURLを指定します。フォルダ部分は任意です。
- ブログ名:書き換えるので適当に
- ユーザー名:書き換えるので適当に
- パスワード:書き換えるので適当に
- メールアドレス:利用しているメールアドレスを記入する。後ほど変更も可能。
- キャッシュ自動削除:CronによってWordPressのキャッシュを一定間隔で削除します。好みでどうぞ。
- データベース:自動でデータベースを生成するに[チェック]を入れる
- テーマ:Cocoon を利用していたので選択しましたが、利用しているテーマがない場合はデフォルトのテーマでどうぞ。
確認画面で内容に間違いが無ければ[インストールする]を押します。
インストールが開始されます。WordPress のインストールが完了しました。
データベースへ接続
WordPress がまっさらになったところで、以前のデータベースと入れ替えます。
データベースを入れ替えるには[wp-config.php]ファイルのデータベース設定を書き換えます。
エックスサーバーのファイルマネージャを起動して、インストールした WordPress の[public_html]フォルダ内[wp-config.php]を選択して、メニューから[編集]を押します。
編集画面が開きます。
以前の wp-config.php と入れ替えると簡単ですが、バックアップはスパマーの影響を受けている可能性があるので、必要情報を書き換えてください。
必要情報
- WordPress のためのデータベース名
- データベースのユーザー名
- データベースのパスワード
- データベースのホスト名
- WordPress データベーステーブルの接頭辞
[更新]を押して完了です。
認証用ユニークキー
認証用ユニークキーは、下記ページで取得して後でいつでも変更してください。全てのユーザーを強制的に再ログインさせることができます。
データベースが反映されると、ネット上からサイトは画像をのぞいてほとんど復旧しています。
画像のアップロード
画像ファイルは upload フォルダに入っています。
example.com\public_html\wp-content\uploads
エックスサーバーのファイルマネージャを利用してZIP形式で圧縮した画像ファイルを一括アップロードして戻そうとしましたが、ファイルサイズが大きいこと(250MBほど)を理由にエラーが出ました。
普段使っている FFFTP を利用してアップロードを試みたところ、ファイルが足りなかったり、勝手に終了したりとエラーが多発。こんなに使えん子やったかな?いまいち信用できない。
Adobe Dreamweaver でアップロードを試みましたが、サイトの読み込みを始めたため時間がかかりそうなのでやめる。
面倒になったので、安心・確実・のんびりの WinSCP をパソコンにインストールしてアップロードしました。
画像フォルダは ウイルス検査の後、目視で画像ファイル以外は削除してアップロードしました。
あまり大きなサイトでは大変ですが upload フォルダはスパマーの標的になりやすく、マルウェアやバックドアが仕込まれている可能性があります。
せっかくの再インストール後なので注意しすぎてください。
ここまでくればネット上のサイトに画像も反映されるのでほぼ完成しています。
WordPress の確認
ネットからクリーンインストールが完了したサイトにアクセスして、ページや画像が反映されていることを確認します。
次は WordPress にログインします。
管理画面の左メニュー[ユーザー]内[ユーザー一覧]を押します。
知らないユーザーがここにいたらすぐに削除してください。
Wordfence Security プラグインの導入
WordPress にファイアーウォールプラグインをインストールします。
Wordfence Security は WordPress プラグインディレクトリから自動でインストールできます。
インストールして有効化すると Wordfence Security が起動して
- セキュリティアラートを送信するメールアドレスの入力
- メーリングリスト参加の可否
- 利用規約や契約、プライバシーポリシーのチェック
の必要事項を記載して[次へ]を押します。
有料版のプレミアムライセンスキーの入力画面です。[いいえ、結構です]を押します。
有料版と無料版の違い
- 有料版は年1万円程度の料金で、リアルタイムのファイアウォール ルール、マルウェア シグネチャ、国のブロックを取得し、動的に更新される IP ブロックリストを使用して 40,000 を超える悪意のある IP をブロックします。プレミアムカスタマーサポートが含まれています。
- 無料版は、サイトを安全に保つために必要な基本的なツールで攻撃をブロックします。ファイアウォール ルールとマルウェア シグネチャは 30日間の遅延があります。
Wordfence が起動します。
上部通知にある「サイトをできるだけ安全にするために、Wordfence Web アプリケーションファイアウォールを最適化する時間を取ってください。」の[設定するにはここをクリック]を押します。
Wordfence ファイアウォールの最適化が開きます。
- サーバーの構成が分かっている場合はプルダウンから選択してください。(分からない場合はそのままでOK)
- .htaccess や .user.ini ファイルをダウンロードしてください。最適化に失敗した場合に置き換えると元に戻せます。
- 準備が済んだら[次へ]を押して設定を完了します。
スキャン
マルウェアやセキュリティをスキャンしてチェックします。
ダッシュボード左メニューの[Wordfence]内[スキャン]を押すとスキャン画面が表示されるので[新しいスキャンを開始する]を押すとスキャンできます。
セキュリティホール検知サイト
さらにマルウェアやバックドアを調べます。
ウェブサイトのセキュリティ状況をチェックするサイトです。URL を入力するとチェックできます。
データベースのパスワード変更
パスワードはサーバー、FTP、WordPress ともにすべて変更・複雑化しましたが、データベースのパスワード変更を失念していました。
エックスサーバーでサーバーパネルの管理画面を開いて、データベース 内[MySQL設定]を押します。
MySQL設定画面が開くので、[MySQLユーザ一覧]タブを選択してパスワードを変更する MySQLユーザのパスワード変更から[変更]を押します。
パスワード入力画面が開くので、変更する新しいパスワードを入力して[確認画面に進む]を押します。
確認画面が表示されるので、問題が無ければ[変更する]を押します。
MySQLユーザの編集を完了しました。画面が表示されたら、パスワードの変更は完了です。
パスワードは8文字ぐらいではすぐに解読されるので、16文字以上で数字、小文字、大文字、記号の組み合わせにする。ID も複雑にしておくとかなり強固な鍵になります。
どうせ覚えられないなら複雑にした上で、Wordfence で一定回数ログインに失敗した場合のアカウントロックをかければかなり有効。
プラグインのインストール
以前使っていたプラグインを新規インストールします。
これが終わればクリーンインストールからサイトの復旧が完了します。
自分メモ
最初からインストールされているプラグイン
- Akismet Anti-Spam (アンチスパム)
Hello Dolly(不要なので削除)- TypeSquare Webfonts for エックスサーバー
後からインストールするプラグイン:インストール順
- jetpack
- jetpack protect
- WP-Doctor Malware Scanner & Security Pro
- SiteGuard WP Plugin
- Broken Link Checker
- Google XML Sitemaps
- BackWPup を入れてバックアップ
Xサーバーサーバーパネルから、ホームページ内[ads.txt設定]を入れる
cocoon 設定リストア
必要があればファビコンの再設定、背景透明画像:WordPress ダッシュボード左メニュー[外観]内[カスタマイズ]内[サイト基本情報]
cocoon 子テーマに style.css を書き込み
後でややこしくなるので、Xサーバーの不要なデータベース削除
ファイルに対する攻撃がすごいので接頭辞を変更してセキュリティを高めること推奨。ただし、データベース等はバックアップしていつでも元に戻せる状態ですると安心です。
まとめ
WordPress のクリーンインストールが完了しました。
やる前はとても面倒に思いましたがデータベースさえあれば、あっという間に復旧できるのでマルウェアや不正アクセス、乗っ取りで悩んでいるならすぐに始めてください。
これでだめなら、ドメイン設定の初期化で再クリーンインストールと、データベースを精査してみます。
コメント