PC設定覚書と雑記

 このサイトの表示に関する不具合についての正しい対処法が未だに掴めていません。

現時点での対処ですが、新しいNetcommons3.3.4ディレクトリを上書きして、アップデートコマンドを実行させるという作業を行いました。

この上書きの際、元ファイルのパーミッションを保持したままのコピーとし、最後にディレクトリとファイルの所有者をwebサーバーに変更しておきました。

これでしばらく様子を見てみます。

DDNSサービスについて 2021-10-04 [okamoto]

 10月に入って、サイトのメンテ中に光モデムルーターを再起動して、WANからのアクセスがしばらく出来なくなったんですが、今回は復帰までの時間がちょっと長かったんです。

光モデムルーターを再起動すると、割り当てられているグローバルIPアドレスが変わります。

一方、DDNSサーバーへの通知は30分おきにしかしていないので、DDNSサーバーが持っている情報は最長30分は古いままです。

 

①最長30分後、DDNSサーバーは更新情報を受け取ります。

②DDNSサーバーからDNSサーバーへ新しいDNS情報が通知されます。

 

①のあと、②はすぐに行われると思っているのですが、多くのDNSサーバーに情報が行き渡るのには時間がかかるでしょう。

 

 固定ipを持っていないサーバーではこんな感じになり、WANからアクセスできない時間がしばらく発生してしまう訳です。

今回の件で、今まで何気なく利用させていただいてきたDDNSサービスについて、改めてありがたさを感じました。

自分はMydnsを使わせていただいているのですが、最近は国内の無料DDNSサービスはここだけになってしまったのではないでしょうか?

古くからあったアゴラ社のieserverはサービスを休止(停止?)しているようですので、Mydnsが最後の頼みの綱ということになります。

これまでの自分は、この無料DDNSサービスへの感謝が足りなかったと反省しているところです。

 

 もう一つ、Mydns の twitter に次のような内容が tweet されていました。

 

 Ban4ip は IPv4 及び IPv6 用の、/64のようなネットマスクでもBAN可能な防御(ロックアウト)ツールです。

ホワイトリスト(非制限アドレス)機能もあるので安心です。

 

このツールは、サーバーへの悪意あるアクセスをアクセスログの解析等によって防御するものらしく、Mydnsサーバーへのアクセスについて審査されていると思われます。

当然、自分のサーバーからもMydnsサーバーに毎日30分毎にアクセスしているので、不正アクセスでないか審査が行われているものと推測されます。

DDNSサービスが動いているか停止しているか表示してくれる別サイトがあるのですが、自分はこのサイトの情報を見てMydnsのDDNSサービスがdownしているんだと判断していました。

現在も、この別サイトの情報によると、Mydnsサービスはdownしていることになっているのですが、どうも違うのではないかと思っています。

しばらく様子を見てみようと思っています。

また、Mydnsサーバーへのアクセスコマンドですが、とりあえず使用例にならって、curl から wget に変更しておきました。

 現在、20時16分ですが、LAN内からブログ更新しています。

しかし、外部つまりWANからのアクセスが出来ない状況です。

お世話になっているMydnsのDDNSサーバーがダウンしているようなんです。

このサーバーが復旧してくれないと、このサイトはWAN上に公開できないのです・・・

 

DDNSサーバーが復旧した時、この記事が見えているはずです。

 いつものようにサーバーOS(Debian10)のアップデートをしていたら、エラー表示が!

 

---@aaa:~# apt update

Err:4

https://packages.sury.org/php buster InRelease
The following signatures were invalid: EXPKEYSIG ********** DEB.SURY.ORG Automatic Signing Key <deb@sury.org>

W:

An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: https://packages.sury.org/php buster InRelease: The following signatures were invalid: EXPKEYSIG ********** DEB.SURY.ORG Automatic Signing Key <deb@sury.org>

W:

Failed to fetch https://packages.sury.org/php/dists/buster/InRelease The following signatures were invalid: EXPKEYSIG ********** DEB.SURY.ORG Automatic Signing Key <deb@sury.org>

