お粗末個人サイト 

蕭寥亭

 開店休業の記  
Blueskyへのリンク用アイコン 読書メーターへのリンク用アイコン

新サーバー機・環境構築で気がついたこと

Raspberry Pi 3 Model A+

 新サーバー機・Raspberry Pi 3 Model A+ にOSインストールをしました。

 OSのバージョンは以下の通り。

$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

 続いて環境構築。手順はおおよそ確立しているので毎度同じようにやっているのですが、世の中、状況は変わってきているので、こちらも変えなきゃいけない、変えた方がいいことがいくつもでてきています。

 そうしてことを備忘録がてら、書いておきます。

1.IPアドレスの指定方法

 サーバー用なのでIPアドレスは固定しておく必要があります。

 以前は /etc/dhcpcd.conf に直接、以下のように書いて設定していました。

interface eth0
static ip_address=192.168.0.2/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1

 しかし、Raspberry Pi のドキュメントを見ると、ルーターのDHCP機能にサーバー機のMACアドレスを登録して固定するように、とあります。

 確かにこちらのやり方なら、IPアドレスがダブってしまってうまく動作しなかった、などということは避けられそうです(やってしまったことがあります・・・)。

 ただ、登録方法はルーターの機種によって違うので、自分で調べないといけません。

2.認証関係

 コンピュータ全般の能力向上に伴い、認証関係のアルゴリズムについて、以前は妥当と考えられていたものをより強力なものに置き換える動きが進んでいます。

 OpenSSH の鍵作成のアルゴリズムはかつて rsa が標準だったのですが、今はより強力な ed25519 が推奨されています。

$ ssh-keygen -t ed25519

 PostgreSQL のパスワード認証方式は、以前は md5 か平文のままの password かでしたが、こちらもより強力な scram-sha-256 が追加されています。2017年のバージョン10から追加されているのでけっこう前からあるのですが、気がついていませんでした・・・。漫然と過去の設定をそのまま使うのではなく、ちゃんと調べないとね。

 古いクライアントだと対応していない可能性もあるそうですが、DBeaver なんかは対応してますね。

 POP3/IMAP4 サーバー・Dovecot のパスワードスキームももっと強力なのがあるのに、古い設定そのままで MD5-CRYPT でした。こっちもSHA512-CRYPT に変更。

3.systemctl 関係

 時刻同期はこれまで ntp インストールして cron で定期的に同期させていました。

 でも、今の Raspberry Pi OS では systemd の機能の一つで時刻同期用の timesyncd が最初から動作しているので、そちらに任せています。

 動作の確認はコマンド systemctl status systemd-timesyncd で。

$ sudo systemctl status systemd-timesyncd
● systemd-timesyncd.service - Network Time Synchronization
     Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; >
     Active: active (running) since Sun 2025-05-25 10:17:19 JST; 1 >
       Docs: man:systemd-timesyncd.service(8)
   Main PID: 369 (systemd-timesyn)
     Status: "Contacted time server [240b:4009:25a:1801:0:cd59:120f>
      Tasks: 2 (limit: 178)
        CPU: 6.073s
     CGroup: /system.slice/systemd-timesyncd.service
             └─369 /lib/systemd/systemd-timesyncd

May 25 10:17:19 pi systemd[1]: Starting systemd-timesyncd.service ->
May 25 10:17:19 pi systemd[1]: Started systemd-timesyncd.service - >
May 25 10:18:03 pi systemd-timesyncd[369]: Contacted time server [2>
May 25 10:18:03 rp3a1 systemd-timesyncd[369]: Initial clock synchr>

 systemctl には日時曜日を指定しての定期実行の機能 timer もあるので、従来 cron でやっていたことはそちらに移行しました。

 timer の設定には解説書『systemdの思想と機能』を参考にしました。

 ネットで調べるとしたら下記リンクあたりでしょうか。

 他にもいろいろあったような気もしますが、とりあえずこのくらいで。