Posts tagged ‘WP AIOS troublesome’

先日書いたが、このブログで使っているセキュリティプラグインAll In One WP Security(以下、All-in-one)の更新に伴う不具合らしきもののために管理画面にログインできなくなって、慌てた。その後調べたら、似たような問題が起こっている方が結構居て(→ )、やっぱりAll-in-oneに問題がある可能性が高く、別の もっといい(まともな)ものに換えたくなって居た。

必要な機能をリストアップしたものの、探したり試すのが面倒で放置して居た。が、昨日、ちょっとやる気が出たので試してみたら、元のものより良いものは ないうえに、プラグインには関係のない問題(REST APIが動かない)も見付かり(最後に書く)、そこでも苦労して いつものように「骨折り損の くたびれ儲け」となり、疲れた。

結局、(僕には だろうが、)All-in-oneが一番良かった。確かに どうしようもない問題が起こって信頼度や安心感は落ちたが、バージョンが大きく上がって、(人も替わって?)「たまたま」充分な動作確認ができないまま出しちゃったんだろうと想像・期待する。

まあ、某 窓に比べれば可愛いものかも知れないねw

でも、もしまた同じようなことがあったら使い続けるかは分からない。とは言え、今回の比較で、現状では いいものがないことが分かった(そもそも、All-in-oneにした時も そうだった!)ので、どうしようもないが・・・

それに、もしログインできないとかの誤動作が起こっても、緊急的にプラグインを解除して復旧させる方法が分かったので、それくらいなら大丈夫だw

 

以下、条件、候補・試したものと評価・感想を書く。

要求条件 (ALl-in-oneで使っている主な機能を重要な順に)

  • ログインページURLの変更
  • XML-RPCのブロック
    • 忘れて居たが、webサーバでブロックしているので実際には なくても良かった。
  • 非ログイン状態でのREST APIのブロック
  • 連続スパムでIPアドレスをブロック
  • ユーザーリストの禁止
  • 繰り返しのログイン失敗でIPアドレスをブロック
  • 特定ユーザー名(adminなど)でのログイン試行でIPアドレスをブロック

試さなかったもの (予選落ち)

  • Jetpack – WP Security, Backup, Speed, & Growth: 高速化がメインのようだし、関係ないものが詰め込まれているので止めた。
    • 以前、高速化で試したが、うまく動かなかったこともある。

試したもの (概ね試した順に)

  • SiteGround Security
    • 使用データの収集を許可しないと、それを促すメッセージが出続けるので止めた。
    • また、REST APIが動いて居ないというエラーも出続けた。 → あとでWP自体(またはサーバ設定)に問題があることが分かり、対処した。
  • Security & Malware scan by CleanTalk
    • 使うにはAPIキーが要る(自動的に取得できる)。
    • しばらく使うまで気付かなかったが、そのキーは有料サービス(クラウドの「ダッシュボード」, 確かUSD 6/年)の試用用(2週間しか有効でない)で、そのあともプラグイン自体は使えるが、機能としては今一つになること(例: ログが最新のものしか見られなくなる)や、最初に有料サービスであることが明示されなかったので騙された気分がしたので止めた。
    • ただ、クラウドも含めた機能としては悪くなかった。
  • iThemes Security
    • 多くのレビューのとおりで、設定画面が変(デモ版みたいな感じで、細かい設定がない)で、ちゃんと動く気がしなかったので止めた。
      • これを ちゃんと使える人は居るのだろうか??
  • Wordfence Security
    • ログインページのURLが変えられないので止めた。
      • 確かに、インストール前に見た説明にも書いてなかった。
      • 随分有名なようだが、こういう基本的なことができないのは不思議だ。
  • Hide My WP Ghost
    • ログインページのURLを変えるにはwebサーバの設定変更が要るようなことが表示されたので、止めた。
      • あと、変更先のURLが変えられない感じだった。
  • Anti-Malware Security and Brute-Force Firewall
    • 有料版でないと機能が貧弱なので止めた。
  • WPS Hide Login
    • 名前のとおり、単体ではログインページのURLを変えるだけしかできないので、面倒で止めた。
  • Defender Security
    • XML-RPCとREST APIのブロック機能がないので止めた。
    • 他の機能的は悪くなかったものの、無料版はいろいろ惜しい一方で、有料版は かなり高い(USD 7.5/月)。
    • アメコミ的な絵(スーパーマンとかMr. インクレディブル風)は好みが分かれるw、というか要らない。