W:

Some index files failed to download. They have been ignored, or old ones used instead.

 

このエラーはGPGエラーで、署名が無効だと言っています。

アップデートファイルをダウンロードする時、GPGキーという公開鍵を使って正しい配布先からのファイルであるかのチェックをしているんですが、GPGキーには有効期限があるんです。

ということで、GPGキーを新たに取得してきます。


---@aaa:~# wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
--2021-05-02 11:00:22-- https://packages.sury.org/php/apt.gpg

Resolving packages.sury.org (packages.sury.org)... 2606:4700:3037::6815:1294, 2606:4700:3030::ac43:b696, 172.67.182.150, ...

Connecting to packages.sury.org (packages.sury.org)|2606:4700:3037::6815:1294|:443... connected.

HTTP request sent, awaiting response... 200 OK

Length: 1769 (1.7K) [application/octet-stream]

Saving to: ‘/etc/apt/trusted.gpg.d/php.gpg’

/etc/apt/trusted.gpg.d/php 100%[======================================>] 1.73K --.-KB/s in 0s

2021-05-02 11:00:22 (8.70 MB/s) - ‘/etc/apt/trusted.gpg.d/php.gpg’ saved [1769/1769]

 

新しいGPGキーを取得できたようです!

では、再度アップデートしてみます。

 

---@aaa:~# apt update

Get:1 https://packages.sury.org/php buster InRelease [6,823 B]

Get:7 https://packages.sury.org/php buster/main amd64 Packages [316 kB]

Fetched 316 kB in 3s (122 kB/s)

Reading package lists... Done

Building dependency tree

Reading state information... Done

24 packages can be upgraded. Run 'apt list --upgradable' to see them.

 

エラーなくアップデート出来ました!

新しい24個のアップデートパッケージが見つかったので、この後 apt upgrade コマンドでこれらのパッケージを適用しました。

このGPGエラーは期限切れで発生するので、あせらずにGPGキーを再取得してアップデートしてみて下さい!

 全く偶然ですが、自宅サーバーで運用している Nextcloud に Talk というプラグインが用意されていて、通話、ビデオチャットも含めたチャット機能が備わっているのを発見!!

早速プラグインを有効にしてみました。

また、android、ios用のアプリも用意されていて、スマホに無料でインストールできます!

昨夜、早速娘とチャットのやり取りとチャット通話の実験をしてみました。

(娘のニックネームはネズミなんです! 笑 )

これ、LINEとほぼ同じ感覚で使えそうですね!

すごい!!

これでいけるかも。

しばらく色々な実験をして、安定に使えるか確かめてみたいと思います。

 阪神淡路大震災、そして東日本大震災でも経験したんですが、このような時、連絡を自由自在に取り合ったり、安否をすぐに確認したりということが難しくなりますよね?

このような事態に遭遇した時、どのように連絡を取り合うのか、いい方法がないか考えています。

例えば、3.11東日本大震災の教訓から生まれた「LINE」という素晴らしいアプリケーションがありますね!

LINEは災害時の安否確認等にも威力を発揮してくれると思うのですが、過去、システム障害が発生したことがあるそうです。

他のサービスでも同様だと思いますが、図中クラウド上のサーバーに多数の利用者のデータが集中すれば、さばき切れなくなることは予想できます。

自由に連絡が取りあえるシステムを何とか作れないでしょうか?

たとえば、レンタルサーバー上にチャット機能を持たせた簡単なサイトを作るとかです。

Peer to Peer接続であれば、サーバーを介さず1:1で通信できるので、緊急時の連絡システムとしてはこれが一番良さそうです。

LINEは、ユーザーIDなどのアカウント情報は管理していますが、データファイルやトーク履歴などはLINEサーバーを介さずユーザー同士が直接管理しているそうです。

(しかし、実際の通話やチャットの中身のやり取りはPeer to Peerではないそうです)

 

 最近、ふと思いついたことがあるんです。

