FreeBSD: サーバーOS更新 12.3 → 12.4

今回は、サーバーOSをFreeBSD 12.3 から 12.4 に上げたら、ssh 接続できなくなったというメモ。

セカンダリーDNSとして稼働しているサーバーのOSをFreeBSD 13.1 から 13.2 へ更新する作業が完了したので、今度は、Webサーバーの番。

事前に freebsd-update fetch コマンドで、サポート状況を確認したところ、2か月半ほど前の3月末にセキュリティーメンテナンスの提供は終了していました。

# freebsd-update fetch
src component not installed, skipped
Looking up update.FreeBSD.org mirrors... 2 mirrors found.
Fetching metadata signature for 12.3-RELEASE from update1.freebsd.org... done.
Fetching metadata index... done.
Inspecting system... done.
Preparing to download files... done.

No updates needed to update system to 12.3-RELEASE-p12.

WARNING: FreeBSD 12.3-RELEASE-p11 HAS PASSED ITS END-OF-LIFE DATE.
Any security issues discovered after Fri Mar 31 09:00:00 JST 2023
will not have been corrected.

不特定からのログインを許可しているわけじゃないので、サポート切れは気にするポイントじゃないのですが、今からアップデートしましょう。
DNSサーバーのFreeBSD同様、freebsd-update コマンドで更新開始。
詳細は過去の freebsd-update 利用時と同様なので省略。

手動で更新する必要があるファイルを数個更新、その後、freebsd-update install と再起動を行い、更新が完了したものの、OS更新して何もトラブルが発生しないわけがない!

さて、今回OS更新後のトラブルは?
一見、何事もなくサービスが動いていますが、まず発見できたのは sshd。

% ssh www
ssh_exchange_identification: Connection closed by remote host

SnowLeopard の sshから FreeBSD 12.4 にリモート接続しようとすると、、、、、接続がリセットされます。つまり、古いOS(と言っても、FreeBSD12.3には問題なく接続できてた)を使っている場合、FreeBSD 12.4 にはログインできないってこと。
室内なので telnetd ならログインは可能ですが、屋外アクセスポイントを利用する場合、通信が丸見えになるってこと。そういうケースは少ないと思うものの、今の時代、sshで接続できないのには抵抗感がある。

今回の更新で、sshd_config に関して編集確認を求めるプロンプトが出てきたので、おそらく、ここだろうという行をメモしておきました。

内容は、

 # Change to no to disable PAM authentication
-#ChallengeResponseAuthentication yes
+#KbdInteractiveAuthentication yes

青字の部分が赤字の内容に変更されていました。多分、ここを元に戻せば復活する可能性が高い。なので以下のように編集しました。sshd のデフォルト値が変更されたものと思うので、# 外しておきます。

# Change to no to disable PAM authentication
ChallengeResponseAuthentication yes
#KbdInteractiveAuthentication yes

このあと,

service sshd restart

で、sshd を再起動。無事に、古い ssh コマンドから更新済みサーバーへ接続できるようになりました。

不思議なことに、先ほど FreeBSD 13.2 に更新したDNSサーバーは sshd_config に手を着けていないのですが、ssh コマンドで問題なく接続できています。sshd のデフォルト値、元に戻した?

更新直後なので、他の不具合はまだ見つかっていませんが、今後も一週間程度は更新したことを意識しておくことにしましょう。前回は、crond がトラブったな~

追記:

maillog をチェックしてみると、

alias database /etc/mail/aliases.db out of date

と /etc/alias のアップデートが必要な状態になっていました。(メールサーバーの動作自体は問題ない。)

転送先は編集していないのですけど、バージョンアップに伴いコメント行内のバージョン情報が書き換えられており、sendmail がそれを検出して maillog にワーニングメッセージを出力していたようです。newaliases コマンドで解決。

OS更新後は、気が抜けない。

コメントを残す