最後に残った候補 (決断する ちょっと前に良さそうだと思った順に)

  1. Security & Malware scan by CleanTalk
  2. All In One WP Security
  3. Defender Security

ひとまずCleanTalkを試すことにしたのだが、良く考えてみると、機能面ではCleanTalkが断然いいということはなく、総合的にはAll-in-oneのほうが良さそうだと気付き、(耐え難いものを耐えて)All-in-oneに戻った。

そして、最後の判断材料とした2つの比較を示す。

  • All-in-one
    • 長所
      • 必要な一通りの機能が揃っている。
        • 実際には ものすごく多くの機能がある。
      • 設定が細かくできる。
      • スパムコメントのブロックもできる。
      • 本当に無料で使える。
        • 有料版も あるはずだが、無料版で物足りないと思ったことがない。
    • 短所
      • WebサーバがApacheでないと使えない機能が結構ある。
      • マルウェアのスキャンは ない。
      • 近頃の信頼性(主に開発体制的なもの)に不安がある。
  • CleanTalk
    • 長所
      • ファイアウォールにSQLインジェクションのチェック機能がある。
        • これだけは欲しい。別のもので できないかと思う。
      • マルウェアのスキャンが ある。(ただ、インストールされたあと(= 既に実行されたかもしれない)にスキャンするので、ほとんど意味がない。)
      • ボットのブロックができる。(本当に悪意のあるボットは正直にUAを出す訳がないから、あまり意味がない。単なる気休め。)※
        • あとで気付いたが、この機能はAll-in-oneにもある。
    • 短所
      • 「無料詐欺」的。
      • いろいろな通知メールが鬱陶しい。(設定が なくて停められない)

※興味があって、先月の このサーバへのアクセス中のボットかららしきもの(要求ヘッダに"bot"か"crawl"が入っているもの)を調べたら、2割未満だった。少なくはないが、中には悪性でない(とされる)もの(例: Google)も多いだろうから、ムキになってブロックするほどでもないと感じた。

 

最後に、頭に少し書いたREST APIの問題について。

SiteGroundでREST APIがエラーになったのが気になって調べた。: セキュリティプラグインのREST APIのブロックを解除してもエラーになった。最初はwebサーバの設定が悪いのかと思って試行錯誤したが、そうではなく、WordPressの既知の問題のようだった。

どういうことかというと、WordPressは ある時勝手にREST APIを追加したが(そもそも、これが何のためかも分からないし、普通に動かしているとセキュリティ上の問題になるのがおかしい)、普通の設定だと使えないことが多いのだ。

そのため、ちゃんと動かないので、特別ブロック・対処していないサイトでも 瓢箪から駒的に安全になっている・・・

そういう点ではWPは大変良くない感じで脱却したい気はするが、プラグインどころの騒ぎじゃないし、いろいろ手を加えて便利に使って居るので簡単ではない。