もし、自宅までの光回線が、クラウド上のサーバーまでの光回線と同じくらいの程度で安定であれば、ルーターやサーバー本体への電源をしっかりと確保した自宅サーバーでも使い物になるのではないかということです!

つまり大規模停電等が起こっても自宅までの光回線がダウンせず、サーバー周りへの給電は太陽電池と充電池を組み合わせたもので行うようなシステムにしておけばいいのではないか?

まだ実験の段階なので、運用中の自宅サーバーを使って試している最中です。

RocketChatサーバー(snapインストールだともの凄く楽でした!)はインストールしてみましたが、緊急事態に突然初めてのユーザーが利用するには、初期設定等かなり面倒でした。

LINEと同程度に簡単にすぐ利用開始できるものがいいですね!

(続く)

なぜ自宅サーバー? 2021-01-31 [okamoto]

 このサイトは自宅サーバーでの運用ですが、自宅サーバー運用はデメリットの方が非常に多い訳です。

自宅サーバーのデメリットは検索すれば沢山出てきますが、デメリットの中で最も怖いのは、

 ①サーバーマシンから発火して火災が発生する!

 ②セキュリティーを破られて不特定多数の方に迷惑をかける!

 

 自分でサーバーマシンを組み立てて、ソフトをインストールしてシステムを作るというのはもちろん楽しいことではありますが、上記のデメリットだけで充分大きなリスクですね!

自分のサーバーでは、今のところですが、運用当初よりトラブルはなく安定しているのですが、常に面倒を見続けなければならない状況はこれからも変わらないでしょう。

ところで、自分が自宅サーバーを始めた理由ですが、

 ①職場と自宅の間の大容量ファイルのやり取りをする環境が必要だった。

 ②一般的なクラウドを使って仕事で使うファイルをやり取りすることは当初職場では禁止されていたし、許可されていたとしても自分には抵抗があった。

 ③校務でネット上のグループウェア(Netcommons2)を操作しているうちに、自分の仕事にも活用できそうだと思った。

 ④音楽ファイルをサーバーに貯めておけば、ネット上でアクセスできる。容量が非常に大きな音楽ファイルでも自宅サーバーなら容易に実現できる。

 

 今の仕事を続けている間は、自分にとって①~③は重要ポイントなんです。

完全退職後は、①~③は不要になりますし、これらの一部機能はレンタルサーバー上で実現すればOKでしょう。

④は車の運転中にタブレット等を使って音楽を流しておくとかで残したい機能なんですが。

といった感じで、今のところは充分に気をつけながら自宅サーバーを運用していこうと思っています。

 

 実は今もう一つ、作りたいものがあるんです。

震災や風水害等の大災害が発生した時の連絡システム、安否確認が出来るシステムです。

災害時の連絡ツールはLINEが良さそうですが、LINEでもシステム障害が起こったことはあるそうですし、LINEよりデータの流れがシンプルなものを作れないかということなんです。

この件についてはまた別の機会に書こうと思います。 

自分のWebサイトを今後どうするのか、いつまで運用できるのか、良く考えるんですが、

 ①自分自身でサーバーマシン、システムのメンテ、サイトの更新が出来る時まで

 ②このNetcommons等のWebアプリケーションの開発が続き、自分自身で更新していける時まで

 ③無料DDNSサービスが継続するまで

さしあたってはこんな感じなんですが、②のNetcommonsに関しては不安があるんです。

自分が持っている程度のスキルでNetcommonsのメンテを続けていくためにはWeb上での多くの情報が必要ですが、現状では情報があまり得られていません。

Netcommonsの運営方針も昔とは異なってしまい、今後どうなっていくのか現時点では不透明です。 

自分もあと数年で教育現場から完全に引退すれば、グループウェアもあまり使わなくなってくるかもしれません。

 今日何気なくサイトを見ていたら、「Wordpressがグループウェア的に使える」といった感じの記事が目に留まりました!

Wordpressは、大規模なWebサイト構築に使われているCMSで世界中で広く利用されています。

また2020年の統計では、世界中のCMSの60%以上、世界中のWebサイトの35%以上のシェアを持っているソフトです。

