OS が FreeBSD11.4のサーバーを使用していますが、最近、パッケージのバージョンアップが無いな~と感じ始めました。
freebsd.org のホームページを確認してみると、私が使用している FreeBSD 11.4 は 2021/09/末 でサポートライフサイクルで、すでにサポートが終了していたことになっていました。https://www.freebsd.org/security/unsupported/
まあ、これは仕方ない。サポートが終了するとバイナリーによる更新が不能になるだけで、ソースコードレベルではメンテナンスを続きます。要するに、コマンド一発で、修正されたプログラムがネットワーク経由で送られてくることは無くなりましたが、ports ディレクトリーで、ビルドコマンドを発行して自分でインストールすればいいわけです。時間はかかりますが、夜間に自動でビルドプログラムを実行すれば半年くらいは運用を続けてゆけるのが今までの状況でした。
ところが、End of Life 適用後、ソースコードレベルのメンテナンスは、わずか2か月で問題が出始めました。
WebサーバーとしてApacheを利用していますが、このHTTPサーバーをビルドしたり、起動したりすることができません。HTTPサーバーの更新ができないというのは、ちょっと問題。HTTPサーバーは高確率でセキュリティーホールを含んでいますからね。具体的な症状は二つ。
あるサーバーでは、portupgradeコマンドが “configure” failed unexpectedly で終わってしまいます。
checking whether to enable mod_lbmethod_byrequests... checking dependencies configure: WARNING: "mod_proxy_balancer is disabled but required for mod_lbmethod_byrequests" checking whether to enable mod_lbmethod_byrequests... configure: error: mod_lbmethod_byrequests has been requested but can not be built due to prerequisite failures ===> Script "configure" failed unexpectedly. Please report the problem to apache@FreeBSD.org [maintainer] and attach the "/usr/ports/www/apache24/work/httpd-2.4.52/config.log" including the output of the failure of your make command. Also, it might be a good idea to provide an overview of all packages installed on your system (e.g. a /usr/local/sbin/pkg-static info -g -Ea). *** Error code 1 Stop.
つまり、Apacheを更新できない。
別のサーバーでは、Apache24のビルドには成功するものの、service apache24 configtest や service apache24 start で、HTTPサーバーの設定をテストしたり、起動しようとすると undefined symbol RAND_egd が出てApacheが起動しません。
mod_ssl.so: Undefined symbol "RAND_egd"
ゆっくり解決する時間が無いので、バイナリーインストールできる範囲の最新バージョンに戻しました。
後者の現象はOpenSSL周りの問題のようで、仮に、ビルドコマンドのオプションを変更して Apache2.4 をソースからビルドできるとしても、更新のたび、時間が掛かりそうな感じです。
今回、サポートバージョンへの更新をためらっていた理由の一つが、pfSense 2.5.2 で FreeBSD 12.x ベースのバージョンを試した時、Snow Leopard の ssh から接続できなかったためです。一度踏み台にするサーバーを準備しないと、FreeBSD 12.x ベースのサーバーにログインできないと効率が悪いので FreeBSD 12.3 を使用することをためらっていました。
FreeBSD 12/13 が Raspberry Pi に対応しているかどうかを確認する作業を行った時、Snow Leopard から、FreeBSD 12.3にsshで接続できたため、テストPCを別に準備して、FreeBSD 12.3 をインストールし、実際に試してみたところ ssh によるログインは問題ありませんでした。どうも pfSense2.5.2 だけの問題だったようです。
もう一つが、64bit コードのサポートがない 32bit i386 CPUのサーバーを運用しているため。FreeBSD 11.4 から 13 に上げると、バイナリーメンテナンスのサポートがありません。一気にアップグレードしないで、13に上げる前に 12.3 でしばらく運用することにしましょう。その間に、ハードウェアの交換計画を立てます。
FreeBSD 12.3 へ更新する障害が取り除かれたころから、私が管理しているFreeBSD 11.4 サーバーを FreeBSD 12.3 へ更新することにしました。
ネットワーク経由のメジャーOS更新は、再起動後の動作が不安材料であるため、上記テストサーバーにて動作確認。(以前FreeBSD10で、リモート更新後の再起動で、ネットワークがオフラインになる障害が発生していた。)FreeBSD12では問題ないことが確認できました。
アップデート手順は、freebsd-update コマンドで行います。これは過去何度も行っているので記述は省略して、過去メモへのリンクのみ。
現在、5台中、3台の更新が終了。
それにしても、今回の FreeBSD11.4ライフサイクル切れから、実際に使い物にならなくなるまでの時間が短すぎる!Apacheを動かしていなければ、あまり気にする必要はないのかもしれませんが、管理するサーバーのOSバージョンは共通にしておく方が楽なので仕方ないですねぇ。