カテゴリ:Web、PC > Wordpress

だるい
Wordpressがやけに重たい時には、その後。「Wordpress セキュリティ」で検索、対策をしてみた。

具体的には、「WordPressセキュリティ強化の基本 WP4.7対応」等に記載されている内容を反映。していることを確認、してないことを取り入れた。

アクセスログは、プラグイン「WP Security Audit Log」で観察。対策後、落ち着いた様子になった。

Apacheコマンドを少しは使えるようになり、構築しはじめでこういうことが起きたのは、好機だったと言えなくもない。

以上、ご参考になれば幸いです。

170513
DOS攻撃をはじめて受け、対処したことがあった。以下まとめ。

ダッシュボードが重い
作業中、急に重くなった。直前にプラグイン、php、javascript等の更新はしてないのに。

phpyadminも重い
こちらも急に重くなった。

サイトまでも重い
ブラウザの問題かと、Yahoo!JAPANなど他サイトにアクセス。通常に表示されるので、サーバーの問題ではと思い至る。

サーバーのアクセス状況を確認
レンタルサーバーでのことだったので、障害情報を見たが該当なし。同領域を使用している、他のドメインサイトを閲覧したところ、普通に表示される。サーバーの問題ではない。すまん、あらぬ疑いだった。

エラーログを確認
遅ればせ。FTP接続でwordpressのログを取得できる場合、ローカルにダウンロードして確認。
このレンタルサーバーでは、VPS(仮想専用サーバー)のコンソールで見るしかなかったので、Apacheコマンドをぽちぽち入力して確認。Apacheコマンドは以下のようなの。
エラーログを確認
# less /var/log/httpd/error_log

ファイルの内容を監視して表示を更新
# tail -f /var/log/httpd/access_log # tail -f /var/log/httpd/error_log

参考)Apacheのログ: Linux初心者のためのLinux入門
DOS攻撃されていたのが判明
特定の同一IPが怒涛の勢いでアクセス、同時にエラーが発生していることがわかった。ログを見ている最中も続々、サイトはとうとう504エラーでダウン。

特定IPのアクセスを制限
取り急ぎ、特定IPのアクセスを制限することにした。
が、FTPソフトで.htaccessをダウンロードしようとして、権限がないとサーバーにしかられる。またもやApacheコマンドをぽちぽち。
.htaccessの権限を確認
#ls -l .htaccess

.htaccessの権限を変更(例:newownに変更)
#chown newown .htaccess

参考)Linux:chownでファイルやディレクトリの所有者を変更する | raining
ダウンロードした.htaccessに下記を追記。
order allow,deny
allow from all
deny from XXX.XXX.XXX.XXX/99

※XXX~XXXはアクセスを禁止したいIP。99はIPのサブネットマスク。

参考)特定IPドメイン/IPアドレス サーチ 【whois情報検索】
IPアクセス制限を確認
.htaccessを更新後、アクセスログを見ると、はじかれているのがわかった。

サイト、ダッシュボード、phpMyadminのアクセス状況も通常に戻った。

人心地ついたところで、エラーはなんだ?と検索。Wordpressに標準搭載されている、xmlrpc.php(モバイルから投稿できる機能)の脆弱性をつかれたものらしい。削除は、Wordpressのバージョンアップ時にまたインストールされるので、無意味らしい。

xmlrpc.phpアクセスを制限
これも.htaccessに記述して更新。
<Files "xmlrpc.php">
    order deny,allow
    deny from all
</Files>

IPアクセス制限は、アクセスしてからの処理なので。サーバー負荷対策としては、ほかによかろう方法があり。それについては、上記の参考をご覧ください。

脆弱性をつかれるファイルは、ほかにもあるらしいが。今回はこれまで。Wordpressプラグイン「WP Security Audit Log」で様子見。

以上、ご参考になれば幸いです。

0630
以下、個別の記事するほどでない諸々。

投稿にテンプレートの選択ボックスが表示されない時には
状況は以下。
・テンプレート用プラグインを使わない
・自作テンプレートを作成、FTPアップ
・ところが投稿画面にテンプレート選択ボックスが表示されない

対処は簡単。テンプレート名の下に、投稿タイプを記述すれば表示される。
<?php
/*
Template Name: 投稿テンプレート
Template Post Type: post
*/
?>
固定ページでも使う場合は、タイプに「,」区切りで「page」を記述。

【関連リンク】
WordPressで投稿ごとにテンプレートを変える
記事中「新しくなったテンプレート」の箇所によった。ありがとうございました。

テーマは公式がやりやすいかも
私の感想ですが、改変しやすい。

以外はサンプルがいかに素敵でも、作りこまれた記事あってのものなので。記事なんもない状態から、サンプルを手本に作るのは効率が悪い。

たとえるならBootstrap。テンプレートなのに、その作りを理解しないとソースが肥大化するって、なんじゃそりゃと思う。

プラグインはおすすめ、使い方を考慮して選別
おすすめは「Wordpress プラグイン おすすめ 2017」などで検索。

ヒットした該当記事から、目的にあうプラグインを選別。

そして「プラグイン名 使い方」で検索。

困ったときの対処法がどれだけあるか、承知の上で使うと後々よいと思う。

子テーマを作って改修すると後が楽

子テーマ作るの面倒~と、親テーマを直に改変した場合。

親テーマのアップデート時、改変した部分が上書き・削除される場合がある。

なので、最初から子テーマを作って改修すると、後が楽。

検証はGoogle Chromeが楽
Wordpressに限らず。

なんてcssの何行目のこのクラスが~と、おかしな箇所をマーカー付きで示してくれる。

そしてその個所に、試しでコードを記述、解決法を確定することができる。

ほかのブラウザで見ておかしなところも、Chromeであたりをつけて解決しやすい。


今回、思いつくのはこんなところでしょうか。

またの機会に「ログイン有無で表示をかえる」「会員サイトの作り方」をと思います。

↑このページのトップヘ