V-antena and Tanimoto's page

谷本の備忘録・雑記帳・work

>

カテゴリー: wordpress

CATEGORY ARCHIVE

以前の設定を忘れていてwordpressにログイン出来なかった。その顛末

トラブル内容

PCが接続しているルーターを変えたところwordpressにログインできなくなってしまった。正確にいうと、wp-admin配下にアクセスする際に403エラーが発生する。

wireguardを外してもだめ。wordpress配下の.htaccessを見直してもダメであった。

判明した原因

セキュリティ強化のため、wp-admin配下にも.htaccessを設置してIPアドレスによるアクセス制限を行っていたのが原因。 新しいルーターに対応したIPアドレスを許可したところ解決。

カテゴリーを選択すると複数表示されるがそこから単独記事表示にできなかったため、単独記事に移れるようにタイトルにリンクを付けた

変更前

archive.phpでタイトル表示部が

<?php the_title();?>

であった。

変更後

<a href="<?php the_permalink();?>"><?php the_title();?></a>

に変更した。

参考にしたサイト

こちらのサイトを参考にさせていただいた
https://programmingnote.jp/archives/82

ロボットによるスパム対策としてSiteGuard WP Pluginを導入した。

背景

スパムであると思われるコメントが多数届く。同じアドレスからもくるのでロボットかと思う。それで、画像認証を導入する事にした

導入したプラグイン

以下のサイトを参考にしてSiteGuard WP Pluginにした

' https://ideasity.biz/si-captcha-anti-spam-captcha-replace

V6プラスだけで自宅サーバーをうまく設定出来なかったのでV6プラス+PPPoE(IPv4)にした。その備忘録である

背景

これまでADSLでinternet接続を行ってきていたがADSLサービス停止に伴い、光回線に変更した。V6プラス接続である。しかし自宅サーバーにてwordpressを運用していたが、V6プラスだとポート番号に制限があるため、デフォールトのままだとwordpress運用をあきらめざるを得なかった。そこで、いろいろ試して最終的にPPPoE(IPv4)接続もできる様にした。

失敗1 IPv6でサーバーに到達できず

 onu(prs300se)で、ipv6フィルタリングで透過が許可されていなくて出来なかった。これは、PR-S300SEのセキュリティーログで判明。 prs300seのIPv6フィルタリング設定で透過できる様にした。
(※最終形態では不要となった)

また、サーバーのファイアーウォールでIPv6からの受信を規制していたので必要分は開ける。

失敗2 インターネットに接続できず。

フィルタリング、最後の行ではあるがanyでtcpのinを拒否していたのがだめだった。この部分を削除したら、着信できた。

失敗3 wordpressがポート番号指定でうまく動作せず

ネットで調べて絶対パスから相対パスに変えてみたところ、画像表示は出来た。しかし、どうしてもリンクのところがうまくいかない。  結局、固定IPサービスを購入する事にした。

失敗4 pppoe(固定IP)にしても着信できず。


  ipv4フィルタリング以外にnatエントリーの設定が必要であった

最終形態 V6プラス+pppoe(ipv4)で接続成功

最終的に以下の設定で接続できた

構成イメージ図
  • v6プラスのメイン(ユーザーA)以外に、固定ip(pppoe(ipv4))(ユーザーB)を用意する。
  • hubを用意する
  • hubにNTTからのルーター機能付きonu(prs300se)と、v6プラス用ルーター(プロバイダーからレンタルされたもの:ルーターA)と元からあったipv6対応ルーター(ルーターB)を接続する。
  • ルーターAをV6プラスの接続に設定する(ユーザーAで接続される)
  • ルーターBをpppoeルーターとする。接続先は、ユーザーBで設定する。

動作がおかしいときは、変更したONUやルーターを再起動してみる

参考:機器構成

  • ONU   : PRS300SE
  • ルーターA: Aterm WG2600HS2 (プロバイダーかNTTから送られてきた)
  • ルーターB: TP-LINK Archer c80 (安価なIPV6対応ルーターなので選んだ)
  • HUB : Elecom EHC-G05PA2-W (安価で、かつGbit対応だったので選んだ)

※ lanケーブルは全てカテゴリー5E以上にした。カテゴリー5は100Mbpsまで。
  その他注意:ipv4フィルタリングとnatエントリーを確認

WordPress上で数式をきれいに表示するためにmathjax-latexプラグインを導入したので備忘録として残す。なお、cdnを使わない方法を採用した。

node.jsとnpmをインストール

mathjaxをnpmを使ってインストールする方法の場合に必要。

sudo apt update
sudo apt upgrade
sudo apt install nodejs npm
node -v
npm -v
sudo npm install -g n
sudo n stable
sudo apt purge nodejs npm
exec $SHELL -l
node -v
npm -v

この手順は、「nodejs、npm の最新版をインストールする(Ubuntu)」を使わせていただいた。

mathjaxのインストール

npm install mathjax@3
sudo mv node_modules/mathjax/es5 /var/www/html/mathjax

これは、[ Hosting Your Own Copy of MathJax ] によるもの

プラグインの導入

mathjax-latex プラグインをインストールし有効化する。

設定においては、以下の様に設定した。

Use MathJax CDN Service ?           チェックを外した
Custom MathJax location?            https://mydomain/mathjax/tex-chtml.js   

Save changes をクリックする。  
理由不明だが、外したチェックが復活してしまう。 なんどかやっていたり、動くか試しているうちにどのときか不明だが成功した。

試してみる

例えば、

\(y=f(x)\)

と、入力すると、下記の様に数式が表示された。 一応成功とする。


\(y=f(x)\)

アクセスログを見ていたところ 「・・・/wp-json/wp/v2/posts/・・・」 といったアクセスがありそこにアクセスしたところ、いろんな細部の情報が表示される。 security上問題があるのではないかと思い、アクセスを禁止した。

参考にしたサイト

’https://www.webdesignleaves.com/pr/wp/wp_user_enumeration.html

コードと補足

単なるアクセス禁止だと、Gutenbergから「更新に失敗しました。 REST API is disabled」というメッセージが出る結果だっと。それで、結局上記の参考にさせていただいたページの「WP REST API を無効にする」の部分のコードを使わせていただいた。 function.phpに追加したコードは以下。

    add_filter( 'rest_authentication_errors', function( $result ) {
      if ( ! empty( $result ) ) {
        return $result;
      }
      if ( ! is_user_logged_in() ) {
        return new WP_Error( 'rest_not_logged_in', 'You are not currently logged in.', array( 'status' => 401 ) );
      }
      return $result;
    });
V-antena and Tanimoto's page

あなたはIPv4でアクセスしています