Wordpressの運用情報は非常に多く、このシステムの構築とメンテナンスを続けていくことに関しては先が明るい感じがします。

Netcommonsのような高度なグループウェア機能はないかもしれませんが、ちょっと気になる情報でした。

現状では、例えば以下のようなプラグインを使うことでグループウェア機能を実現しているようです。

ということは、今後新しいプラグインも開発されていくかもしれませんね!

 Debian10サーバーによるRAID1システムが出来上がったので、Sambaファイルサーバーの運用を再開しました。

ところが、Webminでディスクの状況を確認してみたところ、赤字で「degraded」の警告らしきものが出ていました。

degraded?

「劣化? 退化? 低下?」!!

異常の通知のようですね!

 

このディスクはWD社REDのNAS用モデルなんですが、Webサーバーのシステムディスクとして1年以上ノンストップ連続運転させていたお下がりなんです。

エラーも出ていないしまだ使えるだろうと思っていたんですが、やっぱりもうダメかな? と調べてみることにしました。

すると、どうもこの前やった実験(RAID構築後に片側ディスクだけで起動するか)のあと、両方のディスクを接続し直しただけではRAID1システムは再構築されていないようだということが分かってきました。

RAIDが不完全なまま動いているようで、これではダメですね!

きちんと復旧させておかなければいけません。

そしてその復旧作業のあと、念のために、どちらの片側ディスクからも起動することをもう一度確かめておく必要があります。

もちろん、最終的には再度RAID1復旧作業を行って終わりにしておかないといけませんが。

こういう実験は今回のような自粛期間中にどんどんやっておきたいと思います!

外で動けるような日に室内に閉じこもって作業するのはイヤですからね!(笑)

 ソフトウェアRAIDは、当然ですが、OSが立ち上がった後でないとRAIDが機能しません。

ということは、OSが立ち上がるまではRAID動作ではないし、RAID動作開始までは1本のみのディスクで動いているということになります。

ですから、起動ドライブ(ドライブ1)に不具合が発生してしまうと、起動さえも出来なくなってしまいます。

これを避けるために、「ドライブ2にもMBRを用意しておきgrub 等のブートストラップローダーをドライブ2にもインストールしておけば良い」と書かれています。

しかし、今までこの作業をしてきませんでした。

RAIDシステムが出来上がって機能し始めれば、トラブルが起こるまでは対応は必要ないし、「まあ後で対応すればいいや」と思いながら結局対応しないままになっちゃっていたんです。

さて、サーバーOSのインストールはインストールメディアから立ち上がるインストーラーに任せていますが、最後のgrubインストールで/dev/sdaを指定してインストールが終わった後に、再度grubを/dev/sdbに手動でインストールするようにと、手引きには書いてありました。

ところが、この作業がエラーになってしまい上手くいきません。

試行錯誤している中で、今日試してみた作業がたまたま上手くいったので書いておきます。

 

 RAID構築が終わったあと、インストールメディアをレスキューモードで起動させます。

①ディスク1、ディスク2をRAIDドライブとして認識させる。

②RAIDドライブを構成している/dev/sdbを指定してgrubをインストールする。

これでうまく行きました!

 もちろん、うまくいったかどうかの検証が必要ですね。

まず、ディスク2を外して電源を入れてみます。

起動してディスク1本のみの環境を作っているようです・・・

この後しばらくしてログイン画面となりました。

起動完了したようです。

 では、次にディスク1を外して電源を入れ、ディスク2からの起動を試みます!

立ち上がりましたね!

先ほどと同様、ディスク1本のみの環境を作っているようです・・・

この後、しばらくしてログイン画面が表示されました!

ディスク2からの起動もOKのようですね!

最後にディスクを2本とも元通りに接続して、電源を入れてみます。

2つのディスクを完全に同期させる動作を行っているようです・・・

このあと最終的な結果が表示され、RAID1環境が完全に出来上がっていることが確認できました!

もう少し実験したいことがありますが、これで重要な一区切りまでは行けたようですね!