動かないのはセキュリティ面でいいものの、意図せず(何かの問題で)動かないのは気に入らないので、調べて動くようにした。結局、以下のいずれかをすればいいようだったが、このサーバでは最後のものしかうまく行かなかった。

  • WPのパーマリンク設定をpost nameにする。 (→ 参照)
  • REST APIのURL: /wp-json/*を/index.php/wp-json/*に換える。 (→ 参照)
    • /index.php?wp-json/* という情報もあった。
    • Webサーバなどの設定で行う。
  • REST APIのURL: /wp-json/*を/?rest_route=/*に換える。 (→ 参照1 → 参照2)
    • Webサーバなどの設定で行う。

それで、Webサーバの設定を変えるのは大ごと(いつも苦労している)なので、手軽に、WPのURL書き換えプラグインRewrite※にルールを追加して対処した。以下のようにした。

最後に追加:

    • Pattern(元): wp-json(/.*)$
    • Match(書き換え後): rest_route=$matches[1]
    • 動作: 元のURLの"wp-json"以降("/"も含む)を"rest_route="のあとに付ける。
      • 上のページでは、書き換え後には/?が先頭にあるが、なくても動作した。おそらく、ここに来る前に付いている(相当な)のだろう。

※このRewriteは便利なのだが、WPの元々のルールに場当たり的に追加して来ているので、なくてもいいものや良くない動きをしているものがありそうだし、何かあったら回復できないので、なかなか爆弾的なものだ。

まあ、そもそも「これ、何に使ってんの?」、「何か いいこと あるん??」って聞きたいくらいだから、直しても何もいいことはないが、(いつものように)気分の問題で直した。

 

まあ、これで一個でもTODOが消化できたのは良かった。しかも、気付いていなかった問題も直せた。

終わってみると、全部、(ちょっと我慢すれば)やらなくても良かったことのような気がしないでもないが・・・w

 

PS. 全く関係ない話。ブラームスを茶化したツイートがあった。: もし彼が今生きていてSNSでメッセージを送ったら、受け取った相手が「あなただけ なんでそんなに長いのよ」と嘆く場面で笑った。彼は何か 言い訳してた気がするが覚えてない。: ブラームス(の曲)は好きじゃないが、僕も同じ類だwww

  •  0
  •  0
Keys: , , , , , , , ,

昨夜、寝る前に突然やって来た。どうにか対処したものの、大変な寝不足になってしまった。

以下、簡単に流れを書く。

  1. なぜか、ブログの管理画面にログインできなくなった。2要素認証(以下、2FA)が失敗する。
    • 一瞬、サーバが(一種のランサムウェアに)攻撃されて、絶対に入れない状態になったのかとも思った。
      • ただ、sshは問題なく、別のシステムの2FAは成功したので、ブログだけの問題なことが分かってホッとした。
    • あとで分かったが、セキュリティのプラグインAll In One WP Security(以下、All-in-one)の2FAが設定していないにも関わらずonになったようだ。
      • 近頃の更新で、All-in-oneに2FA機能が追加されたけど全然気付いていなかったのが、そもそもの敗因だった。
      • 自分では その2FAをonにした記憶がないので、勝手にonになったか、元々の2FAのプラグインと勘違いしてonにしたのかも知れない。
      • ただ、何も設定していないのに有効になる(できる)のは、とんでもなく ひどい!
        • 間違えて2FAの機能をonにするだけなら有り得るが、どのユーザーを2FAにするか、どんな方式(例: OTP, ハードキー)にするか、OTPなら確認のコード入力など いろいろあるのに、間違えて そこまで設定することは全くない。
      • 元々の2FAのプラグインの設定を流用して勝手に設定されたのだろうか?
        • 書いたあとで分かったが、All-in-oneの2FAをonにすると、管理者などの権限を持っているユーザーは2FAが有効になってしまう。罠だ。
          • そこで、All-in-oneの設定で、2FAを有効にする対象(権限・役割)を なし(全部チェックせず)にしたら、2FAの設定タブがなくなったので、もう間違うことはなさそうだ。
  2. (元々の)2FAのプラグインが変な状態になったと考えて一旦無効にしようとしたが、管理画面に入れないからできない。
    • それで、コマンドラインでプラグインのファイルを削除したが、なぜか2FAを無効にできなかった。
      • その前に、元々の2FAのプラグインのサイトを参考に、設定ファイルで無効にする方法を試したが、効かなかった。
    • 良く調べたら、(上記のように、)元々の2FAのプラグインとは別の、All-in-oneが2FAのOTP入力画面を出していた。
      • 最後は、認証エラーで出ているエラーメッセージを、インストールしているプラグインのプログラムから検索して特定した。。。
      • 似たような画面なので全く気付かず、どうしてもログインできないのが不思議だった。
    • それで、コマンドラインでAll-in-oneのファイルを一時的に削除して どうにかログインし、All-in-oneの2FAを無効にして、今までどおりログインできるようになった。
  3. PHPがダウングレードできない。
    • All-in-oneが悪いと分かる前、近頃更新されたPHPの互換性の問題で元々の2FAのプラグインが うまく動かなくなったかと思い、ダウングレードして試そうとしたものの、いろいろな依存関係のために諦めた。
  4. メールがGmailに送れない。
    • ログイン画面のパスワードリセット機能を使おうとしたが、その案内メールが届かなかった。
      • 届くこともあるのが謎だったが、どうも後述のDNSの逆引きがうまく動いていないためのようだった。
      • 更に、そのメールはパスワードをリセットするだけで、2FAには何もしないので無駄だった。
        • そもそも、元々の2FAのプラグインにはバックアップコードがあるのだが、All-in-one(バックアップコードは有料)とは違うので使えなかった。
    • 調べたら、Googleがスパムと判定するためのようだった。
    • メールの送信元認証システムのSPFやDKIMなるものを設定しないとGoogleはスパム扱いするようなので、(深夜なので止めておけばいいものの・・・)「ちょっと」SPFを設定してみた。
  5. SPFの設定がうまく行かない。
    • 自分のドメイン名を管理するDNSサーバにSPFを設定しても、チェッカーでは「SPFの設定なし」と出た。
      • 原因が良く分かっていないが、DNSの逆引き設定の不良(未設定?: 後述)とDNS情報の伝達遅延のせいだったようだ。
      • 書いたあとで調べたら、原因が分かった。 (9/9 13:56)
        • DNSサーバにSPFを設定する場合、TXTレコードとして書くのが一般的なようだが、以前はSPFレコードとして書く方式もあったけど廃れたようだ(→ 参照)。
        • 一方、僕は良く分からずに、(DNS設定画面のプルダウンメニューに出て来たから)SPFレコードで設定したので、チェッカーが「設定なし」としていたことが分かった。
        • SPFレコードからTXTレコードに設定し直したら、チェッカーもGmailへのメール送信も成功した。
          • 想像だが、未だにSPFレコードをサポートするのはGoogleくらいなのではないか??
  6. DNSの逆引き(IPアドレス→ドメイン名)がおかしい(未設定?)。
    • このサーバの設定項目に逆引きがあるが、ドメイン名のDNSサーバに登録すれば不要だと誤解していて、設定していないのが駄目だったようだ。
    • ただ、今まで、ちゃんと逆引きできていたこともあるので、それは どこのを参照していたかが謎。
      • 記憶が定かでないが、一時設定していたけど止めたのが どこかに残って居たのかも知れない。
    • あと、不勉強なため、逆引きは どこが標準(権威を持つ)サーバなのか分からなかった。このサーバのプロバイダなのだろうか?
      • サーバのプロバイダに問い合わせたら、想像どおり、このサーバのプロバイダにしか逆引き情報は設定できないとのことだ。

 

悪戦苦闘して何とかなったが、All In One WP Securityの ずさんさに呆れたしムカついたので使うのを止めたい。が、代わりの いいものを探すのが面倒だ。あと、DNSの逆引きの件は もう少し調べて勉強したい。

それにしても疲れた。。。

 

PS. 今朝、どうにか片付いて力尽きた頃に、UKの女王が亡くなられたようだ。その頃のツイートに、「BBCの出演者が みんな黒い服になった」というようなものがあった。

頭の中で、時々、(Queenの)"God save the Queen"(1975)が流れ、メイのちょっと寂しげなギターや最後の余韻のようなドラムに浸る。

  •  1
  •  0
Keys: , , , , , ,